部署Laravel项目需先配置服务器环境,安装PHP、Composer、Web服务器及数据库;1. 检查PHP扩展是否齐全;2. 通过Git上传代码并执行composer install;3. 配置.env文件,生成密钥并设置storage目录权限;4. 配置Nginx指向public目录,重启服务;5. 执行php artisan命令缓存配置、路由、视图;6. 添加Crontab定时任务;7. 启用HTTPS,禁止访问.env,定期备份与监控日志,确保系统安全稳定运行。

将Laravel项目部署到线上服务器需要系统性地完成环境配置、代码上传、依赖安装和安全设置等步骤。以下是完整且实用的部署流程,适用于主流Linux服务器(如Ubuntu/CentOS)。
1. 准备服务器环境
确保服务器已安装必要的运行环境:
- PHP版本(建议8.0+),并启用必要扩展:OpenSSL、PDO、MBString、Tokenizer、XML、Ctype、JSON
- Composer(PHP依赖管理工具)
- Web服务器:Nginx 或 Apache
- 数据库:MySQL / MariaDB 或 PostgreSQL
- 可选但推荐:Redis(用于缓存或队列)、Supervisor(守护队列进程)
可通过以下命令快速检查PHP扩展:
php -m | grep -E 'openssl|pdo|mbstring|tokenizer|xml|ctype|json'2. 上传并配置Laravel项目
将本地项目代码推送到服务器,推荐使用Git:
- 在服务器上克隆项目:git clone your-repo-url.git /var/www/your-project
- 切换到项目目录:cd /var/www/your-project
- 检出所需分支(如main或production)
安装PHP依赖:
composer install --optimize-autoloader --no-dev该命令会安装生产环境所需依赖,并优化加载性能。
3. 配置环境与权限
复制并配置 .env 文件:
- cp .env.example .env
- 编辑 .env,设置:APP_ENV=production、APP_DEBUG=false、数据库连接、缓存驱动、队列连接等
- 生成应用密钥:php artisan key:generate
设置目录权限:
- 确保 storage 和 bootstrap/cache 目录可写
- 执行命令:
chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
4. 配置Web服务器(以Nginx为例)
创建Nginx站点配置文件(如 /etc/nginx/sites-available/your-site):
server {listen 80;
server_name your-domain.com;
root /var/www/your-project/public;
index index.php;
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;
}
}
启用站点并重启Nginx:
ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/nginx -t && systemctl reload nginx
5. 执行部署收尾操作
运行必要Artisan命令:
- php artisan config:cache —— 缓存配置
- php artisan route:cache —— 缓存路由(适用于API或大型项目)
- php artisan view:cache —— 缓存视图
- php artisan event:cache(如使用事件类)
设置定时任务(Crontab):
添加Laravel调度器:
* * * * * cd /var/www/your-project && php artisan schedule:run >> /dev/null 2>&16. 安全与监控建议
- 启用HTTPS(使用Let's Encrypt免费证书)
- 禁用 .env 文件外部访问(Nginx/Apache已默认保护)
- 定期备份数据库和代码
- 查看日志排查问题:tail -f storage/logs/laravel.log
基本上就这些。只要环境正确、权限设置妥当、配置文件无误,Laravel上线并不复杂,但每一步都容易因小疏忽导致白屏或500错误,务必逐项检查。










