1. 安装并配置OPcache扩展OPcache是PHP内置的字节码缓存扩展,可显著减少脚本编译次数,提升执行效率。安装命令:sudo apt install php-opcache(Ubuntu 22.04+默认包含)。编辑PHP配置文件(路径取决于PHP版本和Web服务器,如/etc/php/8.2/fpm/php.ini),添加或修改以下参数:

zend_extension=opcache.soopcache.enable=1opcache.enable_cli=1opcache.memory_consumption=128# 缓存内存大小(MB),根据服务器内存调整opcache.interned_strings_buffer=8# 内部字符串缓冲区大小opcache.max_accelerated_files=10000# 最大加速文件数(需覆盖项目文件数量)opcache.revalidate_freq=60# 文件修改检查频率(秒)opcache.fast_shutdown=1# 快速关闭功能重启PHP-FPM或Apache使配置生效:sudo systemctl restart php8.2-fpm。
2. 使用最新稳定版PHP新版本PHP通常包含性能优化和bug修复,建议通过Ondrej Sur的PPA安装最新版:
sudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql# 根据需求安装扩展安装后,禁用旧版本PHP并启用新版本:sudo a2dismod php7.4 && sudo a2enmod php8.2(Apache),或修改Nginx配置中的fastcgi_pass指向新版本PHP-FPM socket。
3. 优化PHP-FPM进程配置PHP-FPM是PHP的FastCGI进程管理器,合理配置进程数能平衡性能与资源占用。编辑/etc/php/8.2/fpm/pool.d/www.conf,调整以下参数:
dynamic(动态调整,适合负载波动大的环境);pm = dynamicpm.max_children = 50# 最大子进程数(根据服务器内存计算:总内存/单个进程内存,如2GB内存约设30-40)pm.start_servers = 10# 启动时的子进程数pm.min_spare_servers = 5# 最小空闲进程数pm.max_spare_servers = 20# 最大空闲进程数pm.max_requests = 500# 每个子进程处理的最大请求数(防止内存泄漏)重启PHP-FPM使配置生效:sudo systemctl restart php8.2-fpm。
4. 启用数据库缓存(Redis/Memcached)对于数据库密集型应用,使用Redis或Memcached缓存频繁访问的数据,减少数据库查询次数。安装Redis:sudo apt install redis-server,然后在PHP代码中使用phpredis扩展(sudo apt install php-redis)或Predis库连接Redis。配置示例(php.ini):
extension=redis.so对于Memcached:sudo apt install memcached php-memcached,同样需在代码中集成。
5. 优化Web服务器配置
worker_processes(设为CPU核心数)、worker_connections(每个进程的最大连接数),启用gzip压缩和sendfile:events {worker_connections 1024;}http {sendfile on;gzip on;gzip_types text/plain text/css application/json application/javascript;}mod_deflate(压缩)和mod_expires(缓存静态资源),调整KeepAlive设置:<IfModule mod_deflate.c>AddOutputFilterByType DEFLATE text/html text/css application/javascript</IfModule><IfModule mod_expires.c>ExpiresActive OnExpiresByType text/html "access plus 1 hour"</IfModule>KeepAlive OnKeepAliveTimeout 5MaxKeepAliveRequests 100重启Web服务器:sudo systemctl restart nginx或sudo systemctl restart apache2。6. 代码级优化
7. 监控与调优使用工具监控PHP性能,定位瓶颈:
top(查看CPU/内存占用)、htop(更直观的资源监控)、vmstat(系统整体性能);Blackfire(可视化性能分析)、XHProf(Facebook开源的性能分析工具);slowlog(慢请求日志),定位执行时间过长的脚本。