码迷,mamicode.com
首页 > Web开发 > 详细

CentOS 6.9编译安装LAMP环境,并部署phpMyAdmin,使用XCache优化性能

时间:2017-11-16 13:31:32      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:phpmyadmin   lamp   xcache   编译安装   

一、使用的程序包名称及版本:

httpd:2.4.29

mariadb-server:10.2.9

php:5.6.32

备注:httpd-2.4.x依赖于apr-1.4+以及apr-util-1.4+,而CentOS6.9 yum安装的aprapr-util的版本均为1.3.9httpd的版本为2.2.15,所以如果要在CentOS 6.9中使用httpd-2.4.x,只能重新源码编译安装

aprApache Portable RuntimeApache运行时环境,可以理解为Apache虚拟机,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。


二、准备工作:

1、 下载相关程序包:

  • httpd-2.4.29http://mirror.bit.edu.cn/apache/httpd/

  • mariadb-10.2.9https://downloads.mariadb.org/

  • php-5.6.32http://www.php.net/downloads.php

  • phpMyAdmin-4.7.5-all-languages.ziphttps://www.phpmyadmin.net/downloads/

  • xcache-3.2.0http://xcache.lighttpd.net/wiki/ReleaseArchive

2、 关闭iptablesSELinux

3、 服务器时间校对

4、 配置epel

5、 安装开发环境程序包组:# yum -y groupinstall "Development Tools" "Server PlatformDevelopment"

6、 安装依赖程序包:# yum -y install pcre-devel expat-devel libxml2-devel bzip2-devel libmcrypt-devel curl-devel libpng-devel gmp-devel libc-client-devel recode-devel net-snmp-devel libtidy-devel libjpeg-devel freetype-devel readline-devel libicu-devel unzip

7、 配置相关库文件:# ln -sv /usr/lib64/libc-client.so /usr/lib/libc-client.so  # ln -sv /usr/lib64/libldap* /usr/lib/


三、安装配置httpd-2.4.29

1、 安装配置apr-1.6.2

# tar -xf apr-1.6.2.tar.gz -C /usr/src

# cd /usr/src/apr-1.6.2

# vim configure --> #号注释第30951行代码$RM"$cfgfile"

# ./configure --prefix=/usr/local/apr16 --enable-threads --enable-posix-shm --enable-pool-concurrency-check --enable-other-child --disable-ipv6 --with-sendfile

# make && make install

# vim /etc/ld.so.conf.d/apr16.conf  -->  /usr/local/apr16/lib

# ldconfig

2、 安装配置apr-util-1.6.0

# tar -xf apr-util-1.6.0.tar.gz -C /usr/src

# cd /usr/src/apr-util-1.6.0

# ./configure --prefix=/usr/local/apr-util16 --with-apr=/usr/local/apr16 --with-crypto

# make && make install

# vim /etc/ld.so.conf.d/apr-util16.conf -->  /usr/local/apr-util16/lib

# ldconfig

3、 编译安装httpd-2.4.29

# groupadd -r apache

# useradd -r -g apache apache

# id apache

# tar -xf httpd-2.4.29.tar.gz -C /usr/src

# cd /usr/src/httpd-2.4.29

