1. 安装并配置OPcacheOPcache是PHP核心扩展,通过缓存脚本编译后的字节码,避免重复解析和编译,显著提升执行速度。在Debian中,可通过sudo apt install php-opcache安装(PHP 5.5+自带)。配置时需在php.ini中启用并优化参数:

[opcache]zend_extension=opcache.soopcache.enable=1opcache.memory_consumption=128# 缓存内存大小(MB),根据服务器内存调整opcache.interned_strings_buffer=8# 内部字符串缓冲区大小(MB)opcache.max_accelerated_files=4000# 最大加速文件数,建议设置为项目中PHP文件总数的1.5倍opcache.revalidate_freq=60# 文件修改检查频率(秒),生产环境可设为0(禁用检查)或较高值重启PHP服务(如sudo systemctl restart php-fpm)使配置生效。
2. 优化PHP-FPM配置若使用PHP-FPM(推荐),需调整进程管理参数以匹配服务器资源,避免资源浪费或不足。编辑/etc/php/{version}/fpm/pool.d/www.conf(如www.conf),重点调整:
pm = dynamic# 动态进程管理模式(推荐)pm.max_children = 50# 最大子进程数,根据服务器内存计算(如1GB内存可设为20-30)pm.start_servers = 5# 启动时的子进程数pm.min_spare_servers = 5# 最小空闲子进程数pm.max_spare_servers = 10# 最大空闲子进程数request_terminate_timeout = 300# 请求超时时间(秒),防止单个脚本占用过多资源调整后重启PHP-FPM:sudo systemctl restart php-fpm。
3. 代码层面优化
function add(int $a, int $b): int {return $a + $b;}strlen()),尽量将结果缓存到变量中。echo 'Hello'; vs echo "Hello";)。array_map()、strpos())用C语言实现,比自定义函数更快。yield)可减少内存占用。例如:function getLargeData() {for ($i = 0; $i < 1000000; $i++) {yield $i;}}4. 数据库优化
p:前缀:$mysqli = new mysqli('p:localhost', 'user', 'password', 'database');CREATE INDEX idx_column ON table_name(column_name);),避免SELECT *(只查询所需字段),减少JOIN操作次数。5. 缓存策略
$redis = new Redis();$redis->connect('127.0.0.1', 6379);$data = $redis->get('cache_key');if (!$data) {$data = fetchDataFromDatabase();$redis->set('cache_key', $data, 3600);// 缓存1小时}6. Web服务器优化
gzip on;gzip_comp_level 6;gzip_min_length 256;gzip_proxied any;gzip_vary on;keepalive_timeout 65;keepalive_requests 100;fastcgi_pass指向正确的PHP-FPM socket(如unix:/run/php/php8.2-fpm.sock;)。7. 监控与分析
top、htop、vmstat监控CPU、内存、磁盘I/O使用情况,及时调整配置。log_errors = On,error_log = /var/log/php_errors.log),快速定位问题。