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 update
sudo 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-fpm

2. 部署Laravel项目代码

将Laravel项目上传到服务器的网站目录,通常为 /var/www/html 或自定义路径如 /var/www/laravel-app

通过Git克隆或直接上传代码包:

cd /var/www
sudo git clone https://your-repo/laravel-app.git laravel-app

进入项目目录,安装依赖:

cd /var/www/laravel-app
sudo composer install --optimize-autoloader --no-dev

生成应用密钥:

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

配置好数据库连接信息(修改 .env 文件中的 DB_HOSTDB_DATABASE 等)。

运行迁移(可选):

php artisan migrate --force

设置存储链接:

php artisan storage:link

3. 配置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 nginx

4. 设置文件权限和安全

确保Web服务器(www-data)有正确权限访问Laravel目录:

sudo chown -R www-data:www-data /var/www/laravel-app
sudo 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


相关推荐: 网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何为不同团队 ID 动态生成多个“认领值班”按钮  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Android利用动画实现背景逐渐变暗  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  怎样使用JSON进行数据交换_它有什么限制  网站优化排名时,需要考虑哪些问题呢?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  如何用VPS主机快速搭建个人网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  敲碗10年!Mac系列传将迎来「触控与联网」双革新  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  EditPlus 正则表达式 实战(3)  微信小程序 配置文件详细介绍  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何在云服务器上快速搭建个人网站?  如何快速登录WAP自助建站平台?  Laravel如何创建自定义Facades?(详细步骤)  详解阿里云nginx服务器多站点的配置  Laravel如何使用Blade模板引擎?(完整语法和示例)  如何快速生成橙子建站落地页链接?  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何利用DOS批处理实现定时关机操作详解  什么是javascript作用域_全局和局部作用域有什么区别?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  青岛网站建设如何选择本地服务器?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何快速启动建站代理加盟业务?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel如何与Pusher实现实时通信?(WebSocket示例)  EditPlus中的正则表达式 实战(4)  Laravel如何实现多对多模型关联?(Eloquent教程)