温馨提示×

ubuntu php配置怎么优化

小樊
35
2026-09-01 11:45:28
栏目: 编程语言

在 Ubuntu 上优化 PHP 配置,通常分为 PHP-FPM / Apache 模式选择、php.ini 调整、OPcache、资源限制、慢日志、安全 等几个方面。下面以 Ubuntu + PHP-FPM(最常见,如 Nginx) 为例说明。


一、确认 PHP 运行模式

php -v
php -m | grep fpm

常见组合:

  • Nginx + PHP-FPM(推荐)
  • Apache + mod_php(不推荐新项目)

查看 PHP 版本和配置路径:

php --ini

二、核心 php.ini 优化(生产环境)

路径示例:

/etc/php/8.1/fpm/php.ini

1. 基础性能

memory_limit = 256M          ; 根据业务调整,不要过大
max_execution_time = 30      ; 防止脚本卡死
max_input_time = 60
post_max_size = 32M
upload_max_filesize = 32M

2. 错误与日志

display_errors = Off
log_errors = On
error_log = /var/log/php/php-error.log

3. 时区

date.timezone = Asia/Shanghai

三、OPcache(非常重要)

编辑:

/etc/php/8.1/fpm/conf.d/10-opcache.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   ; 生产环境关闭(改代码需重启)
opcache.save_comments=1

启用后重启:

systemctl restart php8.1-fpm

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

配置文件:

/etc/php/8.1/fpm/pool.d/www.conf

1. 进程模式

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 500

计算公式(参考):

max_children ≈ 可用内存 / 单个 PHP 进程内存

查看进程内存:

ps aux | grep php-fpm

五、开启慢日志(排查卡顿)

slowlog = /var/log/php/php-slow.log
request_slowlog_timeout = 5s

六、文件描述符 & 系统层

1. 提高限制

ulimit -n 65535

永久:

/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

2. TCP 优化(Nginx + PHP-FPM)

使用 unix socket:

listen = /run/php/php8.1-fpm.sock

Nginx:

fastcgi_pass unix:/run/php/php8.1-fpm.sock;

七、安全优化

expose_php = Off
allow_url_fopen = Off   ; 非必要关闭
disable_functions = exec,passthru,shell_exec,system

八、常用命令

# 重启
systemctl restart php8.1-fpm

# 查看状态
systemctl status php8.1-fpm

# 测试配置
php-fpm8.1 -t

九、推荐工具

  • phpinfo() 检查配置
  • htop / glances 看资源
  • blackfire / tideways 性能分析

如果你能告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Web 服务器(Nginx / Apache)
  • 业务类型(API / 网站 / 高并发)

我可以给你一套针对性配置

0