# ./configure --prefix=/usr/local/apache24 --enable-modules=all --enable-mods-shared=all --enable-authn-dbm --enable-authn-anon --enable-authn-dbd --enable-authn-socache --enable-authz-dbm --enable-authz-owner --enable-authz-dbd --enable-authnz-fcgi --enable-auth-form --enable-auth-digest --enable-allowmethods --enable-isapi --enable-file-cache --enable-cache --enable-cache-disk --enable-cache-socache --enable-socache-shmcb --enable-socache-dbm --enable-socache-memcache --enable-so --enable-watchdog --enable-macro --enable-dbd --enable-dumpio --enable-echo --enable-case-filter --enable-case-filter-in --enable-buffer --enable-data --enable-ratelimit --enable-ext-filter --enable-request --enable-include --enable-reflector --enable-substitute --enable-sed --enable-deflate --enable-http --enable-log-forensic --enable-logio --enable-luajit --enable-mime-magic --enable-cern-meta --enable-expires --enable-ident --enable-usertrack --enable-unique-id --enable-remoteip --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-fcgi --enable-proxy-scgi --enable-proxy-fdpass --enable-proxy-wstunnel --enable-proxy-ajp --enable-proxy-balancer --enable-proxy-express --enable-proxy-hcheck --enable-session --enable-session-cookie --enable-session-crypto --enable-session-dbd --enable-slotmem-shm --enable-slotmem-plain --enable-ssl --enable-dialup --enable-lbmethod-byrequests --enable-lbmethod-bytraffic --enable-lbmethod-bybusyness --enable-lbmethod-heartbeat --enable-mpms-shared=all --enable-heartbeat --enable-heartmonitor --enable-dav --enable-asis --enable-info --enable-suexec --enable-cgid --enable-cgi --enable-dav-fs --enable-dav-lock --enable-vhost-alias --enable-negotiation --enable-imagemap --enable-actions --enable-speling --enable-userdir --enable-rewrite --with-apr=/usr/local/apr16 --with-apr-util=/usr/local/apr-util16 --with-pcre --with-z --with-ssl --with-mpm=event

# make -j 4 && make install

# ls /usr/local/apache24

技术分享

备注:.so扩展名的文件为模块文件,静态加载的模块不会显示在modules目录下,静态加载的模块会内嵌在系统里。动态加载的模块都会显示在modules目录下,启用这些模块,只需要在主配置文件中使用LoadModule命令装载这些模块即可。

4、 配置httpd-2.4.29

(1)导出二进制程序目录至PATH环境变量:

# vim /etc/profile.d/httpd24.sh  -->  export PATH=/usr/local/apache24/bin:$PATH

# . /etc/profile.d/httpd24.sh

# echo $PATH

(2)导出头文件:# ln -sv /usr/local/apache24/include /usr/include/httpd24

(3)导出man帮助文档:# vim /etc/man.config -->  MANPATH /usr/local/apache24/man

(4)配置使用service命令控制httpd服务:# cp /usr/local/apache24/bin/apachectl /etc/init.d/httpd24

备注:为了不和yum方式安装的httpd冲突,所以服务脚本名称叫httpd24,如果仍命名为httpd,以后使用命令# yum -y install httpd后,服务脚本会被httpd覆盖,不过此httpd24只支持start| restart | stop

(5)修改主配置文件httpd.conf

# cd /usr/local/apache24/conf

# cp httpd.conf httpd.conf.bak

# vim httpd.conf

  • 新增代码:ServerName localhost:80

  • 将参数UserGroup的值都修改为apache,表示以apache用户和组的身份运行httpd

  • #号注释第147LoadModulesession_cookie_module  modules/mod_session_cookie.so

  • #号注释第148LoadModulesession_crypto_module  modules/mod_session_crypto.so

  • #号注释第149LoadModulesession_dbd_module  modules/mod_session_dbd.so

# httpd -t

(6)配置httpd开机自启:

# vim /etc/init.d/httpd24,在首行#!/bin/sh下,新增如下2行代码:

# chkconfig: 2345 95 60

# description: Apache HTTP Server 2.4.29

# chkconfig --add httpd24

# chkconfig httpd24 on

# chkconfig --list httpd24

5、 启动httpd服务,并在浏览器中输入192.168.1.144

# service httpd24 start

# ss -tnl | grep :80

# ps -ef | grep httpd

# httpd -M | grep mpm  -->  mpm_event_module (shared)

技术分享


四、安装配置二进制格式的mariadb-10.2.9

1、 虚机添加新硬盘,创建LVM逻辑卷,并创建用于存放mariadb数据的目录:

