四、安装xcache,为php加速;说明一下php,只要是编译php的第三方扩展工具都得执行phpsize,而且这里必须得是在编译安装时的目录下面使用绝对路径
1、下载xcache加速工具,并解压;
[root@linux ~]# tar xf xcache-3.0.3.tar.bz2
[root@linux ~]# cd xcache-3.0.3
[root@linux xcache-3.0.3]# /usr/local/php/bin/phpize 使用本地php解释器,探测模块,并且将模块所依赖的版本及扩展API的号生成一个标记,而后才能以地其进行编译。
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@linux ~]#./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install 最后编译完成在末尾会出现一条路径;如下
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
2、创建创建存放xcache.ini文件的目录
[root@linux xcache-3.0.3]# mkdir /etc/php.d
[root@linux xcache-3.0.3]# cp xcache.ini /etc/php.d
3、编辑配置文件/etc/php.d/xcache.ini
[root@linux xcache-3.0.3]# vim /etc/php.d/xcache.ini
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
xcache.size = 60M
4、现在再次利用ab命令对php页面进行性能测试,在php页面多按几次刷新,让其产生缓存后在测试
[root@linux xf]# ab -c 10 -n 1000
安装了xcache
Requests per second: 80.68 [#/sec] (mean)
Time per request: 123.947 [ms] (mean)
Time per request: 12.395 [ms] (mean, across all concurrent requests)
没有安装xcache
Requests per second: 20.07 [#/sec] (mean)
Time per request: 498.269 [ms] (mean)
Time per request: 49.827 [ms]
由此可以看出在没有安装xcache加速缓存与安装了xcache加速缓存时所进行的性能测试各项参数都有了很明显的提高。
xcache加速php缓存操作完成
--------------------------------------------------------------------------------
三、利用现有环境再次配置apache-2.4.9与fpm方式的php-5.4.2,无需做太大的改动,只需把现在安装的php及配置文件改个名即可。
1、编译安装并解压;
[root@linux xf]# tar xf php-5.4.26.tar.bz2
[root@linux xf]# cd php-5.4.26
[root@linux php-5.4.26]# ./configure --prefix=/usr/local/php25 --with-MySQL=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php25 --with-config-file-scan-dir=/etc/php25.d --with-bz2
[root@linux xf]# make && make install
2、为php-fpm提供Sysv init脚本,并将其添加至服务列表
[root@linux php-5.4.26]# cp php.ini-production /etc/php25.ini
[root@linux php-5.4.26]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@linux php-5.4.26]# chmod +x /etc/rc.d/init.d/php-fpm
[root@linux php-5.4.26]# chkconfig --add php-fpm
[root@linux php-5.4.26]# chkconfig php-fpm on
3、为php-fpm提供主配置文件
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
4、对其配置文件编译如下几项;
vim /usr/local/php/etc/php-fpm.conf
pid = /usr/local/php25/var/run/php-fpm.pid
pm.max_children = 50 最大了进程数
pm.start_servers = 5 启动时启动的子进程数
pm.min_spare_servers = 2 最少空闲线程数
pm.max_spare_servers = 8 最大空闲线程数
5、现在可以启动php-fpm 监听端口为:9000
#service php-fpm start
ss -tunl | grep php-fpm 端口是否监听
tcp LISTEN 0 128 127.0.0.1:9000
6、现在开始编辑httpd的主配置文件
开启加载以下两个模块
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_module modules/mod_proxy.so
支持php格式的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
找到主页文件
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
7、配置虚拟主机让其支持fcji反向代理,配置虚拟主机事先把中心主机停止,并在主配置里开启
支持虚拟主机功能;在主配置的末尾找到下面这行开启即可
#DocumentRoot "/usr/local/apache/htdocs" 关闭中心主机
Include /etc/httpd24/extra/httpd-vhosts.conf 开启虚拟主机功能
http2.4.9版本的虚拟主机配置有一个独立的文件,在/etc/httpd24/extra下;
vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webadmin@linuxidc.com
DocumentRoot "/web/linuxidc.com/htdocs" 虚拟主机的目录主页面
ServerName 域名
ServerAlias linuxidc.com 别名
ErrorLog "logs/linuxidc.com-error_log" 错误日志
CustomLog "logs/linuxidc.com-access_log" combined 访问日志
<Directory "/web/linuxidc.com/htdocs"> 虚拟主机的目录访问权限
Options None
Require all granted 允许所有
</Directory>
ProxyRequests Off 关闭正向代理
proxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/linuxidc.com/htdocs/$1 反向代理
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webadmin@cba.com
DocumentRoot "/web/cba.com/htdocs"
ServerName
ServerAlias cba.com
ErrorLog "logs/cba.com-error_log"
CustomLog "logs/cba.com-access_log" combined
<Directory "/web/cba.com/htdocs">
Options None
Require all granted
</Directory>
ProxyRequests Off
proxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/cba.com/htdocs/$1
</VirtualHost>
8、修改测试两个虚拟主机的测试首页内容看是否能够连接数据库;
linuxidc.com
<?php
$link = mysql_connect('127.0.0.1','root','RedHat');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?>
~
9、测试;
可以成功连接数据库
10、安装phpMyAdmin-4.0.5-all-languages.zip对其两个虚拟主机做压力性能测试;安装的步骤此处不做详说,上面安装php的时候有做介绍
连接成功;现在给做压力性能
11、压力测试 ;
[root@linux htdocs]# ab -c 10 -n 1000
Requests per second: 26.59 [#/sec] (mean)
Time per request: 376.138 [ms] (mean)
Time per request: 37.614 [ms] (mean, across all concurrent requests)
11、安装xcache进行性能测试,安装步骤此外不做过多介绍,上面有做详细介绍;
10、安装了xcache后再次进行压力测试如下;
[root@linux htdocs]# ab -c 10 -n 1000
Requests per second: 96.91 [#/sec] (mean)
Time per request: 103.186 [ms] (mean)
Time per request: 10.319 [ms]
由此可以看出性能有了很明显的提升;