一、模块
操作码缓存的优化模块
前提:yum -y install perl-devel
缓存模块(性能优化插件)二选一
eaccelerator、xcache
mencache客户端模块(功能性插件)
memcache
和数据库连接模块(功能性插件)
PDO_MYSQL扩展模块
1、编译eaccelerator
/usr/local/php/bin/phpize #这个是编译php扩展模块必须的东西
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make
make install
出现eaccelerator.so
2、编译xcache
/usr/local/php/bin/phpize #这个是编译php扩展模块必须的东西
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make
make install
出现 xcache.so
3、编译memcache
/usr/local/php/bin/phpize #这个是编译php扩展模块必须的东西
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
出现 memcache.so
4、编译PDO_MYSQL
PDO扩展为php访问数据库定义了一个轻量级的,一致性的接口,它提供了一个数据访问抽象层,这样,无论什么样的数据库,都可以通过一致性函数执行查询并获取数据。
/usr/local/php/bin/phpize #这个是编译php扩展模块必须的东西
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
出现 pdo_mysql.so
5、配置php,优化相应的内容(eaccelerator)
1)eaccelerator加速缓存配置
#修改配置文件内容
extension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226” #模块的路径
cat >> /usr/local/php/etc/php.ini<<EOF
extension = memcache.so
extension = pdo_mysql.so
EOF
重启php-fpm服务
2)生效配置
#创建对应的缓存目录
mkdir -p /tmp/eaccelerator
chown nginx.nginx /tmp/eaccelerator -R / chown apache.apache /tmp/eaccelerator -R
cat >> /usr/local/php/etc/php.ini<<EOF
[eaccelerator]
extension=eaccelerator.so
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
EOF
3)检查是否生效命令
/usr/local/php/bin/php -m
4)检查目录是否有内容
tree /tmp/eaccelerator
#但是目前里面还没有文件,只有目录
5)重启后访问发现,目录里面有内容了
6、配置php,优化相应的内容(xcache)
1)修改xcache的主配置文件 /home/oldboy/tools/xcache-1.3.2/xcache.ini (修改下面参数)
;zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so <=注释掉
;zend_extension = c:/php/extensions/php_xcache.dll <=注释掉
xcache.size = 128M
xcache.count = 2
xcache.ttl = 86400
xcache.gc_interval = 3600
xcache.var_size = 0
2)然后把xcache主配置文件,追加到php.ini里面去即可
cat /usr/local/src/xcache-1.3.2/xcache.ini >> php.ini
3)检查模块是否加载进去
/usr/local/php/bin/php -m
二、php自身参数的优化
tmps作为内存缓存加速
mount -t tmps tmps /dev/shm -o size=256m
mount -t tmps /dev/shm /tmp/accelerator
备注:上传图片缩略图处理的目录
php.ini里面参数优化内容
序号 | 优化的参数名称 | 设置 |
1 | 安全机制打开 | safe_mod = On |
2 | 用户组安全,建议关闭 | safe_mode_gid = Off |
3 | 关闭危险函数 | disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server |
4 | 关闭php版本信息在http头中的泄露 | expose_php = Off |
5 | 关闭全局变量 | register_global = Off |
6 | 打开magic_quotes_gpc来防止sql注入 | magic_quotes_gpc = On 不关闭危害:轻则网站后台被入侵,重则服务器沦陷 |
7 | 错误信息控制,建议关闭 | display_errors = Off |
8 | 错误日志,建议打开 | log_errors = On error_log = 路径 |
9 | 资源限制参数优化 | max_execution_time = 30 #设置脚本运行的最长时间 memory_limit = 128M #每个脚本使用的最大内存 max_input_time = 60 #每个脚本等待输入数据最长时间 upload_max_filesize = 2M #上传文件最大许可大小 |
10 | 部分安全参数优化 | allow_url_fopen = Off #禁止打开远程地址 cgi.fix_pathinfo = 0 #防止nginx文件类型错误解析,这是一个漏洞 |
11 | session问题 | session.save_handler = memcache session.save_path = “tcp://192.168.88.136:11211” |
在编译opcache的模块时,需要添加的参数为:
[Zend Opcache]
zend_extension = $path/opcache.so
opcache.memory_consumption=64
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.force_restart_timeout=180
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1