转载请注明出处,如有问题请联系我们! Laravel 网站上线部署教程:从环境配置到伪静态

Laravel 网站上线部署教程:从环境配置到伪静态 这篇文章适合把 Laravel 项目从本地上传到 VPS 或云服务器的用户。Laravel 和普通 PHP 源码不同,它需要 Composer、env 配置、storage 权限、伪静态和缓存命令,如果少一步,就可能出现 500、白屏或路由 404。

一、Laravel 部署前需要准备什么

  • PHP 版本符合项目 composer.json 要求。
  • 安装 Nginx 或 Apache。
  • 安装 MySQL 或 MariaDB。
  • 安装 Composer。
  • 确认项目目录里有 artisan、composer.json、public 目录。

二、安装 PHP 扩展

Laravel 常用扩展包括 mbstring、xml、curl、zip、mysql、bcmath 等。Ubuntu 下可以这样安装:

apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath -y

如果项目要求 PHP7.4,就把版本换成 php7.4。

三、上传项目并安装依赖

cd /var/www/laravel-site
composer install --no-dev --optimize-autoloader

生产环境不要随便执行 composer update,因为它可能升级依赖,导致本地和线上版本不一致。上线部署优先用 composer install。

四、配置 .env 文件

Laravel 的数据库、缓存、邮件、APP_KEY 都在 .env 里配置。

cp .env.example .env
php artisan key:generate

数据库配置示例:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_site
DB_USERNAME=laravel_user
DB_PASSWORD=your_password

五、Nginx 配置重点:root 指向 public

Laravel 的网站根目录必须指向 public,而不是项目根目录。

server {
    listen 80;
    server_name example.com;
    root /var/www/laravel-site/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

如果 root 指向项目根目录,会有安全风险,也容易路由异常。

六、设置目录权限

Laravel 需要 storage 和 bootstrap/cache 可写。

chown -R www-data:www-data /var/www/laravel-site
chmod -R 775 storage bootstrap/cache

七、清理和生成缓存

php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan cache:clear

php artisan config:cache
php artisan route:cache

如果你刚改了 .env,但页面还是旧配置,优先执行 config:clear。

八、数据库迁移

如果项目使用 Laravel migration:

php artisan migrate --force

如果是已有 SQL 文件,则按普通 MySQL 方式导入。

九、常见错误

  • 500 错误:看 storage/logs/laravel.log。
  • 路由 404:检查 Nginx root 是否指向 public。
  • 数据库连接失败:检查 .env 和缓存。
  • 权限错误:检查 storage 和 bootstrap/cache。
  • Composer 报错:检查 PHP 版本和扩展。

十、总结

Laravel 部署的关键是 public 根目录、.env、Composer、目录权限和 artisan 缓存。普通 PHP 源码能直接访问 index.php,但 Laravel 必须按框架规则部署,否则很容易出现 404 或 500。

标签云