(1)虚机新硬盘添加完成后,需要重启服务器,新硬盘才能被识别

(2) 创建LVM分区:

技术分享

# partx -a /dev/sdb  -->  忽略错误提示

# cat /proc/partitions

技术分享

(3)创建pv# pvcreate /dev/sdb1  # pvs

(4)创建vg# vgcreate mysqlvg /dev/sdb1 # vgs

(5)创建lv# lvcreate -l +100%FREE mysqlvg -n mysqldata   # lvs

(6)格式化LVM分区:# mke2fs -t ext4 /dev/mysqlvg/mysqldata

(7)创建挂载点:# mkdir -pv /data

(8)开机自动挂载:# vim /etc/fstab  -->  /dev/mysqlvg/mysqldata  /data ext4  defaults  0  0

(9)挂载分区并查看分区信息:# mount -a    # mount    # df -Th

技术分享

(10)创建用于存放mariadb数据的目录:# mkdir -pv /data/mysqldata

(11)创建mysql用户和组:# groupadd -r mysql    # useradd -r -g mysql mysql    # id mysql

(12)设置数据目录权限:# cd /data    # chown -R mysql.mysql mysqldata    # chmod -R o-rx mysqldata

2、 安装mariadb-10.2.9

# tar -xf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local

# cd /usr/local

# mv mariadb-10.2.9-linux-x86_64/ mysql

# cd mysql

# chown -R mysql.mysql .

3、 配置mariadb-10.2.9

(1)导出二进制程序目录至PATH环境变量中:

# vim /etc/profile.d/mariadb.sh  -->  export PATH=/usr/local/mysql/bin:$PATH

# . /etc/profile.d/mariadb.sh

# echo $PATH

# mysql --version

技术分享

(2)导出头文件:# ln -sv /usr/local/mysql/include/mysql /usr/include/mysql

(3)导出库文件:# vim /etc/ld.so.conf.d/mariadb.conf -->  /usr/local/mysql/lib    # ldconfig

(4)导出man帮助文档:# vim /etc/man.config -->  MANPATH /usr/local/mysql/man

(5)创建并修改my.cnf配置文件:

# find / -name my.cnf

# mv /etc/my.cnf /etc/my.cnf.bak         //如果系统中事先已存在my.cnf,则将其重命名备份

# cp /usr/local/mysql/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf

备注:MariaDB的配置文件my.cnf是集中式的配置文件,可以为多个程序提供配置,包括clientmysqlmysqld等等。查找配置文件的顺序依次为:/etc/my.cnf  -->  /etc/mysql/my.cnf  -->  $BASEDIR/my.cnf -->  --defaults-extra-file=/PATH/TO/CONF_FILE  -->  ~/.my.cnf。如果发现多个my.cnf配置文件,那最后一个被读到的配置文件将会最终生效,即如果存在~/.my.cnf配置文件,那么MariaDB服务器的配置以此文件为准。

# vim/etc/my.cnf

  • [mysqld]配置段中增加如下代码:

basedir = /usr/local/mysql

datadir = /data/mysqldata

user = mysql

innodb_file_per_table = on

skip_name_resolve = on

  • [mysqld]配置段中注释如下代码:

注释thread_concurrency = 8

注释innodb_additional_mem_pool_size = 16M

(6)初始化mariadb-server

# ls /data/mysqldata                   //确认数据存放目录必须为空

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata --defaults-file=/etc/my.cnf --skip-name-resolve

# ls /data/mysqldata

技术分享

(7)使用service命令控制mariadb-server,并设置开机自启:

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# vim /etc/init.d/mysqld,修改如下2行内容:

  • 将第46basedir参数的值设置为/usr/local/mysql

  • 将第47datadir参数的值设置为/data/mysqldata

# chkconfig --add mysqld

# chkconfig mysqld on

# chkconfig --list mysqld

4、 启动mariadb-server

# service mysqld start

技术分享

# ss -tnl | grep :3306

