Laravel项目怎么部署到Linux_Laravel Nginx配置详解
发布时间 - 2025-12-05 00:00:00 点击率:次部署Laravel项目到Linux服务器需先配置环境,安装PHP、Nginx、数据库等组件,再部署代码并设置依赖与密钥。1. 安装必要软件如PHP 8.1、Composer、Nginx和MySQL;2. 将项目克隆至/var/www/laravel-app并运行composer install;3. 配置Nginx虚拟主机指向public目录,设置location规则支持Laravel路由;4. 调整文件权限为www-data用户,避免使用777;5. 可选启用HTTPS通过Certbot获取SSL证书。完成后重启Nginx即可访问应用,出错时可通过error.log排查问题。
将Laravel项目部署到Linux服务器并配置Nginx,是上线PHP应用的关键步骤。整个过程包括环境准备、代码部署、Web服务器配置和权限设置等。下面以常见的Ubuntu系统为例,详细介绍如何完成Laravel项目的部署与Nginx配置。
1. 准备Linux服务器环境
确保你的Linux服务器(如Ubuntu 20.04/22.04)已安装以下基础组件:
- PHP 8.0+:Laravel要求的最低版本,建议使用PHP 8.1或更高
- Composer:用于安装PHP依赖
- Nginx:作为Web服务器
- MySQL/MariaDB 或 PostgreSQL:数据库服务
- Git(可选):用于拉取代码
安装命令示例(Ubuntu):
sudo apt updatesudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-mbstring php-xml php-zip git composer
检查PHP-FPM是否运行:
sudo systemctl status php8.1-fpm2. 部署Laravel项目代码
将Laravel项目上传到服务器的网站目录,通常为 /var/www/html 或自定义路径如 /var/www/laravel-app。
通过Git克隆或直接上传代码包:
cd /var/wwwsudo git clone https://your-repo/laravel-app.git laravel-app
进入项目目录,安装依赖:
cd /var/www/laravel-appsudo composer install --optimize-autoloader --no-dev
生成应用密钥:
cp .env.example .envphp artisan key:generate
配置好数据库连接信息(修改 .env 文件中的 DB_HOST、DB_DATABASE 等)。
运行迁移(可选):
php artisan migrate --force设置存储链接:
php artisan storage:link3. 配置Nginx虚拟主机
Laravel推荐将Web根目录指向 public 目录。创建Nginx配置文件:
sudo nano /etc/nginx/sites-available/laravel-app写入以下配置内容(根据实际情况修改域名和路径):
server {listen 80;
server_name your-domain.com;
root /var/www/laravel-app/public;
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/laravel-app /etc/nginx/sites-enabled/sudo nginx -t # 测试配置是否正确
sudo systemctl
reload nginx4. 设置文件权限和安全
确保Web服务器(www-data)有正确权限访问Laravel目录:
sudo chown -R www-data:www-data /var/www/laravel-appsudo chmod -R 755 /var/www/laravel-app/storage
sudo chmod -R 755 /var/www/laravel-app/bootstrap/cache
不要给整个项目777权限,这会带来安全风险。
如果你使用HTTPS,可通过Let's Encrypt免费获取SSL证书:
sudo certbot --nginx -d your-domain.com证书会自动配置到Nginx,并开启HTTPS。
基本上就这些。部署完成后,访问你的域名,应该能看到Laravel欢迎页或应用首页。如果遇到问题,查看Nginx错误日志定位原因:
sudo tail -f /var/log/nginx/error.log
# mysql
# php
# linux
# laravel
# html
# bootstrap
# git
# composer
# php8
# nginx
# include
# xml
# cURL
# Error
# public
# var
# location
# postgresql
# 数据库
# mariadb
# https
# ssl
# ubuntu
# unix
# 可选
# 可通过
# 虚拟主机
# 如果你
# 完成后
# 自定义
# 详细介绍
# 实际情况
# 为例
# 要给
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
郑州企业网站制作公司,郑州招聘网站有哪些?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Android okhttputils现在进度显示实例代码
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
如何在局域网内绑定自建网站域名?
Laravel如何为API生成Swagger或OpenAPI文档
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Bootstrap整体框架之CSS12栅格系统
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
html如何与html链接_实现多个HTML页面互相链接【互相】
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
香港服务器部署网站为何提示未备案?
iOS发送验证码倒计时应用
jquery插件bootstrapValidator表单验证详解
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Python文件操作最佳实践_稳定性说明【指导】
Laravel如何升级到最新版本?(升级指南和步骤)
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
网站制作大概多少钱一个,做一个平台网站大概多少钱?
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
Python文件异常处理策略_健壮性说明【指导】
javascript日期怎么处理_如何格式化输出
bootstrap日历插件datetimepicker使用方法
什么是javascript作用域_全局和局部作用域有什么区别?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何优化应用性能?(缓存和优化命令)
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
node.js报错:Cannot find module 'ejs'的解决办法
制作旅游网站html,怎样注册旅游网站?
大型企业网站制作流程,做网站需要注册公司吗?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel如何保护应用免受CSRF攻击?(原理和示例)

