Debian下PHP配置实用技巧
更新系统与安装PHP
配置前先更新系统包列表,确保软件包版本兼容:sudo apt update && sudo apt upgrade。安装PHP时,推荐使用PHP-FPM(FastCGI进程管理器),提升并发处理能力,例如安装PHP 8.2及常用扩展:sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring。
选择正确的PHP配置文件
Debian的PHP配置文件按模式分类:
/etc/php/{版本号}/cli/php.ini(影响CLI脚本执行);/etc/php/{版本号}/apache2/php.ini(Apache)或/etc/php/{版本号}/fpm/php.ini(Nginx/PHP-FPM)。sudo systemctl restart apache2或sudo systemctl restart php8.2-fpm)使配置生效。性能关键参数调整
在php.ini中设置以下参数,提升PHP执行效率:
memory_limit = 256M(根据服务器内存调整,避免脚本占用过多内存);max_execution_time = 30(限制脚本最长执行时间,防止长时间运行阻塞资源);upload_max_filesize = 10M/post_max_size = 12M(限制上传文件大小,post_max_size需大于upload_max_filesize);opcache.enable = 1(启用OPcache,缓存编译后的PHP脚本,减少重复解析时间);opcache.memory_consumption = 128(分配128MB内存给OPcache);opcache.max_accelerated_files = 10000(缓存10000个文件,提升缓存命中率)。PHP-FPM进程管理优化
编辑/etc/php/{版本号}/fpm/pool.d/www.conf,调整进程池参数以适应服务器资源:
pm = dynamic(动态调整进程数,平衡性能与资源消耗);pm.max_children = 50(最大子进程数,建议为CPU核心数×2+1,如4核CPU设为9);pm.start_servers = 10(启动时的子进程数);pm.min_spare_servers = 5(最小空闲子进程数,避免频繁创建进程);pm.max_spare_servers = 20(最大空闲子进程数,避免资源浪费);request_terminate_timeout = 30s(单个请求超时时间,防止慢请求占用资源)。禁用危险函数与限制访问
在php.ini中设置disable_functions = exec,system,shell_exec,passthru,禁用可能被恶意利用的危险函数;通过open_basedir = /var/www/html:/tmp限制PHP可访问的目录,防止跨目录文件操作。
配置错误日志与防火墙
关闭错误显示(display_errors = Off),开启错误日志(log_errors = On),并指定日志路径(error_log = /var/log/php_errors.log),避免敏感信息泄露;使用ufw配置防火墙,仅允许必要流量:sudo ufw allow 'Nginx Full'(Nginx)或sudo ufw allow 'Apache Full'(Apache),限制非必要端口访问。
按需安装扩展
根据项目需求安装扩展,避免冗余:
php-mysql/php-pgsql;php-gd;php-xml/php-json;php-redis/php-memcached(减少数据库查询压力)。代码层面优化
prepare/execute)和连接池,提升查询效率;yield关键字,减少内存占用。