首页主机资讯Ubuntu如何部署Laravel应用

Ubuntu如何部署Laravel应用

时间2025-12-22 22:41:05发布访客分类主机资讯浏览1319
导读:在 Ubuntu 上部署 Laravel 应用 一 准备与版本要求 系统建议:Ubuntu 22.04/24.04,具备 sudo 权限与防火墙放行(HTTP/HTTPS)。 PHP 版本:Laravel 10 需要 PHP ≥ 8.1;...

在 Ubuntu 上部署 Laravel 应用

一 准备与版本要求

  • 系统建议:Ubuntu 22.04/24.04,具备 sudo 权限与防火墙放行(HTTP/HTTPS)。
  • PHP 版本:Laravel 10 需要 PHP ≥ 8.1;Laravel 11 需要 PHP ≥ 8.2
  • 基础组件:Nginx/ApachePHP-FPMMySQL/PostgreSQLComposer、可选 Node.js + NPM(用于前端资源编译)。
  • 基本检查:
    • 查看 PHP 版本:php -v
    • 查看已安装扩展:php -m(确保包含 mbstring、openssl、pdo_mysql、tokenizer、xml、ctype、json 等)
      上述版本与扩展为 Laravel 官方运行要求与常见实践,部署前请先核对。

二 安装与配置 LEMP 或 LAMP

  • 更新系统并安装基础软件:
    • sudo apt update & & sudo apt upgrade -y
    • 安装 Nginx:sudo apt install nginx -y & & sudo systemctl enable --now nginx
    • 安装 PHP 与常用扩展(以 PHP 8.1 为例):
      sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-curl php8.1-zip php8.1-gd php8.1-bcmath -y
    • 安装 MySQL:sudo apt install mysql-server -y & & sudo mysql_secure_installation
  • 创建数据库与专用用户(示例):
    • sudo mysql -u root -p
    • CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'StrongPass!';
    • GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
  • 安装 Composer(全局):
    • curl -sS https://getcomposer.org/installer | php
    • sudo mv composer.phar /usr/local/bin/composer & & composer -V
      以上步骤完成后,LEMP 环境即具备运行 Laravel 的条件。

三 部署 Laravel 应用

  • 方式 A(全新项目):
    • cd /var/www
    • composer create-project --prefer-dist laravel/laravel laravel_app
  • 方式 B(已有项目):将代码上传至 /var/www/laravel_app(Git 或 SCP),然后进入目录安装依赖:composer install --optimize-autoloader --no-dev
  • 配置环境:
    • cp .env.example .env 并编辑:
      • APP_ENV=productionAPP_DEBUG=false
      • APP_URL=https://your_domain
      • 数据库:DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=laravel_dbDB_USERNAME=laravel_userDB_PASSWORD=StrongPass!
    • 生成应用密钥:php artisan key:generate
  • 数据库迁移与可选填充:php artisan migrate --force,如需演示数据:php artisan db:seed --force
  • 权限设置(安全且常用做法):
    • sudo chown -R www-data:www-data /var/www/laravel_app
    • find /var/www/laravel_app -type d -exec chmod 755 { } \;
    • find /var/www/laravel_app -type f -exec chmod 644 { } \;
    • chmod -R ug+rwx storage bootstrap/cache
      以上覆盖了从拉取代码、安装依赖、配置环境到数据库迁移与权限设置的关键环节。

四 配置 Nginx 与启用 HTTPS

  • 创建站点配置(示例:/etc/nginx/sites-available/laravel_app):
    • 注意将 fastcgi_pass 中的 PHP 版本与系统一致(如 php8.1-fpm.sock)。
    • root 指向项目的 public 目录,使用 try_files 将所有请求转发给 index.php
  • 启用站点并测试:
    • sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/
    • sudo nginx -t & & sudo systemctl reload nginx
  • 申请并配置 Let’s Encrypt 免费证书(Certbot):
    • 安装:sudo apt install certbot python3-certbot-nginx -y
    • 获取证书并自动配置 HTTPS(将域名替换为你的域名):
      sudo certbot --nginx -d your_domain -d www.your_domain
    • 证书自动续期测试:sudo certbot renew --dry-run
      Nginx 配置要点是“根目录指向 public、路由统一转发给 index.php”,HTTPS 通过 Certbot 一键完成。

五 生产优化与常见问题

  • 性能与缓存(生产推荐):
    • 配置缓存:php artisan config:cachephp artisan route:cachephp artisan view:cache
    • 队列处理(如邮件、异步任务):php artisan queue:work --queue=default --tries=3
  • 安全与排错:
    • 关闭调试:APP_DEBUG=false;确保 .env 不在 Web 可访问路径;隐藏敏感文件:在 Nginx 中加入 location ~ /\.(?!well-known).* { deny all; }
    • 目录权限:仅对 storagebootstrap/cache 放开组写,其他目录与文件遵循 755/644 原则,避免 777 带来的安全风险。
    • 常见问题速查:
      • “路由 404/白屏”:确认 Nginx root 指向 publictry_files $uri $uri/ /index.php?$query_string; 正确;
      • “No input file specified”:检查 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 与 PHP-FPM 监听路径;
      • “Permission denied”:核对目录所有者为 www-data,并按上文权限策略修正;
      • “数据库连接失败”:核对 .env 中 DB 配置与数据库用户权限;
      • “Composer 安装慢”:可临时使用国内镜像加速(如 composer config -g repo.packagist composer https://packagist.phpcomposer.com)。

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


若转载请注明出处: Ubuntu如何部署Laravel应用
本文地址: https://pptw.com/jishu/777868.html
Debian Overlay如何进行镜像同步 Ubuntu上Laravel路由如何设置

游客 回复需填写必要信息