部署Laravel项目需先配置服务器环境,安装PHP、Nginx、MySQL、Composer等;接着克隆或上传项目代码并安装依赖;配置.env文件,关闭调试模式,生成密钥并设置目录权限;创建Nginx站点指向public目录;运行数据库迁移与缓存优化命令;可选配置定时任务;最后启用HTTPS、备份数据、监控日志确保安全。关键步骤依次为环境准备、代码部署、权限设置、Web服务器配置及性能优化。

将Laravel项目部署到生产服务器需要确保代码安全、性能优化以及环境配置正确。以下是完整的部署流程,适用于大多数Linux服务器环境(如Ubuntu + Nginx + MySQL + PHP-FPM)。
1. 准备服务器环境
在部署前,确保生产服务器已安装必要的软件:
- PHP:建议7.4或以上版本,安装常用扩展(如 OpenSSL、PDO、Mbstring、Tokenizer、XML、Ctype、JSON)
- Web服务器:Nginx 或 Apache,推荐Nginx搭配PHP-FPM
- 数据库:MySQL/MariaDB 或 PostgreSQL
- Composer:用于安装PHP依赖
- Git(可选):用于拉取代码
提示:可通过sudo apt install php php-fpm php-mysql php-curl php-mbstring php-zip composer nginx mysql-server等命令安装。
2. 上传或克隆项目代码
将本地Laravel项目推送到远程仓库(如GitHub、GitLab),然后在服务器上克隆:
cd /var/www git clone your-repo-url myproject
或者使用FTP/SFTP上传代码压缩包并解压到/var/www/myproject目录。
进入项目目录并安装依赖:
cd /var/www/myproject composer install --optimize-autoloader --no-dev--no-dev 确保不安装开发依赖,--optimize-autoloader 提升性能。
3. 配置环境与权限
复制并配置.env文件:
cp .env.example .env
编辑.env:
- 设置
APP_ENV=production - 设置
APP_DEBUG=false(关键!避免泄露敏感信息) - 配置数据库连接(DB_DATABASE、DB_USERNAME、DB_PASSWORD等)
- 设置
APP_URL=http://yourdomain.com
生成应用密钥:
php artisan key:generate
设置存储和缓存目录权限:
chmod -R 755 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache确保Web服务器用户(如www-data)有读写权限。
4. 配置Web服务器(以Nginx为例)
创建Nginx站点配置文件:
sudo nano /etc/nginx/sites-available/myproject
内容如下:
server {
listen 80;
server_name yourdomain.com;
root /var/www/myproject/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
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/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
5. 运行迁移与缓存优化
执行数据库迁移:
php artisan migrate --force
--force 在生产环境必须添加,否则会提示确认。优化Laravel性能:
php artisan config:cache
php artisan route:cache
php artisan view:cache
这些命令提升加载速度,但修改配置、路由或视图后需重新执行。6. 配置定时任务(可选)
如果使用Artisan调度器,添加crontab任务:
crontab -e
添加一行:
* * * * * cd /var/www/myproject && php artisan schedule:run >> /dev/null 2>&1
7. 安全与监控建议
- 使用HTTPS(通过Let's Encrypt免费证书)
- 定期备份数据库和代码
- 设置日志轮转(logrotate)防止日志过大
- 监控
storage/logs/laravel.log错误信息 - 禁用不必要的PHP函数(如exec、shell_exec)
基本上就这些。部署完成后访问域名即可看到项目运行。关键是关闭调试模式、设置正确权限、配置好Web服务器指向public目录。整个过程不复杂但容易忽略细节。










