温馨提示×

ubuntu php如何优化

小樊
36
2026-09-04 12:38:35
栏目: 编程语言

在 Ubuntu 上优化 PHP(通常指 PHP-FPM + Nginx/Apache 环境),可以从系统、PHP 配置、Opcode、缓存、数据库、代码几个层面来做。下面给你一套实用、可落地的优化方案。


一、选择合适的 PHP 版本(很重要)

优先使用较新且稳定的版本:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm php8.2-common

PHP 8.1 / 8.2 / 8.3 性能明显优于 7.x


二、PHP-FPM 进程优化(最关键)

1. 修改 FPM 配置

sudo nano /etc/php/8.2/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
pm.max_requests = 500

计算参考:

pm.max_children ≈ 服务器内存 / 单个 PHP 进程内存
(一般 30–80MB/进程)

查看进程内存:

ps -ylC php-fpm8.2 --sort:rss

三、开启 OPcache(必开)

sudo apt install php8.2-opcache
sudo nano /etc/php/8.2/fpm/php.ini

推荐配置:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0 ; 生产环境

重启:

sudo systemctl restart php8.2-fpm

四、关闭不必要的 PHP 模块

查看已加载模块:

php -m

禁用无用模块(如:

sudo phpdismod json iconv # 仅示例,不要乱禁

常见可禁用:

  • xdebug(生产环境必须关)
  • profiler

五、Nginx / Apache 配合优化

Nginx 示例

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_read_timeout 60;

启用:

  • gzip
  • HTTP/2
  • 静态资源缓存

六、使用缓存层

1. Redis / Memcached

sudo apt install redis-server
sudo apt install php8.2-redis

用于:

  • Session
  • 数据库缓存
  • 页面缓存

七、MySQL 优化(如果用了数据库)

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

常见:

innodb_buffer_pool_size = 1G
query_cache_type = 0

八、系统层面优化

1. 文件描述符

ulimit -n 65535

2. Swappiness

echo 10 | sudo tee /proc/sys/vm/swappiness

3. 使用 SSD + 足够内存


九、代码层面优化(根本)

  • 避免重复 SQL
  • 使用 PreparedStatement
  • 减少 file_get_contents
  • 使用 Composer autoload 优化:
composer install --optimize-autoloader --no-dev

十、监控与压测

htop
php-fpm status
ab -n 1000 -c 100 http://localhost/

总结(最小必做清单)

✅ PHP 8.x
✅ OPcache
✅ PHP-FPM 进程数合理
✅ 关闭 xdebug
✅ Redis 缓存
✅ Nginx 优化

如果你愿意,我可以:

  • 根据你的 服务器配置(CPU/内存) 帮你算 FPM 参数
  • 针对 Laravel / WordPress / ThinkPHP 做专项优化

你现在是哪种 PHP 应用?

0