温馨提示×

ubuntu php配置为何缓慢

小樊
35
2026-09-22 16:21:49
栏目: 编程语言

在 Ubuntu 上 PHP 配置或请求响应缓慢,通常不是单一原因,而是环境、配置或代码共同作用的结果。下面按常见原因 → 排查方法 → 解决建议系统说明。


一、PHP 运行方式导致(最常见)

1. 使用了 mod_php(Apache)

  • 每个请求都加载完整 PHP 解释器
  • 内存占用高、并发差

✅ 建议:

# 禁用 mod_php
sudo a2dismod php
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm

2. PHP-FPM 配置不合理

常见问题:

  • pm = staticpm.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

二、DNS / 网络解析慢(非常隐蔽)

现象

  • CLI 很快
  • Web 访问慢
  • phpinfo() 都慢

原因

PHP 或系统在做 DNS 反向解析

✅ 解决:

sudo nano /etc/hosts

确保有:

127.0.0.1   localhost
127.0.1.1   your-hostname

Apache 中:

HostnameLookups Off

三、PHP 扩展或配置问题

1. 开启了不必要扩展

php -m

常见拖慢的:

  • xdebug(生产环境致命)
  • opcache 未开启

✅ 生产环境:

; 关闭 xdebug
; zend_extension=xdebug.so

; 开启 opcache
opcache.enable=1
opcache.memory_consumption=128

2. session 存储慢

  • 默认文件锁
  • 高并发时阻塞

✅ 改用 Redis:

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

四、磁盘 / IO 问题

检查

top
iostat -x 1

常见原因

  • 机械硬盘
  • 日志写入过多
  • /tmp 在慢磁盘

✅ 建议:

upload_tmp_dir = /dev/shm
session.save_path = /dev/shm

五、Composer / 框架自动加载

Laravel / Symfony 等

  • 未优化 autoload
  • 开发模式运行

✅ 解决:

composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache

六、Ubuntu 特有慢点

1. systemd 服务启动慢

systemd-analyze blame

2. PHP 版本过旧

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

八、如果你愿意,我可以更精准帮你

请告诉我:

  1. Ubuntu 版本
  2. PHP 版本
  3. Web 服务(Apache / Nginx)
  4. 配置慢 还是 访问页面慢
  5. 是否 Laravel / ThinkPHP / 原生 PHP

我可以直接给你一份最优 php.ini + fpm 配置

0