部署Laravel项目需先配置服务器环境,安装Nginx、MySQL、PHP及扩展,再克隆代码并安装依赖;接着配置.env文件为生产环境,设置应用密钥;然后配置Nginx站点指向public目录,设置权限与存储链接;执行数据库迁移与种子数据;配置Cron任务与队列监听;启用HTTPS加密;最后清除缓存以优化性能,确保安全与稳定运行。

Laravel 项目部署到线上服务器并不是简单地上传代码,而是一个涉及环境配置、安全设置和性能优化的完整流程。以下是将 Laravel 项目从本地部署到生产服务器的标准步骤,适用于大多数 Linux 服务器(如 Ubuntu + Nginx + MySQL + PHP 环境)。
1. 准备服务器环境
确保你的服务器具备运行 Laravel 所需的基础环境:
- 操作系统:推荐使用 Ubuntu 20.04/22.04 或 CentOS 7/8
- Web 服务器:Nginx 或 Apache(推荐 Nginx)
- PHP 版本:Laravel 要求 PHP >= 8.1,建议安装 PHP 8.1 或更高版本
- 数据库:MySQL 或 MariaDB
- 扩展支持:确保安装了必要的 PHP 扩展,如 openssl、pdo、mbstring、tokenizer、xml、curl、gd、zip 等
- 工具:Composer、Git
在 Ubuntu 上可使用以下命令快速安装:
sudo apt update sudo apt install nginx mysql-server php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip git composer
登录后复制
2. 上传或克隆 Laravel 项目代码
将你的 Laravel 项目上传到服务器,通常放在 /var/www/your-project 目录下。
- 通过 Git 克隆(推荐):
cd /var/www git clone https://github.com/yourname/your-laravel-project.git your-project
登录后复制
- 或使用 FTP/SFTP 上传压缩包后解压
进入项目目录并安装依赖:
cd /var/www/your-project composer install --optimize-autoloader --no-dev
登录后复制
--no-dev 参数会跳过开发依赖,提升生产环境安全性与性能。
3. 配置环境文件 .env
复制示例环境文件并根据服务器信息修改:
cp .env.example .env
登录后复制
编辑 .env 文件:
APP_ENV=production APP_DEBUG=false APP_URL=https://yourdomain.com <p>DB_HOST=localhost DB_DATABASE=your_db_name DB_USERNAME=your_db_user DB_PASSWORD=your_db_password
登录后复制
生成应用密钥:
php artisan key:generate
登录后复制
4. 配置 Web 服务器(以 Nginx 为例)
创建 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/your-project
登录后复制
写入以下内容(注意路径和域名):
server {
listen 80;
server_name yourdomain.com;
root /var/www/your-project/public;
<pre class="brush:php;toolbar:false;">index index.php index.html index.htm;
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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}登录后复制
}
启用站点:
sudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
登录后复制
5. 设置权限和存储链接
Laravel 需要对某些目录有写权限:
标签: laravel 服务器部署 mysql php linux word redis centos html bootstr
还木有评论哦,快来抢沙发吧~