在 Ubuntu 上 PHP 配置或请求响应缓慢,通常不是单一原因,而是环境、配置或代码共同作用的结果。下面按常见原因 → 排查方法 → 解决建议系统说明。
mod_php(Apache)✅ 建议:
# 禁用 mod_php
sudo a2dismod php
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
常见问题:
pm = static 但 pm.max_children 太小request_terminate_timeout 过长✅ 检查:
ps aux | grep php-fpm
✅ 优化 /etc/php/*/fpm/pool.d/www.conf:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
phpinfo() 都慢PHP 或系统在做 DNS 反向解析
✅ 解决:
sudo nano /etc/hosts
确保有:
127.0.0.1 localhost
127.0.1.1 your-hostname
Apache 中:
HostnameLookups Off
php -m
常见拖慢的:
✅ 生产环境:
; 关闭 xdebug
; zend_extension=xdebug.so
; 开启 opcache
opcache.enable=1
opcache.memory_consumption=128
session 存储慢✅ 改用 Redis:
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
top
iostat -x 1
/tmp 在慢磁盘✅ 建议:
upload_tmp_dir = /dev/shm
session.save_path = /dev/shm
✅ 解决:
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
systemd 服务启动慢systemd-analyze blame
Ubuntu 20.04 默认 PHP 7.4
Ubuntu 22.04 默认 PHP 8.1
✅ 推荐:
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.2-fpm
php -v
php -m
php -i | grep opcache
systemctl status php*-fpm
apachectl -M | grep php
请告诉我:
我可以直接给你一份最优 php.ini + fpm 配置。