CentOS 上部署 Laravel 的实用技巧
一 基础环境快速到位
mysql_secure_installation 做安全初始化。composer global require laravel/installer),便于后续创建与维护项目。firewall-cmd --permanent --add-service=http --add-service=https && firewall-cmd --reload。二 权限与 SELinux 正确配置
/etc/php-fpm.d/www.conf 中设置 user/group,在 Nginx/Apache 中保持一致,避免写文件时报 500。getenforce;httpd_sys_content_t、httpd_sys_rw_content_t),或按需使用 semanage fcontext/restorecon 为项目路径打标签;三 高性能与安全的 PHP 与 FPM 调优
opcache.enable=1、opcache.memory_consumption=64、opcache.max_accelerated_files=10000、opcache.revalidate_freq=2、opcache.fast_shutdown=1;CLI 开发时可按需开启 opcache.enable_cli。memory_limit=256M(或更高视应用而定)、max_execution_time=180、upload_max_filesize=20M、post_max_size=20M、max_file_uploads=10。session.save_handler 设为 memcached/redis,提升并发与稳定性。system、exec、shell_exec、passthru、popen、eval 等,降低攻击面。expose_php=Off。pm=dynamic、pm.max_children=50、pm.start_servers=5、pm.min_spare_servers=5、pm.max_spare_servers=35、pm.max_requests=500,结合内存与 QPS 逐步压测微调。四 Web 服务器与路由配置要点
root 指向 /path/to/laravel/public;try_files $uri $uri/ /index.php?$query_string; 统一走前端控制器;fastcgi_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; }。DocumentRoot 指向 public,并配置 <Directory> 允许 .htaccess 覆盖。composer install --no-dev --optimize-autoloader;php artisan key:generate;php artisan migrate --force;php artisan config:cache、php artisan route:cache、php artisan view:cache(开发环境勿开启)。五 排错与上线清单
tail -f /var/log/nginx/error.log、tail -f /var/log/php-fpm/error.log,大多数问题(权限、FPM、路由)都能快速定位。.env 正确、.env.local 不误提交;APP_KEY 已生成;数据库连接可达;队列/调度按需启动(php artisan queue:work、php artisan schedule:run)。storage 与 bootstrap/cache 可写,运行 php artisan storage:link(如使用本地存储)。