- 首页 >
- 问答 >
-
云计算 >
- PHP配置Ubuntu服务器有哪些技巧
PHP配置Ubuntu服务器有哪些技巧
小樊
44
2025-12-06 15:10:48
Ubuntu 服务器上配置 PHP 的实用技巧
一 基础安装与多版本管理
- 更新索引并安装所需组件(以 Ubuntu 20.04/22.04 为例,按需替换版本号):
- sudo apt update && sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-bcmath
- 查看与切换版本:
- 查看:php -v;查找 php.ini:php --ini(注意区分 CLI 与 FPM/Apache 的配置路径)
- 多版本并存与切换(示例为 7.4/8.0/8.1/8.2):
- 安装多个版本:sudo apt install php7.4 php8.0 php8.1 php8.2
- 使用 update-alternatives 设置默认 CLI:
- sudo update-alternatives --set php /usr/bin/php8.1
- 为 Web 选择版本:在 Apache 使用 a2enmod/a2dismod,在 Nginx 调整 fastcgi_pass 指向对应版本的 PHP-FPM socket(如:/var/run/php/php8.1-fpm.sock)
二 核心配置与性能优化
- 编辑正确的 php.ini(两处常见位置):
- Apache:/etc/php/{version}/apache2/php.ini
- FPM/CLI:/etc/php/{version}/fpm/php.ini 或 /etc/php/{version}/cli/php.ini
- 常用运行时参数(按应用调优):
- memory_limit = 128M–256M
- max_execution_time = 30–60
- upload_max_filesize = 10M–50M
- post_max_size 与上传上限匹配
- 启用并调优 OPcache(建议生产环境开启):
- 安装:sudo apt install php**{version}**-opcache
- 配置示例:
- opcache.enable=1
- opcache.memory_consumption=64–128
- opcache.max_accelerated_files=4000–10000
- opcache.validate_timestamps=0(生产建议关闭,配合部署后重启 FPM)
- 使用 PHP-FPM 并优化进程管理(/etc/php/{version}/fpm/pool.d/www.conf):
- pm = dynamic
- pm.max_children = 50(依据内存与单进程占用计算)
- pm.start_servers = 5
- pm.min_spare_servers = 5
- pm.max_spare_servers = 35
- pm.max_requests = 500(防内存泄漏)
- 修改后重启生效:
- Apache:sudo systemctl restart apache2
- PHP-FPM:sudo systemctl restart php**{version}**-fpm
三 与 Web 服务器集成要点
- Nginx 典型配置片段:
- location ~ .php$ {
- include snippets/fastcgi-php.conf;
- fastcgi_pass unix:/var/run/php/php**{version}**-fpm.sock;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- Apache 两种常见方式:
- 模块方式(mod_php):a2enmod php**{version}**;确保 <FilesMatch .php$> 使用正确的处理器
- FPM 方式(推荐):启用 proxy_fcgi 模块,SetHandler “proxy:unix:/var/run/php/php**{version}**-fpm.sock|fcgi://localhost”
四 安全加固与运维实践
- 降低信息泄露与攻击面:
- expose_php = Off
- display_errors = Off;error_reporting = E_ALL;日志写入文件
- 禁用危险函数:disable_functions = exec,system,passthru,shell_exec,proc_open,popen
- 会话与 Cookie 安全:
- session.cookie_secure = On(仅 HTTPS)
- session.cookie_httponly = On
- 启用 HTTPS(部署有效证书)
- 文件系统与资源限制:
- open_basedir 限制 Web 可访问目录(如:/var/www/html:/tmp)
- 合理设置 max_execution_time、memory_limit、upload_max_filesize
- 日常运维:
- 定期更新系统与扩展:sudo apt update && sudo apt upgrade
- 监控与排错:使用 htop、php-fpm status 页面、慢日志(slowlog)定位瓶颈
- 变更前备份配置,变更后逐步灰度并回滚预案
五 快速排错与验证
- 验证安装与配置生效:
- 创建 /var/www/html/info.php:
- 访问 http://服务器IP/info.php 检查 Loaded Configuration File、memory_limit、OPcache 等
- 完成后删除 info.php,避免信息泄露
- 修改后未生效的常见原因与处理:
- 改错 php.ini(区分 CLI 与 FPM/Apache)
- 未重启对应服务(Apache 或 PHP-FPM)
- FPM 监听地址或权限错误(检查 socket 路径与 www-data 权限)
- SELinux/AppArmor 限制(如启用需相应策略放行)