Laravel项目基础知识整理

部署准备

必须上传的内容

这些是项目的核心逻辑,没有它们程序无法运行:

  • app/, bootstrap/, config/, database/, lang/, routes/: 所有的 PHP 核心逻辑和配置。
  • public/:
    • index.php (入口文件)。
    • 编译后的资源: 即 npm run build 生成的 public/build (Vite) 或 public/dist 文件夹。
    • .htaccessnginx.conf 等服务器配置文件。
  • resources/: 虽然线上主要运行编译后的文件,但视图文件 (.blade.php) 必须上传。
  • storage/: 必须上传目录结构,但不要上传里面的日志或缓存文件(确保 storage 及其子目录在服务器上有写权限)。
  • composer.json & package.json: 用于在服务器上识别版本信息。
  • artisan: 命令行工具文件。

禁止上传

这些内容上传会导致你之前遇到的“路径报错”或严重的安全泄露:

  • node_modules/: 体积巨大且线上环境不需要它(线上只用编译后的 JS/CSS)。
  • vendor/: 这里的路径映射往往包含本地物理路径,直接上传会导致 Failed to open stream 报错。必须在线上通过 composer install 生成。
  • .env: 极度重要! 线上必须手动创建或通过 CI/CD 生成生产环境专用的 .env,千万不要把本地带数据库密码的文件传上去。
  • .git/: 除非你是通过 git clone 部署,否则如果是手动上传,不要包含这个隐藏文件夹。
  • tests/: 生产环境不需要运行测试用例。

部署步骤

A. 本地准备

  1. 前端打包: 运行 npm run build,确保 public/ 下生成了最新的静态资源。
  2. 清理缓存: 运行 php artisan optimize:clear 确保没有旧的缓存。

B. 上传与安装

  1. 将上述“必须上传的内容”通过 FTP/Git 传到服务器。

  2. 安装后端依赖: 在服务器根目录运行:

    --no-dev 会排除你报错中提到的 Flare 等开发调试工具,减小体积并提高安全性。

  3. 创建环境变量: 复制一份 .env.example.env,并修改为线上的数据库连接。

  4. 生成 Key & 迁移:

C. 性能优化 (仅限生产环境)

上传完毕后,运行以下命令让 Laravel 跑得更快:

其他操作

  1. 需要开启PHP的扩展 opcache ,开启后 laravel 整体项目会提升很多
  2. 设置 .env 文件的 SESSION_DOMAINSANCTUM_STATEFUL_DOMAINS

相关报错

Session store not set on request.

需要检查 .env 文件的 SANCTUM_STATEFUL_DOMAINS 设置前端可访问域名

CSRF token mismatch

SESSION_DOMAIN=null

计划任务启动

1. 打开服务器的 Crontab 编辑器

以运行 Web 项目的用户(通常是 wwwwww-dataubuntu)身份执行:

2. 添加下面这一行

在文件的末尾添加(注意替换为你项目的实际绝对路径):

  • \* \* \* \* \*: 表示每分钟执行一次。
  • php artisan schedule:run: Laravel 的调度引擎。它每分钟被唤醒一次,然后检查 Kernel.php 里有没有该跑的任务(比如你设定的 everyTenMinutes)。

这些信息可能会帮助到你: 关于本站 | 侵权删除 | 进站必看

文章名称:Laravel项目基础知识整理
文章链接:https://www.bysjb.cn/laravel-base.html
THE END
分享
二维码
打赏
< <上一篇
下一篇>>