# ps aux | grep mysqld

5、 mariadb-server安全设置:# mysql_secure_installation

备注:用于设置root用户密码、删除匿名用户、是否允许root用户远程登录、删除测试数据库、重载授权表

# ls /data/mysqldata

技术分享

6、 允许远程主机访问mariadb-server

出于安全考虑,mariadb-server默认是不允许远程主机直接访问的

技术分享

# mysql -uroot -p                    //输入root用户密码

MariaDB [(none)]> grant all privileges on *.* to ‘root‘@‘%‘ identified by‘123456‘ with grant option;

MariaDB [(none)]> flush privileges;

技术分享

技术分享

技术分享



五、安装配置php-5.6.32

1、 编译安装php-5.6.32

# find / -name php.ini

# mv /etc/php.ini /etc/php.ini.bak         //如果系统中事先已存在php.ini,则将其重命名备份

# tar -xf php-5.6.32.tar.xz -C /usr/src

# cd /usr/src/php-5.6.32

# ./configure --prefix=/usr/local/php56 --with-apxs2=/usr/local/apache24/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php56.d --with-mysql=mysqlnd --with-mysql-sock=/tmp/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir --with-openssl --with-kerberos --with-pcre-regex --with-pcre-dir --with-zlib --with-zlib-dir --with-bz2 --with-curl --with-ldap --with-ldap-sasl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-gettext --with-mhash --with-mcrypt --with-snmp --with-readline --with-recode --with-tidy --with-xmlrpc --with-iconv-dir --with-pear --enable-sysvmsg --enable-sysvsem --enable-sysvshm --disable-ipv6 --enable-mysqlnd --enable-fpm --enable-phpdbg --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-intl --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-wddx --enable-zip --enable-zend-signals

# make -j 4 && make install

技术分享

2、 配置php-5.6.32

(1)创建并修改php.ini配置文件:# cp /usr/src/php-5.6.32/php.ini-production /etc/php.ini

(2)导出二进制程序目录至PATH环境变量中:

# vim /etc/profile.d/php56.sh  -->  export PATH=/usr/local/php56/sbin:/usr/local/php56/bin:$PATH

# . /etc/profile.d/php56.sh

# echo $PATH


六、配置httpd-2.4.29支持php-5.6.32(以下两种方法二选一)

1、 php编译成httpd的模块:

(1)修改主配置文件httpd.conf

# vim /usr/local/apache24/conf/httpd.conf

  • DirectoryIndex index.php index.html

  • 增加代码:AddType application/x-httpd-php .php

  • 确认模块已加载:LoadModule php5_module   modules/libphp5.so

# httpd -t

# service httpd24 restart

# httpd -M | grep php  -->  php5_module (shared)

(2)创建测试页:

# vim /usr/local/apache24/htdocs/index.php

<?php

$conn=mysqli_connect("127.0.0.1","root","123456");

if ($conn)

echo "Success";

else

echo "Failure";

mysqli_close();

phpinfo();

?>

技术分享

备注:如果在新版本php中使用旧版本phpmysql_connect()函数连接MariaDB,会提示undefined function mysql_connect()。从php 5.5开始,MariaDB就不推荐使用mysql_connect()函数,属于废弃函数,php 7中已经彻底不支持了,其增加了mysqli的函数功能。从某种意义上讲,mysqlimysql系统函数的增强版,更稳定、更高效、更安全,属于面向对象,用对象的方式操作驱动MariaDB数据库。

浏览器中输入192.168.1.144/index.php

技术分享

未加载XCache相关模块

2、 通过fpmFastCGI)方式,将php作为独立的服务运行:

(1)创建并修改php-fpm.conf配置文件:

# cd /usr/local/php56/etc

# cp php-fpm.conf.default php-fpm.conf

# vim php-fpm.conf,修改如下参数的值(参考):

  • pm.max_children= 1024

  • pm.start_servers= 16

  • pm.min_spare_servers= 5

  • pm.max_spare_servers= 20

