提升CentOS上PHP执行速度可以通过多种方法实现,以下是一些关键的优化步骤:
启用和配置OPcache
- 启用OPcache:OPcache是PHP的内置缓存扩展,可以显著提高PHP代码的执行效率。
sudo yum install php-opcache
编辑/etc/php.ini
文件,取消以下行的注释并设置合适的参数:zend_extension=/usr/lib64/php/modules/opcache.so opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1
重启PHP-FPM服务:sudo systemctl restart php-fpm
使用新的编译器和GCC
- 使用新一点的编译器,推荐GCC 4.8以上,因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持,这会带来5%左右的性能提升。
配置Nginx和PHP-FPM
- 调整Nginx配置:
worker_processes auto; # 根据CPU内核数设置 events { worker_connections 1024; use epoll; }
- 调整PHP-FPM配置:
location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; }
使用HugePages
- 在系统中开启HugePages,然后开启OPcache的huge_code_pages。
sudo sysctl -w vm.nr_hugepages=512 echo 512 > /proc/sys/vm/nr_hugepages
在php.ini
中加入:opcache.huge_code_pages=1
文件句柄缓存
- 开启文件句柄缓存:
open_file_cache max=2000 inactive=20s; open_file_cache_valid=60s; open_file_cache_min_uses=5; open_file_cache_errors off;
其他优化建议
- 禁用不必要的PHP函数:通过
disable_functions
选项禁用一些可能被恶意利用的函数。 - 调整内存限制:根据应用程序的需求和服务器的可用内存,调整
memory_limit
。 - 启用输出缓冲:启用输出缓冲,减少HTTP请求总数,提高性能。
- 使用PGO:如果PHP是专门为一个项目服务,可以尝试通过PGO来提升性能。
通过上述优化措施,可以显著提升CentOS上PHP的执行速度。每个应用程序的需求和环境都不同,因此在进行性能调优时,建议根据具体情况进行调整。