温馨提示×

linux laravel怎么部署

小樊
34
2026-10-27 19:20:37
栏目: 智能运维

在 Linux 上部署 Laravel 项目,通常分为 环境准备、代码部署、配置与优化、运行与守护 几个步骤。下面以 Ubuntu / CentOS + Nginx + PHP + MySQL 为例,给你一套通用流程。


一、环境准备

1. 安装基础软件

# Ubuntu
sudo apt update
sudo apt install -y nginx php php-fpm php-mysql php-mbstring php-xml php-bcmath php-curl unzip git mysql-server
# CentOS
sudo yum install -y nginx php php-fpm php-mysqlnd php-mbstring php-xml php-bcmath php-curl unzip git mariadb-server

2. 检查 PHP 版本

Laravel 对 PHP 版本有要求(如 Laravel 10 需要 PHP 8.1+)

php -v

二、部署代码

方式一:Git 拉取(推荐)

cd /var/www
git clone https://github.com/your/laravel-project.git
cd laravel-project

方式二:上传压缩包

unzip laravel.zip -d /var/www/laravel-project

三、安装依赖与配置

1. 安装 Composer

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

2. 安装 PHP 依赖

composer install --optimize-autoloader --no-dev

3. 配置环境变量

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

编辑 .env

APP_ENV=production
APP_DEBUG=false
APP_URL=http://your-domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=password

四、权限设置(非常重要)

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

五、数据库迁移

php artisan migrate --force
# 如有种子数据
php artisan db:seed --force

六、Nginx 配置

示例配置

server {
    listen 80;
    server_name your-domain.com;
    root /var/www/laravel-project/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:/run/php/php-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
sudo nginx -t
sudo systemctl restart nginx

七、优化(生产环境必须)

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

八、队列 / 定时任务(可选)

队列

php artisan queue:work

生产环境建议用 supervisor 守护:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel-project/artisan queue:work
autostart=true
autorestart=true
user=www-data
numprocs=2

定时任务

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

九、HTTPS(推荐)

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

十、常见问题

✅ 500 错误

  • 看 storage/logs/laravel.log
  • 权限不对
  • .env 没配置

✅ 404

  • Nginx root 指向 public
  • try_files 没写

✅ 白屏

  • APP_DEBUG=true 看错误
  • php artisan config:clear

如果你告诉我:

  • Linux 发行版(Ubuntu / CentOS)
  • Laravel 版本
  • 是否用 Docker / 面板(宝塔)

我可以给你更精确的部署方案。

0 踩