首页主机资讯Laravel在Ubuntu上如何部署

Laravel在Ubuntu上如何部署

时间2025-12-09 02:22:03发布访客分类主机资讯浏览1454
导读:在 Ubuntu 上部署 Laravel 的标准流程 按 LEMP(Linux + Nginx + MySQL + PHP)部署,覆盖环境准备、代码发布、数据库与权限、Nginx 配置、优化与安全要点,适用于 Ubuntu 18.04/20...

在 Ubuntu 上部署 Laravel 的标准流程

LEMP(Linux + Nginx + MySQL + PHP)部署,覆盖环境准备、代码发布、数据库与权限、Nginx 配置、优化与安全要点,适用于 Ubuntu 18.04/20.04/22.04/24.04


一 准备环境

  • 更新系统并安装基础组件
    • sudo apt update & & sudo apt upgrade -y
    • sudo apt install -y nginx mysql-server curl git unzip
  • 安装 PHP 与常用扩展(以 PHP 8.1 为例,可按需调整版本)
    • sudo apt install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-json php8.1-common php8.1-zip php8.1-gd php8.1-mbstring php8.1-xml php8.1-bcmath
  • 启动并开机自启服务
    • sudo systemctl start nginx & & sudo systemctl enable nginx
    • sudo systemctl start php8.1-fpm & & sudo systemctl enable php8.1-fpm
  • 安全加固 MySQL(设置 root 密码、移除匿名用户等)
    • sudo mysql_secure_installation
  • 安装 Composer(全局)
    • curl -sS https://getcomposer.org/installer -o composer-setup.php
    • php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    • rm composer-setup.php
    • composer --version 说明:上述步骤涵盖在 Ubuntu 上安装 Nginx、PHP-FPM、MySQL、Composer 的通用做法,版本号可按系统仓库实际可用版本调整。

二 部署 Laravel 代码

  • 创建项目目录并拉取代码
    • sudo mkdir -p /var/www/yourdomain.com
    • sudo chown -R $USER:$USER /var/www/yourdomain.com
    • cd /var/www/yourdomain.com
    • composer create-project --prefer-dist laravel/laravel .
  • 生成应用密钥
    • php artisan key:generate
  • 配置 .env(数据库等)
    • cp .env.example .env
    • 编辑 .env,设置:
      • APP_ENV=production
      • APP_DEBUG=false
      • APP_URL=https://yourdomain.com
      • DB_CONNECTION=mysql
      • DB_HOST=127.0.0.1
      • DB_PORT=3306
      • DB_DATABASE=laravel_app
      • DB_USERNAME=laravel_user
      • DB_PASSWORD=StrongPassword!
  • 创建数据库与专用用户(进入 MySQL)
    • CREATE DATABASE laravel_app DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER ‘laravel_user’@‘localhost’ IDENTIFIED BY ‘StrongPassword!’;
    • GRANT ALL ON laravel_app.* TO ‘laravel_user’@‘localhost’;
    • FLUSH PRIVILEGES;
    • EXIT;
  • 运行迁移与(可选)填充
    • php artisan migrate --force
    • php artisan db:seed --force(如有需要) 说明:使用 Composer 创建项目、生成 APP_KEY、配置 .env 与数据库迁移是 Laravel 部署的关键步骤。

三 配置 Nginx 站点

  • 新建服务器块配置
    • sudo nano /etc/nginx/sites-available/yourdomain.com
  • 示例配置(将 yourdomain.com/var/www/yourdomain.com 替换为实际值;PHP 版本与 sock 路径按实际调整)
    • server { listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/yourdomain.com/public; index index.php index.html;

      location / { try_files $uri $uri/ /index.php?$query_string; }

      location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/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/yourdomain.com /etc/nginx/sites-enabled/
    • sudo nginx -t & & sudo systemctl reload nginx 说明:Nginx 以 /public 为根目录,使用 try_files 将所有请求导向 index.php,并通过 PHP-FPM 处理 PHP。

四 文件权限与目录所有权

  • 推荐做法(最小权限)
    • sudo chown -R www-data:www-data /var/www/yourdomain.com
    • find /var/www/yourdomain.com -type f -exec chmod 644 { } ;
    • find /var/www/yourdomain.com -type d -exec chmod 755 { } ;
    • sudo chgrp -R www-data /var/www/yourdomain.com/storage /var/www/yourdomain.com/bootstrap/cache
    • sudo chmod -R ug+rwx /var/www/yourdomain.com/storage /var/www/yourdomain.com/bootstrap/cache
  • 兼容性写法(如遇到权限问题可临时使用,随后请改回更安全的 775/644)
    • sudo chmod -R 775 /var/www/yourdomain.com/storage
    • sudo chmod -R 775 /var/www/yourdomain.com/bootstrap/cache 说明:确保 storagebootstrap/cachewww-data 可写是 Laravel 正常运行的前提。

五 生产优化与安全要点

  • 优化与缓存
    • php artisan config:cache
    • php artisan route:cache
    • php artisan view:cache
  • 队列与计划任务(如用到)
    • 队列常驻:php artisan queue:work --queue=default --tries=3
    • 计划任务:在服务器 crontab 添加
                • cd /var/www/yourdomain.com & & php artisan schedule:run > > /dev/null 2> & 1
  • 安全与运维
    • 关闭调试:确保 APP_ENV=production、APP_DEBUG=false
    • 仅开放 80/443,使用 UFW 或云安全组限制访问
    • 配置 HTTPS/TLS(如 Certbot 获取免费证书)
    • .env 加入版本控制忽略,敏感信息不入库
    • 定期更新系统与依赖:sudo apt update & & sudo apt upgrade -y & & composer self-update 说明:生产环境应关闭调试、开启配置/路由/视图缓存,并使用队列与计划任务处理异步与定时任务。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Laravel在Ubuntu上如何部署
本文地址: https://pptw.com/jishu/766652.html
Linux中OpenSSL命令大全 Debian Overlay如何实现备份与恢复

游客 回复需填写必要信息