首页主机资讯Laravel项目Ubuntu部署步骤

Laravel项目Ubuntu部署步骤

时间2025-11-25 16:47:04发布访客分类主机资讯浏览993
导读:Ubuntu 部署 Laravel 项目步骤 一 准备与安装基础环境 更新系统并安装基础软件: sudo apt update && sudo apt upgrade -y sudo apt install nginx...

Ubuntu 部署 Laravel 项目步骤

一 准备与安装基础环境

  • 更新系统并安装基础软件:
    • sudo apt update & & sudo apt upgrade -y
    • sudo apt install nginx mysql-server curl git unzip -y
  • 安装 PHP 与常用扩展(以 PHP 8.1 为例,可按需选择 8.2/8.3):
    • sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath -y
  • 启动并开机自启服务:
    • sudo systemctl enable --now nginx
    • sudo systemctl enable --now php8.1-fpm
  • 安装 Composer(全局):
    • curl -sS https://getcomposer.org/installer | php
    • sudo mv composer.phar /usr/local/bin/composer
    • composer --version
  • 建议:开放防火墙端口 80/443(UFW:sudo ufw allow ‘Nginx Full’)。

二 创建或拉取项目并安装依赖

  • 方式 A 全新安装:
    • cd /var/www
    • sudo composer create-project --prefer-dist laravel/laravel yourproject
  • 方式 B 部署现有项目:
    • cd /var/www
    • sudo git clone https://github.com/your/repo.git yourproject
    • cd yourproject & & sudo composer install --optimize-autoloader --no-dev
  • 设置目录属主(Web 服务运行用户通常为 www-data):
    • sudo chown -R www-data:www-data /var/www/yourproject
  • 生成应用密钥(确保 .env 已配置 APP_KEY 或执行后复制输出到 .env):
    • php artisan key:generate。

三 配置数据库

  • 安全初始化与登录:
    • sudo mysql_secure_installation
    • sudo mysql -u root -p
  • 创建数据库与专用用户(生产环境不建议使用 root):
    • CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER ‘laravel_user’@‘localhost’ IDENTIFIED BY ‘StrongPassword!’;
    • GRANT ALL ON laravel_db.* TO ‘laravel_user’@‘localhost’;
    • FLUSH PRIVILEGES;
    • EXIT;
  • 配置 .env(示例):
    • DB_CONNECTION=mysql
    • DB_HOST=127.0.0.1
    • DB_PORT=3306
    • DB_DATABASE=laravel_db
    • DB_USERNAME=laravel_user
    • DB_PASSWORD=StrongPassword!
  • 运行迁移(可按需加 --force):
    • php artisan migrate --force。

四 配置 Nginx 站点

  • 新建站点配置:
    • sudo nano /etc/nginx/sites-available/yourdomain.com
  • 示例配置(将 yourdomain.com/var/www/yourproject/public 替换为实际值,PHP 版本与 sock 路径保持一致):
    • server { listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/yourproject/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 rm -f /etc/nginx/sites-enabled/default # 如存在默认站点可移除
    • sudo nginx -t & & sudo systemctl reload nginx。

五 文件权限与目录可写

  • 推荐最小权限(避免使用 777):
    • sudo chown -R www-data:www-data /var/www/yourproject
    • sudo find /var/www/yourproject -type f -exec chmod 644 { } ;
    • sudo find /var/www/yourproject -type d -exec chmod 755 { } ;
    • sudo chmod -R 775 /var/www/yourproject/storage /var/www/yourproject/bootstrap/cache
  • 如部署中遇到写入错误,可临时放宽 storage 与 bootstrap/cache 权限为 777,排障后再收紧。

六 生产环境优化与可选组件

  • 优化 Laravel(生产):
    • php artisan config:cache
    • php artisan route:cache
    • php artisan view:cache
    • composer dump-autoload --optimize
  • 队列与调度(如用到):
    • 队列常驻:php artisan queue:work --daemon --tries=3
    • 计划任务:将 * * * * * cd /var/www/yourproject & & php artisan schedule:run > > /dev/null 2> & 1 加入 crontab
  • 可选缓存/队列驱动(以 Redis 为例,需提前安装并启动 Redis 服务):
    • .env:CACHE_DRIVER=redis;QUEUE_CONNECTION=redis;REDIS_HOST=127.0.0.1;REDIS_PORT=6379
    • 验证:php artisan tinker → Redis::ping() 应返回 PONG
  • 可选:启用 HTTPS(Certbot)
    • sudo apt install certbot python3-certbot-nginx -y
    • sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
  • 访问验证:打开浏览器访问 http://yourdomain.com,确认首页与接口正常。

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


若转载请注明出处: Laravel项目Ubuntu部署步骤
本文地址: https://pptw.com/jishu/755701.html
Laravel能在Ubuntu上运行吗 如何在Debian Overlay中进行安全加固

游客 回复需填写必要信息