Linux系统如何配置Laravel的最佳实践
导读:Linux 上配置 Laravel 的最佳实践 一 环境准备与版本选择 选择 Ubuntu/Debian 等主流发行版,保持系统与软件源更新;Laravel 现代版本通常需要 PHP 8.0+,建议优先 PHP 8.1/8.2。 安装 P...
Linux 上配置 Laravel 的最佳实践
一 环境准备与版本选择
- 选择 Ubuntu/Debian 等主流发行版,保持系统与软件源更新;Laravel 现代版本通常需要 PHP 8.0+,建议优先 PHP 8.1/8.2。
- 安装 PHP 及常用扩展(按你的 PHP 版本调整包名,如 php8.1-fpm、php8.1-mysql、php8.1-zip、php8.1-gd、php8.1-mbstring、php8.1-xml、php8.1-curl)。
- 安装 Composer 并全局安装 Laravel 安装器(可选):
- php -r “copy(‘https://getcomposer.org/installer’,‘composer-setup.php’); ”
- php -r “if(hash_file(‘sha384’, ‘composer-setup.php’)===‘55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae’){ echo ‘Installer verified’; } else{ unlink(‘composer-setup.php’); echo ‘Installer corrupt’; } ”
- php composer-setup.php & & php -r “unlink(‘composer-setup.php’); ”
- sudo mv composer.phar /usr/local/bin/composer
- composer global require laravel/installer
- 选择 Nginx + PHP-FPM(或 Apache),数据库建议 MySQL 8.0 或 PostgreSQL。
- 生产环境务必关闭调试:将 .env APP_DEBUG=false,并配置合适的 APP_URL。
二 Web 服务器与 PHP 配置
- Nginx 最小可用配置(将 root 指向项目的 public 目录,按实际 PHP 版本调整 fastcgi_pass 的 socket 路径):
- server {
listen 80;
server_name example.com;
root /var/www/laravel/public;
index index.php;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; }
location ~ /.ht { deny all; } } - 启用站点并测试:sudo ln -s /etc/nginx/sites-available/myproj /etc/nginx/sites-enabled & & sudo nginx -t & & sudo systemctl reload nginx
- server {
listen 80;
server_name example.com;
root /var/www/laravel/public;
index index.php;
- Apache 可使用 mod_php 或 PHP-FPM,虚拟主机 DocumentRoot 指向 public,并开启 AllowOverride All。
- PHP-FPM 与进程管理:使用 www-data 运行,按内存与并发调优 pm.max_children/pm.start_servers/pm.min_spare_servers/pm.max_spare_servers;确保 listen.owner/listen.group 与 Nginx 一致。
- 安全与性能头:启用 X-Frame-Options、X-XSS-Protection、X-Content-Type-Options;静态资源走 gzip/brotli;启用 HTTP/2。
三 文件系统与权限
- 目录归属与权限(以 www-data 为例):
- sudo chown -R www-data:www-data /var/www/laravel
- sudo chmod -R 755 /var/www/laravel
- sudo chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap/cache
- 仅暴露 public/ 目录,禁止访问 .env 与敏感目录;可使用 Nginx 规则:location ~ /.(?!well-known).* { deny all; }
- 日志与存储:确保 storage/logs/ 可写;定期轮转 Laravel 与 Nginx 日志(如 logrotate)。
四 应用配置与性能优化
- 环境与安全:
- 复制 .env.example 为 .env,生成应用密钥:php artisan key:generate;设置强 APP_KEY、APP_ENV=production、关闭调试。
- 配置 CACHE_DRIVER=redis、SESSION_DRIVER=redis、QUEUE_CONNECTION=redis(需安装并运行 Redis)。
- 路由与配置缓存(仅生产):
- php artisan config:cache & & php artisan route:cache & & php artisan view:cache
- Composer 优化自动加载:composer dump-autoload --optimize
- OPcache 建议参数(php.ini):
- opcache.enable=1;opcache.memory_consumption=128;opcache.max_accelerated_files=10000;opcache.revalidate_freq=60
- 队列与异步任务:
- 常驻消费:php artisan queue:work --queue=default --tries=3 --timeout=90
- 使用 Supervisor 守护队列进程,确保异常自动重启。
- 数据库与 Eloquent:
- 为高频查询字段建立索引;使用 Eager Loading(with) 解决 N+1;分页与限流控制单次数据量。
- 可选高性能方案:
- Laravel Octane(Swoole/RoadRunner):composer require laravel/octane & & php artisan octane:install & & php artisan octane:start --workers=4。
五 部署流程与持续交付
- 标准流程:
- 拉取代码(git clone 或 CI 检出)→ 安装依赖:composer install --optimize-autoloader --no-dev → 生成密钥 → 执行迁移:php artisan migrate --force → 缓存配置/路由/视图 → 重启队列/服务。
- 文件与目录:确保 .env 与 storage/、bootstrap/cache/ 权限正确;必要时执行 php artisan storage:link。
- 本地开发:使用 Laravel Sail(Docker)快速搭建一致的 LEMP 环境,缩短环境差异带来的问题。
- 自动化与监控:
- CI/CD(如 GitLab CI)实现测试、构建、部署流水线;
- 监控与告警:集成 Laravel Debugbar(开发)、New Relic/Datadog 等 APM;
- 定期更新 Laravel、PHP 与依赖,修补安全漏洞。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux系统如何配置Laravel的最佳实践
本文地址: https://pptw.com/jishu/789319.html
