首页主机资讯Laravel框架Linux下如何部署

Laravel框架Linux下如何部署

时间2026-01-20 09:35:04发布访客分类主机资讯浏览605
导读:Linux 下部署 Laravel 的完整流程 一 环境准备 系统建议:Ubuntu 20.04/22.04 或 CentOS 7/8;Web 服务器:Nginx/Apache;数据库:MySQL/MariaDB;PHP 版本需满足 La...

Linux 下部署 Laravel 的完整流程

一 环境准备

  • 系统建议:Ubuntu 20.04/22.04CentOS 7/8;Web 服务器:Nginx/Apache;数据库:MySQL/MariaDB;PHP 版本需满足 Laravel 要求,建议 PHP 8.1+
  • Ubuntu/Debian 安装基础组件:
    sudo apt update
    sudo apt install -y nginx mysql-server php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip git composer
  • CentOS 7 安装思路:先启用 EPEL,再通过 Remi 仓库安装所需版本的 PHP-FPM 与扩展,然后安装 NginxMariaDB/MySQL
  • 说明:Laravel 8.x 通常要求 PHP > = 7.3,Laravel 9/10/11 建议 PHP 8.1+,请以项目实际要求为准。

二 部署代码与安装依赖

  • 放置代码:推荐将项目放在 /var/www/your-project,可通过 Git 克隆或 SFTP 上传。
  • 安装依赖(生产环境):
    cd /var/www/your-project
    composer install --optimize-autoloader --no-dev
  • 配置环境:
    cp .env.example .env

    编辑 .env,设置 APP_ENV=production、APP_DEBUG=false、数据库连接等

    php artisan key:generate
  • 目录权限与存储链接:确保 storagebootstrap/cache 可写,并创建符号链接(如使用本地文件系统):
    php artisan storage:link
  • 数据库初始化:
    php artisan migrate --force

    如需演示数据:php artisan db:seed --force

三 Web 服务器配置

  • Nginx 站点示例(将 root 指向 public,开启 PATH_INFO,限制隐藏文件访问):
    server {
    listen 80;
    server_name yourdomain.com;
    root /var/www/your-project/public;
    index index.php index.html;
    charset utf-8;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt { access_log off; log_not_found off; }
    error_page 404 /index.php;
    location ~ .php$ {
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 按实际 PHP 版本调整
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
    }
    location ~ /.(?!well-known).* {
    deny all;
    }
    }
    启用站点并校验:
    sudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled/
    sudo nginx -t & & sudo systemctl reload nginx
  • Apache 要点:启用 mod_rewrite,将虚拟主机 DocumentRoot 指向 /var/www/your-project/public,并配置 AllowOverride All

四 生产环境优化与安全

  • 优化配置与缓存:
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    php artisan optimize
  • 计划任务(Laravel Scheduler):在服务器 crontab 添加
            • cd /var/www/your-project & & php artisan schedule:run > > /dev/null 2> & 1
  • 队列监听(如使用队列):
    php artisan queue:work --queue=default --tries=3 --sleep=3 &
  • 启用 HTTPS:使用 Certbot 获取并自动配置 Let’s Encrypt 证书,强制 HTTPS 并开启 HSTS
  • 安全要点:关闭 APP_DEBUG;限制上传目录执行权限;仅开放必要端口;定期更新系统与依赖。

五 常见问题排查

  • 404/白屏:确认 root 指向 public,Nginx 配置包含 try_files $uri $uri/ /index.php?$query_string; ,并确保 mod_rewrite 已启用(Apache)。
  • 权限错误:检查 storagebootstrap/cache 目录属主与权限,必要时执行:
    chown -R www-data:www-data /var/www/your-project/storage /var/www/your-project/bootstrap/cache
    chmod -R 775 /var/www/your-project/storage /var/www/your-project/bootstrap/cache
  • 502 Bad Gateway:多为 PHP-FPM 未运行或 fastcgi_pass 路径不匹配,确认 php-fpm 服务状态与 sock 文件路径(如 /var/run/php/php8.1-fpm.sock)。
  • 类未找到/依赖缺失:确认已执行 composer install --optimize-autoloader --no-dev,并检查 composer.jsonautoload 配置。
  • 数据库连接失败:核对 .envDB_HOST/DB_PORT/DB_DATABASE/DB_USERNAME/DB_PASSWORD,确保数据库已创建且远程访问权限正确。
  • 查看日志定位问题:Nginx 错误日志(/var/log/nginx/error.log)、PHP-FPM 日志Laravel 日志(storage/logs/laravel.log)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Laravel框架Linux下如何部署
本文地址: https://pptw.com/jishu/786965.html
Laravel在Linux中如何实现安全防护 ubuntu僵尸进程排查方法

游客 回复需填写必要信息