温馨提示×

Debian PHP部署有哪些技巧

小樊
36
2025-12-11 01:11:09
栏目: 编程语言

Debian PHP 部署实用技巧

一 基础部署与版本选择

  • 保持系统软件包为最新,优先选择当前稳定版 PHP(如 8.2),兼顾性能与安全修复。按需安装常用扩展:php-fpm、php-mysql、php-curl、php-gd、php-mbstring、php-xml、php-zip、php-opcache。示例:sudo apt update && sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-opcache
  • Web 服务器二选一:
    • Nginx + PHP-FPM(推荐):配置站点中 location ~ \.php$ 使用 Unix 套接字(如 /var/run/php/php8.2-fpm.sock),并包含 fastcgi_paramsSCRIPT_FILENAME
    • Apache + mod_php:启用模块(如 a2enmod php8.2),按需启用 rewrite
  • 部署后快速自检:在站点根目录放置 info.php<?php phpinfo(); ?>),访问确认解析与模块加载正常。

二 性能优化与关键参数

  • 启用并调优 OPcache(生产环境强烈建议):opcache.enable=1opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=60,可显著提升响应速度。
  • 合理设置 php.ini 基础参数:memory_limit=256Mupload_max_filesize=50Mpost_max_size=50Mmax_execution_time=300date.timezone=Europe/Paris(按业务调整)。
  • Web 服务器层优化:
    • Nginx 开启压缩与静态资源缓存:
      • gzip on; gzip_comp_level 6; gzip_min_length 256; gzip_vary on;
      • 静态资源:location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control "public, no-transform"; }
    • Apache 可启用 mod_deflatemod_expires 做压缩与过期控制。

三 安全加固与权限管理

  • 系统与软件:及时 apt update/upgrade,仅启用必要的 PHP 扩展,减少攻击面。
  • PHP 安全:在 php.ini 中限制危险函数(如 disable_functions=exec,system,passthru,shell_exec,proc_open,popen 等),并关闭显示错误(生产环境 display_errors=Off,开发环境再开启)。
  • 运行身份与权限:确保 PHP-FPM 池与 **Web 服务用户(如 www-data)**一致,目录属主设为 www-data,权限建议文件 644、目录 755,避免上传目录执行权限。
  • 网络与端口:仅开放必要端口,使用 UFW 放行 HTTP/HTTPS(如 sudo ufw allow 'Nginx Full'sudo ufw allow 'Apache Full')。

四 自动化部署与持续交付

  • 代码与依赖:使用 Git 管理代码,部署时执行 git pull 或克隆;后端依赖用 Composer 安装(composer install --no-interaction --prefer-dist)。
  • 配置与进程:通过 Ansible 编排部署任务(拉取代码、安装依赖、重启 PHP-FPM/Nginx),示例 Playbook 包含 git 模块、shell 执行 Composer、service 重启服务,便于一键复用与扩展。
  • 发布策略:建议接入 Git Hooks/CI(如 GitHub Actions/GitLab CI)做构建、测试与滚动发布,降低人工失误。

五 调试与运维监控

  • 调试:开发环境安装 Xdebug,配置 zend_extension=xdebug.soxdebug.mode=debugxdebug.client_host=127.0.0.1xdebug.client_port=9003,配合 IDE(如 VS Code)进行断点调试。
  • 日志与排错:实时查看 NginxPHP-FPM 错误日志(如 tail -f /var/log/nginx/error.log),Nginx 配置变更前执行 nginx -t 做语法校验。
  • 监控与告警:结合 Prometheus + Grafana 监控请求耗时、错误率、慢查询与资源使用,设置阈值告警,保障稳定性。

0