温馨提示×

centos laravel部署有哪些技巧

小樊
34
2025-11-19 20:33:58
栏目: 智能运维

CentOS 上部署 Laravel 的实用技巧

一 基础环境快速到位

  • 使用版本管理仓库安装较新的 PHP(如通过 EPEL/Remi),并一次性安装常用扩展:php-fpm、php-mysqlnd、php-mbstring、php-xml、php-json、php-curl、php-zip、php-bcmath、php-gd、php-opcache,避免后续缺依赖反复折腾。
  • Web 服务二选一:
    • Nginx:轻量、反向代理友好;
    • Apache:配置简单、.htaccess 友好。
  • 数据库建议 MariaDB/MySQL,安装后用 mysql_secure_installation 做安全初始化。
  • 安装 Composer 并全局化(composer global require laravel/installer),便于后续创建与维护项目。
  • 防火墙放行 HTTP/HTTPSfirewall-cmd --permanent --add-service=http --add-service=https && firewall-cmd --reload
    以上要点可显著提升部署效率与可维护性。

二 权限与 SELinux 正确配置

  • 统一运行身份:让 PHP-FPM 与 Web 服务器使用同一用户/组(如 nginx:nginxapache:apache),在 /etc/php-fpm.d/www.conf 中设置 user/group,在 Nginx/Apache 中保持一致,避免写文件时报 500。
  • 目录权限:Laravel 需要对 storage、bootstrap/cache 可写;常见做法是项目目录 755、文件 644,将可写目录设为 775 并归属 Web 服务用户;必要时使用 ACL 精细化授权。
  • SELinux:
    • 查看状态:getenforce
    • 保持 Enforcing 并配置正确的文件上下文(如 httpd_sys_content_thttpd_sys_rw_content_t),或按需使用 semanage fcontext/restorecon 为项目路径打标签;
    • 不建议直接改为 Permissive/Disabled,会降低系统安全基线。
      这些设置能减少“不可写”“403/500”等高频问题。

三 高性能与安全的 PHP 与 FPM 调优

  • 启用并优化 OPcache(建议生产开启):opcache.enable=1opcache.memory_consumption=64opcache.max_accelerated_files=10000opcache.revalidate_freq=2opcache.fast_shutdown=1;CLI 开发时可按需开启 opcache.enable_cli
  • 合理提升资源限制:memory_limit=256M(或更高视应用而定)、max_execution_time=180upload_max_filesize=20Mpost_max_size=20Mmax_file_uploads=10
  • 会话与缓存:生产可将 session.save_handler 设为 memcached/redis,提升并发与稳定性。
  • 禁用危险函数:system、exec、shell_exec、passthru、popen、eval 等,降低攻击面。
  • 隐藏版本信息:expose_php=Off
  • FPM 进程管理(示例):pm=dynamicpm.max_children=50pm.start_servers=5pm.min_spare_servers=5pm.max_spare_servers=35pm.max_requests=500,结合内存与 QPS 逐步压测微调。
    以上调优能明显改善响应时间与稳定性。

四 Web 服务器与路由配置要点

  • Nginx 最小可用配置要点:
    • root 指向 /path/to/laravel/public
    • try_files $uri $uri/ /index.php?$query_string; 统一走前端控制器;
    • PHP 处理建议用 Unix Socketfastcgi_pass unix:/run/php-fpm/www.sock;,并设置 SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    • 安全头:X-Frame-Options "SAMEORIGIN"X-XSS-Protection "1; mode=block"X-Content-Type-Options "nosniff"
    • 隐藏敏感文件:location ~ /\.(?!well-known).* { deny all; }
  • Apache 要点:启用 mod_rewrite,在虚拟主机中将 DocumentRoot 指向 public,并配置 <Directory> 允许 .htaccess 覆盖。
  • 部署命令清单(生产常用):
    • composer install --no-dev --optimize-autoloader
    • php artisan key:generate
    • 数据库迁移:php artisan migrate --force
    • 路由/配置/视图缓存:php artisan config:cachephp artisan route:cachephp artisan view:cache(开发环境勿开启)。
      这些配置能确保路由正确解析、静态资源高效分发并具备基础安全防护。

五 排错与上线清单

  • 日志优先:tail -f /var/log/nginx/error.logtail -f /var/log/php-fpm/error.log,大多数问题(权限、FPM、路由)都能快速定位。
  • 环境校验:.env 正确、.env.local 不误提交;APP_KEY 已生成;数据库连接可达;队列/调度按需启动(php artisan queue:workphp artisan schedule:run)。
  • 静态资源:确保 storagebootstrap/cache 可写,运行 php artisan storage:link(如使用本地存储)。
  • 安全与合规:仅放行必要端口;禁用调试与暴露版本;定期备份数据库与代码;上线前在预发布环境回归核心流程。
    以上做法能显著降低故障恢复时间并提升上线稳定性。

0