温馨提示×

linux laravel怎么部署到生产

小樊
50
2026-10-07 03:24:57
栏目: 智能运维

下面给你一份在 Linux 服务器上部署 Laravel 到生产环境的常用、稳妥方案(以 Ubuntu + Nginx + PHP-FPM + MySQL 为例,适合绝大多数项目)。


一、服务器准备

1. 系统

  • Ubuntu 20.04 / 22.04(推荐)
  • 非 root 用户 + sudo(安全)

2. 安装基础环境

sudo apt update
sudo apt install -y nginx php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd unzip git

MySQL(可选):

sudo apt install -y mysql-server

二、安装 Composer

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version

三、部署 Laravel 项目

1. 上传代码

方式一(推荐):Git

cd /var/www
git clone git@github.com:your/repo.git laravel

方式二:本地打包上传

scp laravel.zip user@server:/var/www

2. 安装依赖(生产模式)

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

3. 配置环境

cp .env.example .env
nano .env

关键配置:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret

生成 key:

php artisan key:generate

4. 权限设置(重要)

sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 755 /var/www/laravel
sudo chmod -R 777 /var/www/laravel/storage
sudo chmod -R 777 /var/www/laravel/bootstrap/cache

四、Nginx 配置

sudo nano /etc/nginx/sites-available/laravel

示例配置:

server {
    listen 80;
    server_name yourdomain.com;

    root /var/www/laravel/public;

    index index.php index.html;

    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 ~ /\.(?!well-known).* {
        deny all;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、Laravel 生产优化

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize

六、数据库迁移

php artisan migrate --force

七、队列 & 定时任务(如用到)

队列

php artisan queue:work --daemon

生产建议用 Supervisor

定时任务

crontab -e
* * * * * cd /var/www/laravel && php artisan schedule:run >> /dev/null 2>&1

八、HTTPS(强烈推荐)

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

九、常见生产问题

问题 原因
500 错误 .env / 权限 / debug 未关
白屏 storage 无写权限
接口慢 未 cache / 队列未起
上传失败 php.ini 上传大小限制

十、进阶方案(可选)

  • Docker + Laravel
  • Laravel Forge
  • CI/CD(GitHub Actions)
  • 负载均衡 + Redis

如果你愿意,我可以:

  • 给你 CentOS 版本
  • 给你 Docker 部署方案
  • 帮你写 Supervisor 配置
  • 按你的服务器环境定制步骤

你现在的服务器是哪种?

0 踩