You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何快速将基于Laravel Sail构建的Laravel应用部署到Ubuntu云服务器?

部署基于Laravel Sail的Laravel应用到Ubuntu云服务器

1. 服务器环境准备

  • 更新系统包:
    sudo apt update && sudo apt upgrade -y
    
  • 安装Docker与Docker Compose:
    sudo apt install docker.io docker-compose -y
    
  • 将当前用户加入Docker组(避免每次执行Docker命令都加sudo):
    sudo usermod -aG docker $USER
    
    执行后退出当前SSH会话,重新登录使权限生效。

2. 上传项目代码

  • 通过Git克隆你的项目仓库(若为私有仓库,需提前在服务器配置SSH密钥):
    git clone git@your-repo-url.git
    
  • 进入项目目录:
    cd your-project-directory
    
  • 复制并编辑环境变量文件:
    cp .env.example .env
    
    编辑.env文件,设置生产环境核心参数:
    • APP_ENV=production
    • APP_DEBUG=false
    • 按需配置数据库连接(使用Sail内置数据库则保持默认,用外部数据库需修改对应参数)

3. Laravel项目配置

  • 安装Composer依赖(通过Sail容器执行,无需服务器本地安装PHP):
    ./vendor/bin/sail composer install --no-dev
    

    若项目未包含Sail,先执行composer require laravel/sail --dev,再运行上述命令

  • 生成应用密钥:
    ./vendor/bin/sail artisan key:generate --force
    
  • 执行数据库迁移(若有需要):
    ./vendor/bin/sail artisan migrate --force
    
  • 优化应用性能:
    ./vendor/bin/sail artisan optimize
    

4. 启动Sail服务

  • 后台启动所有容器:
    ./vendor/bin/sail up -d
    
  • 检查容器运行状态:
    ./vendor/bin/sail ps
    
    确保laravel.test、mysql(或其他数据库容器)等状态为Up

5. 配置外部访问(可选但推荐)

方式1:直接开放容器端口

  • 开放服务器防火墙端口(对应.env中的APP_PORT,默认8000):
    sudo ufw allow 8000/tcp
    
    后续配置HTTPS时,需开放443端口:sudo ufw allow 443/tcp

方式2:Nginx反向代理(推荐用于域名访问)

  • 安装Nginx:
    sudo apt install nginx -y
    
  • 创建域名配置文件:
    sudo nano /etc/nginx/sites-available/your-domain.conf
    
    写入以下配置(替换your-domain.com和8000为实际域名与容器端口):
    server {
        listen 80;
        server_name your-domain.com;
    
        location / {
            proxy_pass http://localhost:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  • 启用配置并重启Nginx:
    sudo ln -s /etc/nginx/sites-available/your-domain.conf /etc/nginx/sites-enabled/
    sudo systemctl restart nginx
    

6. 配置HTTPS(推荐)

  • 安装Certbot与Nginx插件:
    sudo apt install certbot python3-certbot-nginx -y
    
  • 自动获取并配置SSL证书:
    sudo certbot --nginx -d your-domain.com
    
    按照终端提示完成配置,Certbot会自动修改Nginx配置并启用HTTPS。

日常维护

  • 更新项目代码:
    git pull origin main
    ./vendor/bin/sail composer install --no-dev
    ./vendor/bin/sail artisan migrate --force
    ./vendor/bin/sail artisan optimize
    ./vendor/bin/sail restart
    
  • 查看容器日志:
    ./vendor/bin/sail logs laravel.test
    

内容的提问来源于stack exchange,提问作者Tyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:27:39