温馨提示×

ThinkPHP如何搭建稳定服务器

小樊
42
2025-11-14 18:53:17
栏目: 云计算

稳定部署 ThinkPHP 的实操方案

一 架构与环境准备

  • 运行环境建议:使用 Linux(如 Ubuntu 20.04/22.04)、Nginx/ApachePHP 7.4+(推荐 8.0+)、MySQL 5.7+MariaDB 10.3+,并安装常用扩展:php-fpm、php-mysql、php-zip、php-gd、php-mbstring、php-curl、php-xml、php-bcmath
  • 安装示例(Ubuntu):
    • Nginx:sudo apt update && sudo apt install nginx
    • PHP 与扩展:sudo apt install php php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath
    • MySQL:sudo apt install mysql-server
  • 进程管理:使用 systemd 管理 NginxPHP-FPM,确保开机自启与自动重启。
  • 安全基线:仅开放 80/443 端口,禁用不必要服务与端口,最小权限运行服务与数据库账户。

二 部署流程与关键配置

  • 获取代码与依赖:
    • 生产环境建议从代码仓库拉取并检出发布版本标签:git clone && git checkout
    • 安装依赖:composer install --optimize-autoloader --no-dev
  • 目录与权限:将站点根目录指向 public/,确保 runtime/、日志目录可写;Web 服务器运行用户(如 www-data)对相关目录拥有读写权限。
  • 配置生产参数:
    • 关闭调试:在应用配置中设置 app_debug => false
    • 日志级别:仅记录必要级别,避免频繁磁盘写入;
    • 数据库:使用强口令、限定来源、开启必要的安全参数(如 SQL 模式、连接超时等)。
  • URL 重写与路由:
    • Nginx:
      • location / { try_files $uri $uri/ /index.php?$query_string; }
      • location ~ .php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.4-fpm.sock; }
      • location ~ /.ht { deny all; }
    • Apache:启用 mod_rewrite,在 public/.htaccess 中使用:
      • RewriteEngine On
      • RewriteCond %{REQUEST_FILENAME} !-d
      • RewriteCond %{REQUEST_FILENAME} !-f
      • RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
  • 可选:内置服务器仅用于开发验证(php think run),生产环境务必使用 Nginx/Apache

三 性能与安全加固

  • 性能优化:
    • 启用 OPcache(生产务必开启),合理设置缓存与文件校验频率;
    • 使用 Redis/Memcached 做数据/会话缓存;
    • 优化 SQL(索引、慢查询日志、批量操作),减少 N+1 查询;
    • 静态资源使用 CDN 或反向代理缓存。
  • 安全加固:
    • 全站 HTTPS(优先 TLS 1.2+),可使用 Let’s Encrypt 免费证书;
    • 禁止访问敏感目录与文件(如 .env、.git、runtime、vendor),Nginx 配置 location ~ /.ht { deny all; } 等;
    • 限制上传类型与大小,上传目录禁止脚本执行;
    • 定期升级 PHP、Nginx、MySQL 与依赖,修补漏洞;
    • 应用层开启防跨站、防伪造、输入校验与限流策略。

四 发布运维与监控

  • 发布流程:
    • 使用 Git 管理版本,结合 CI/CD(如 Jenkins/GitLab CI)实现自动化拉取、构建、迁移与平滑发布;
    • 发布前备份数据库与代码,回滚方案就绪;
    • 避免直接在生产执行迁移,使用版本化迁移脚本并在低峰期执行。
  • 日志与监控:
    • 定期清理与轮转 ThinkPHP 日志、Nginx 访问/错误日志、PHP-FPM 日志,防止磁盘被占满;
    • 监控关键指标:HTTP 5xx 比例、响应时延、QPS、慢查询、连接数、磁盘/内存/CPU
    • 设置告警(如 Prometheus + Alertmanager 或云监控),异常自动通知。

五 快速检查清单

检查项 期望状态/要点
PHP 版本 7.4+(推荐 8.0+),OPcache 已启用
Web 服务器 Nginx/Apache 正常运行,站点根目录指向 public/
URL 重写 Nginx try_files 或 Apache .htaccess 生效
数据库连接 账号权限最小化,连接稳定,慢查询有优化
静态资源 启用 CDN/缓存,过期策略合理
HTTPS 全站 HTTPS,证书有效,TLS 版本合规
日志与轮转 日志目录可写,按日/大小轮转,定期清理
备份与回滚 数据库与代码有备份,回滚脚本可用
监控与告警 关键指标监控到位,异常可及时通知
安全基线 禁用不必要端口/服务,目录与文件访问受限

0