PHP、mysql缓存加速优化
安装PHP缓存、加速模块
LNMP环境
根据之前部署过的LNMP环境配置
配置环境变量 LC_ALL
echo 'export LC_ALL=C' >> /etc/profile source /etc/profile #配置环境变量生效
yum install -y perl-devel #安装依赖包
如果不配置环境变量,安装加速器时会报错
!!!opcache在php5.6以上是自带安装的,所以就不安装操作了!!!
XCache
cd /mnt/app
#下载xcache wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz tar xf xcache-3.2.0.tar.gz /application/php/bin/phpize ./configure --enable-xcache --with-php-config=/application/php/bin/php-config make && make install ll /application/php5.6/lib/php/extensions/no-debug-non-zts-20131226/ 有xcache 表示安装成功
eAccelerator
eAcceleator仅支持PHP5.5以下
cd /mnt/app/ wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2 tar xf eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator-0.9.6.1 /application/php/bin/phpize ./configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config make make install
Memcached(PHP客户端)
cd /mnt/app/ wget http://pecl.php.net/get/memcache-2.2.7.tgz tar xf memcache-2.2.7.tgz cd memcache-2.2.7 /application/php/bin/phpize ./configure --enable-memcache --with-php-config=/application/php/bin/php-config make make install
PDO_Mysql扩展模块
PDO扩展为PHP访问数据库定义了一个轻量级一致性的接口,它提供了一个数据访问抽象层,无论是什么数据库都可以通过一致的函数执行查询并获取数据。
cd /mnt/app wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz tar xf PDO_MYSQL-1.0.2.tgz cd PDO_MYSQL-1.0.2 /application/php/bin/phpize ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql ln -s /application/mysql/include/* /usr/local/include/ #不做这个软连接可能会报错 make && make install
ImageMaguck图像软件
下载地址
download.chinaunix.net/download/0001000/95.shtml
cd /mnt/app #在网页上下载上传到服务器 tar xf ImageMagick-6.7.9-9.tar.xz cd ImageMagick-6.7.9-9 ./configure make make install
Imagick PHP
Imagick PHP依赖于ImageMaguck,所以需要先安装ImageMaguck
cd /mnt/app wget http://pecl.php.net/get/imagick-3.4.3.tgz tar xf imagick-3.4.3.tgz cd imagick-3.4.3/ /application/php/bin/phpize ./configure --with-php-config=/application/php/bin/php-config make make install ll /application/php5.6/lib/php/extensions/no-debug-non-zts-20131226/
配置加速&缓存插件模块
配置 Memcache/PDO_MYSQL/imagick模块生效
修改php.ini
cd /application/php/lib/ cp php.ini php.ini.bak #修改前先备份配置文件 vi php.ini /extensions_dir="./" #vi编辑器搜索extensions_dir="./" 修改为:extensions_dir="/application/php5.6/lib/php/extensions/no-debug-non-zts-20131226" 按Shift+G跳到文件末尾 #添加: extension = memcache.so extension = pdo_mysql.so extension = imagick.so #重启php pkill php-fpm netstat -lntup | grep 9000 /application/php/sbin/php-fpm netstat -lntup | grep 9000
之前配置php有test_info.php文件,再次访问这个页面,查看是否有之前安装过的加速和缓存模块
配置XCache生效
#先在php.ini文件中加入分界线 echo ';xcache ------------------------------------------------------------' >>/applination/php/lib/php.ini 以下为配置xcache参数(根据硬件配置大小) vim /mnt/app/xcache-3.2.0/xcache.ini xcache.size = 256M xcache.count = 服务器cpu数量 xcache.gc_interval = 3600 xcache.ttl = 86400 xcache.var_size = 64M 保存退出 cat /mnt/app/xcache-3.2.0/xcache.ini >>/application/php/lib/php.ini /application/php/bin/php -v ##显示信息 PHP 5.6.36 (cli) (built: Jun 14 2018 14:50:30) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with XCache v3.2.0, Copyright (c) 2005-2014, by mOo with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo ## 重启php pkill php-fpm /application/php/sbin/php-fpm 配置xcache登录用户 先使用md5sum生成加密的密码 echo -n "密码"|md5sum 复制加密后的密码 vim /application/php/lib/php.ini [xcache.admin] xcache.admin.enable_auth = On xcache.admin.user = "用户名" xcache.admin.pass = "加密后的密码" 拷贝Xcache软件 cd /mnt/app/xcache-3.2.0 cp -a htdocs/ /application/nginx/html/www/xadmin chown -R nginx.nginx /application/html/www/xadmin pkill php-fpm /application/php/sbin/php-fpm 访问http://www.hello.com/xadmin/index.php
Zend OPcache
编辑php.ini 加入: [opcache] zend_extension=/application/php5.6/lib/php/extensions/no-debug-non-zts-20131226/opcache.so ;extension=opcache.so opcache.memory_consumption=32 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=1000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcahce.enable_cli=1 查看生效结果 /application/php/bin/php -v 已经包含了opcache 重启php pkill php-fpm /application/php/sbin/php-fpm 访问phpinfo查看是否运行
!!!不建议多个缓存加速器同时运行