编译部署LAMP+xcache (php-fpm模式)
通过编译安装方式部署分离式LAMP+xcache (php-fpm模式)
要求:
(1)采用源码编译部署分离式的LAMP,其中php基于php-fpm模式
(2)基于LAMP平台一个虚拟主机提供WordPress,另一个虚拟主机提供phpMyadmin
(3)利用xcache来为php提供缓存加速页面的访问速度
(4)对其中一个站点缓分别做压力测试,并且比对缓存加速前和加速后的数据。
环境:
192.168.1.103------>提供httpd服务
192.168.1.104------>提供mariadb服务
192.168.1.110------>提供PHP xcache服务
软件包:
httpd-2.4.6.tar apr-1.5.0.tar apr-util-1.5.2.tar ###httpd2.4版本需要apr和apr-util包的1.4以上版本支持
mariadb-5.5.46-linux-x86_64.tar (二进制包)
php-5.4.26.tar
xcache-3.1.0.tar
wordpress-4.3.1-zh_CN
phpMyAdmin-4.4.14.1-all-languages
---------------------------------------------------分割线------------------------------------------------------------
编译安装服务:
一、编译安装httpd服务(192.168.1.103)
1、首先确认系统是否已经安装了httpd服务,如果存在我们需要卸载,为了避免与后面有冲突。
2、安装开发包组
[root@pxe132 ~]# yum -y groupinstall Desktop Platform Development Development Tools
3、编译安装apr和apr-util
centos7中rpm包安装apr和apr-util就是1.4版本支持httpd,此处我就使用编译的方式来进行
###编译安装apr:
[root@pxe132 ~]# tar xf apr-1.5.0.tar.bz2
[root@pxe132 ~]# cd apr-1.5.0/
[root@pxe132 apr-1.5.0]# ./configure --prefix=/usr/local/apr
[root@pxe132 apr-1.5.0]# make -j 4 && make install
###编译安装apr-util:
[root@pxe132 ~]# tar xf apr-util-1.5.2.tar.bz2
[root@pxe132 ~]# cd apr-util-1.5.2/
[root@pxe132 apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util
--with-apr=/usr/local/apr
[root@pxe132 apr-util-1.5.2]# make -j 4 && make install
###查看编译安装后的结果:
[root@pxe132 ~]# rpm -q apr
apr-1.4.8-3.el7.x86_64
[root@pxe132 ~]# rpm -q apr-util
apr-util-1.5.2-6.el7.x86_64
4、编译安装httpd
[root@pxe132 ~]# yum -y install pcre-devel openssl-devel libevent-devel
[root@pxe132 ~]# tar xf httpd-2.4.6.tar.bz2
[root@pxe132 ~]# cd httpd-2.4.6/
[root@pxe132 httpd-2.4.6]# ./configure
--prefix=/usr/local/apache ##安装路径
--sysconfdir=/etc/httpd24 ##配置文件路径
--enable-so ##支持动态装卸载DSO机制,DSO是动态共享对象,可实现模块动态生效
--enable-ssl ##支持SSL/TLS 可实现https功能,需要安装openssl-devel开发工具
--enable-cgi ##支持CGI脚本 默认对非线程的MPM(多路处理)模块开启
--enable-rewrite ##支持URL重写
--enable-defalte ##支持压缩功能
--enable-modules=most ##支持动态启用的模块 {all|most}
--enable-mpms-shared=all ##支持动态加载的MPM模块 {most|all}
--with-mpm=prefork ##设置默认启用的mpm模式 {prefork|worker|event}
--with-pcre ##使用指定的pcre库,需要安装pcre-devel工具
--with-zlib ##使用指定的zlib库
--with-apr=/usr/local/apr ##指定apr安装路径
--with-apr-util=/usr/local/apr-util ##指定apr-util安装路径
此时我们就可以启动服务:
[root@pxe132 ~]# /usr/local/apache/bin/apachectl start
但是这样操作不是太方便,所有我们后面还需要做些操作:
5、添加PATH环境变量
[root@pxe132 ~]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
[root@pxe132 ~]# source /etc/profile.d/httpd24.sh ###重读下文件路径,使其立马生效
[root@pxe132 ~]# echo $PATH
/usr/local/apache/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
6、导出头文件:
[root@pxe132 ~]# ln -sv /usr/local/apache/include/ /usr/include/httpd24
7、启动服务
[root@pxe132 ~]# apachectl start
[root@pxe132 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 127.0.0.1:6012 *:*
LISTEN 0 128 :::80 :::*
9、测试下httpd服务是否正常:
[root@pxe132 ~]# curl 192.168.1.103
<html><body><h2>It works!</h2></body></html>
二、编译安装mariadb服务(192.168.1.104)
1、为了安全我们我mysql建立专门的用户和组,让其以普通用户的身份运行
[root@bogon ~]# groupadd -r mysql
[root@bogon ~]# useradd -r mysql -g mysql
[root@bogon ~]# id mysql
uid=988(mysql) gid=983(mysql) groups=983(mysql)
2、建立数据可数据存放的目录,此处需要注意权限的问题
[root@bogon ~]# mkdir -p /data/mydata
[root@bogon ~]# chown -R mysql:mysql /data/mydata/ ###此文件在后面我们安装包的时候会用到
3、解压mariadb安装包到/usr/local目录下
[root@bogon ~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local
4、创建一个软链接方便使用
[root@bogon ~]# ln -sv /usr/local/mariadb-5.5.46-linux-x86_64/ mysql
‘mysql’ -> ‘/usr/local/mariadb-5.5.46-linux-x86_64/’
5、此时我们可以进入mysql的目录去看下,发现里面的属组合属主都是root,所有需要改下权限
[root@bogon ~]# cd /usr/local/mysql/
[root@bogon mysql]# ll
total 204
drwxr-xr-x. 2 root root 4096 Jul 21 14:39 bin
-rw-r--r--. 1 500 500 17987 Oct 10 2015 COPYING
-rw-r--r--. 1 500 500 26545 Oct 10 2015 COPYING.LESSER
drwxr-xr-x. 3 root root 17 Jul 21 14:39 data
-rw-r--r--. 1 500 500 8245 Oct 10 2015 EXCEPTIONS-CLIENT
drwxr-xr-x. 3 root root 18 Jul 21 14:39 include
-rw-r--r--. 1 500 500 8694 Oct 10 2015 INSTALL-BINARY
drwxr-xr-x. 3 root root 4096 Jul 21 14:39 lib
drwxr-xr-x. 4 root root 28 Jul 21 14:39 man
lrwxrwxrwx. 1 root root 39 Jul 21 14:42 mariadb-5.5.46-linux-x86_64 -> /usr/local/mariadb-5.5.46-linux-x86_64/
drwxr-xr-x. 11 root root 4096 Jul 21 14:39 mysql-test
-rw-r--r--. 1 500 500 108813 Oct 10 2015 README
[root@bogon mysql]# chown -R root.mysql .
define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppass');
define('DB_HOST', '192.168.1.104');
2、此时我们需要把WordPress这个目录个传到http服务器主页访问的路径下
root@pxe130 www1]# scp -r wordpress/ root@192.168.1.103:/data/vhost1/www1/
二、部署phpmyadmin
1、解压,配置
[root@pxe130 ~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
[root@pxe130 ~]# mv phpMyAdmin-4.4.14.1-all-languages /data/vhost2/www2/
[root@pxe130 www2]# ln -sv phpMyAdmin-4.4.14.1-all-languages/ phpmyadmin
[root@pxe130 www2]# vim phpmyadmin/libraries/config.default.php
$cfg['blowfish_secret'] = 'tSQRO02T+grA6rvJHCXr';
$cfg['Servers'][$i]['host'] = '192.168.1.104'; ###数据库服务地址
$cfg['Servers'][$i]['user'] = 'pmauser';
$cfg['Servers'][$i]['password'] = 'pmapass';
2、将phpmyadmin传一份给http服务器的相对应路径下
[root@pxe130 www2]# scp -r phpmyadmin/ root@192.168.1.103:/data/vhost2/www2/
测试:
4、压力测试:
Server Software: Apache/2.4.6
Server Hostname: wp.magedu.com
Server Port: 80
Document Path: /wordpress
Document Length: 239 bytes
Concurrency Level: 1000
Time taken for tests: 3.096 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10006
Total transferred: 4672802 bytes
HTML transferred: 2391434 bytes
Requests per second: 3229.61 [#/sec] (mean)
Time per request: 309.635 [ms] (mean)
Time per request: 0.310 [ms] (mean, across all concurrent requests)
Transfer rate: 1473.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 64 319.1 3 3030
Processing: 1 55 186.0 21 1454
Waiting: 1 54 185.9 20 1454
Total: 12 120 426.7 24 3042
Percentage of the requests served within a certain time (ms)
50% 24
66% 25
75% 26
80% 27
90% 30
95% 691
98% 1649
99% 2462
100% 3042 (longest request)
编译安装xcache缓存加速
1、解包生成配置
[root@pxe130 /]# tar xf xcache-3.2.0.tar.bz2
[root@pxe130 /]# cd xcache-3.2.0/
[root@pxe130 xcache-3.2.0]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@pxe130 xcache-3.2.0]# ./configure --enable-xcache
--with-php-config=/usr/local/php/bin/php-config
[root@pxe130 xcache-3.2.0]# make && make install
2、配置xcache
[root@pxe130 ~]# cp /xcache-3.2.0/xcache.ini /etc/php.d/
[root@pxe130 ~]# vim /etc/php.d/xcache.ini
添加:
[xcache-common]
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
修改下缓存大小:
xcache.size = 200M
3、重启php-fpm服务,此时index.php页面应该就会有xcache支持了
[root@pxe130 ~]# systemctl restart php-fpm.service
在进行压力测试::
[root@bogon ~]# ab -n 10000 -c1000 http://wp.magedu.com/wordpress
Server Software: Apache/2.4.6
Server Hostname: wp.magedu.com
Server Port: 80
Document Path: /wordpress
Document Length: 239 bytes
Concurrency Level: 1000
Time taken for tests: 2.128 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10000
Total transferred: 4670000 bytes
HTML transferred: 2390000 bytes
Requests per second: 4700.07 [#/sec] (mean)
Time per request: 212.763 [ms] (mean)
Time per request: 0.213 [ms] (mean, across all concurrent requests)
Transfer rate: 2143.49 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 37 116.1 23 1028
Processing: 1 46 129.4 26 1480
Waiting: 1 40 129.8 20 1474
Total: 24 83 189.7 49 1646
Percentage of the requests served within a certain time (ms)
50% 49
66% 52
75% 53
80% 55
90% 59
95% 78
98% 726
99% 1458
100% 1646 (longest request)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341