温馨提示×

如何修改Debian PHP配置

小樊
43
2025-11-29 06:41:46
栏目: 编程语言

Debian 修改 PHP 配置的完整步骤

一 准备与定位配置文件

  • 确认 PHP 版本与 SAPI:运行 php -v 查看版本;运行 php -m | grep -E ‘apache2|fpm|cli’ 确认当前使用的 SAPI(如 apache2fpmcli)。
  • 查找 php.ini 路径:运行 php --ini,关注 “Loaded Configuration File” 与 “Configuration File (php.ini) Path”。常见路径为:
    • Apache:/etc/php/{version}/apache2/php.ini
    • PHP-FPM:/etc/php/{version}/fpm/php.ini
    • CLI:/etc/php/{version}/cli/php.ini
  • 备份原始配置:例如 sudo cp /etc/php/8.2/fpm/php.ini /etc/php/8.2/fpm/php.ini.bak
  • 原则:修改哪一端就改对应的 php.ini(Web 请求看 apache2/fpm,命令行看 cli)。

二 修改 php.ini 常用参数

  • 编辑对应 SAPI 的 php.ini(以 /etc/php/{version}/{sapi}/php.ini 为例):
    • 内存与执行:
      • memory_limit = 256M
      • max_execution_time = 300
    • 上传与 POST:
      • upload_max_filesize = 50M
      • post_max_size = 50M(应 ≥ upload_max_filesize)
    • 时区:
      • date.timezone = Asia/Shanghai
    • 错误报告(生产建议关闭显示、开启日志):
      • display_errors = Off
      • log_errors = On
      • error_log = /var/log/php_errors.log
  • 使配置生效:
    • Apache:sudo systemctl restart apache2
    • Nginx + PHP-FPM:sudo systemctl restart php{version}-fpm && sudo systemctl restart nginx
  • 验证:
    • CLI:运行 php -i | grep memory_limit(或 grep 其他指令)
    • Web:创建 /var/www/html/info.php 内容为 ,访问确认。

三 使用 PHP-FPM 与 Web 服务器集成

  • 安装与启用:
    • sudo apt install php{version}-fpm
    • 启动与开机自启:sudo systemctl start php{version}-fpm && sudo systemctl enable php{version}-fpm
  • 调整 FPM 进程池(按需):编辑 /etc/php/{version}/fpm/pool.d/www.conf
    • 进程管理:pm = dynamic
    • 并发与回收:pm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35
  • Web 服务器与 FPM 对接:
    • Nginx 示例:
      • location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php{version}-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
      • 检查并重载:sudo nginx -t && sudo systemctl reload nginx
    • Apache 示例(启用 proxy_fcgi 后):
      • <FilesMatch .php$> SetHandler “proxy:unix:/run/php/php{version}-fpm.sock|fcgi://localhost”
      • 重载:sudo systemctl reload apache2
  • 说明:FPM 监听可为 Unix socket(如 /run/php/php{version}-fpm.sock)或 TCP 127.0.0.1:9000,两者在 Nginx/Apache 中对应配置即可。

四 进阶优化与安全

  • 启用 OPcache(强烈建议):
    • 安装:sudo apt install php{version}-opcache
    • 配置(php.ini 的 [opcache] 段):
      • opcache.enable=1
      • opcache.memory_consumption=128
      • opcache.interned_strings_buffer=8
      • opcache.max_accelerated_files=4000
      • opcache.revalidate_freq=60
  • 生产环境安全:
    • 关闭错误显示:display_errors = Off;开启日志:log_errors = On;自定义日志路径并确保可写。
    • 目录限制(可选):在 php.ini 设置 open_basedir 或在 .htaccess 使用 php_value open_basedir 限制脚本访问范围。
  • 调试扩展(仅开发):安装 php-xdebug 并在 php.ini 中配置 zend_extension=xdebug.soxdebug.mode=debugxdebug.client_host=127.0.0.1xdebug.client_port=9003,重启服务后配合 IDE 使用。

0