(2)php-fpm提供SysV init脚本,并将其添加至服务列表:

# cp /usr/src/php-5.6.32/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

# chmod +x /etc/init.d/php-fpm

# chkconfig --add php-fpm

# chkconfig php-fpm on

# chkconfig --list php-fpm

(3)启动php-fpm

# service php-fpm start

# ss -tnlp | grep php-fpm               //默认情况下,fpm监听127.0.0.19000端口

# ps aux | grep php-fpm

(4)修改主配置文件httpd.conf

# vim /usr/local/apache24/conf/httpd.conf

  • DirectoryIndex index.php index.html

  • 增加代码:AddType application/x-httpd-php .php

  • #号禁用模块:LoadModule php5_module  modules/libphp5.so

  • 装载proxy模块:LoadModule proxy_module   modules/mod_proxy.so

  • 装载proxy_fcgi模块:LoadModule proxy_fcgi_module  modules/mod_proxy_fcgi.so

  • 配置反向代理(也可在虚拟主机中配置),在末尾新增如下2行代码:

    ProxyRequestsOff           //关闭正向代理

    ProxyPassMatch^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache24/htdocs/$1

# httpd -t

# service httpd24 restart

(5)如上述所示创建测试页,并在浏览器中输入192.168.1.144/index.php

技术分享

未加载XCache相关模块

# service mysqld stop  -->  Failure,表示phpmariadb-server通信正常


七、安装配置phpMyAdmin

phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MariaDB的数据库管理工具,让管理员可用WebGUI接口管理MariaDB数据库。

# unzip -q phpMyAdmin-4.7.5-all-languages.zip

# cp -a phpMyAdmin-4.7.5-all-languages/ /usr/local/apache24/htdocs

# cd /usr/local/apache24/htdocs

# mv phpMyAdmin-4.7.5-all-languages/ pma

# cd pma

# cp config.sample.inc.php config.inc.php

# openssl rand -base64 8  -->  uRYO7/xG88k=

# vim config.inc.php  -->  $cfg[‘blowfish_secret‘] = ‘uRYO7/xG88k=‘;

# service httpd24 restart

浏览器中输入192.168.1.144/pma

技术分享

用户名和密码均为MariaDB数据库的用户名和密码

技术分享

八、使用XCache优化性能:

XCache是一个又快又稳定的PHP Opcode缓存器,它能够提高PHP的性能。通过把编译PHP后的数据缓冲到共享内存,从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载。

1、 未加载XCache模块时测试性能:# ab -c 20 -n 1000 http://192.168.1.144/pma/index.php

技术分享

2、 编译安装XCache

# tar -xf xcache-3.2.0.tar.gz -C /usr/src

# cd /usr/src/xcache-3.2.0

# phpize                     //出现configure脚本

# ./configure --enable-xcache --with-php-config=/usr/local/php56/bin/php-config

# make && make install

技术分享

3、 整合phpXCache

# mkdir -pv /etc/php56.d

# cp /usr/src/xcache-3.2.0/xcache.ini /etc/php56.d

# vim /etc/php56.d/xcache.ini

技术分享

  • 若把php编译成httpd的模块,则:# service httpd24 restart

  • 若通过fpmFastCGI)方式,将php作为独立的服务运行,则:# service php-fpm restart

刷新页面,已加载XCache相关模块:

技术分享

4、 加载XCache模块时测试性能:# ab -c 20 -n 1000 http://192.168.1.144/pma/index.php

技术分享

性能提升了近5


本文出自 “天道酬勤” 博客,请务必保留此出处http://qiuyue.blog.51cto.com/1246073/1982260

CentOS 6.9编译安装LAMP环境,并部署phpMyAdmin,使用XCache优化性能

标签:phpmyadmin   lamp   xcache   编译安装   

原文地址:http://qiuyue.blog.51cto.com/1246073/1982260

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!