温馨提示×

ubuntu php配置怎样优化

小樊
42
2026-09-13 10:34:28
栏目: 编程语言

在 Ubuntu 上优化 PHP 配置,通常围绕性能、稳定性、安全性三个方面进行。下面以 PHP-FPM(最常见,配合 Nginx/Apache) 为例,系统说明优化方法。


一、选择并确认 PHP 版本

推荐使用较新稳定版(如 PHP 8.1 / 8.2 / 8.3):

php -v

升级示例(以 8.2 为例):

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

二、核心 PHP 配置优化(php.ini)

位置通常在:

/etc/php/8.2/fpm/php.ini

1. 内存与执行时间

memory_limit = 256M        ; 根据应用调整(Laravel 建议 256M+)
max_execution_time = 60
max_input_time = 60

2. 文件上传

upload_max_filesize = 64M
post_max_size = 64M

3. 错误与日志(生产环境)

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

4. 禁用危险函数

disable_functions = exec,passthru,shell_exec,system,proc_open,popen

5. 时区

date.timezone = Asia/Shanghai

三、PHP-FPM 进程管理优化(关键)

配置文件:

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

1. 进程模式选择

pm = dynamic

2. 动态进程参数(示例,2核4G)

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

建议公式:

  • max_children ≈ 内存 / 单进程内存
  • 单 PHP 进程约 30–80MB

3. 使用 Unix Socket(更快)

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

Nginx 中对应:

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

四、开启 OPcache(强烈推荐)

安装:

sudo apt install php8.2-opcache

配置 /etc/php/8.2/fpm/php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0   ; 生产环境关闭

五、Nginx / Apache 配合优化

Nginx 示例

fastcgi_read_timeout 60;
client_max_body_size 64m;

Apache(mpm_event + php-fpm)

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm

六、安全与系统层面优化

1. 文件权限

sudo chown -R www-data:www-data /var/www

2. 限制 FPM 用户

user = www-data
group = www-data

3. 开启 HTTPS(Let’s Encrypt)

sudo apt install certbot python3-certbot-nginx

七、性能监控与调优工具

  • htop:查看 CPU / 内存
  • php-fpm status:
pm.status_path = /status
  • 慢日志:
slowlog = /var/log/php/slow.log
request_slowlog_timeout = 5s

八、常见推荐组合(参考)

场景 配置建议
小站(1核1G) pm=dynamic,max_children=10
中型(2核4G) max_children=50,OPcache
高并发 pm=static + Redis 缓存

如果你能告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Web 服务(Nginx / Apache)
  • 应用类型(WordPress / Laravel / 自研)

我可以给你一套精准配置方案。

0 踩