【问题标题】:How to deploy Strapi to an Apache cPanel如何将 Strapi 部署到 Apache cPanel
【发布时间】:2025-12-19 03:55:11
【问题描述】:

我正在我的 Apache cPanel(CentOS 7 上的 WHM)中设置 Strapi 安装,但找不到合适的方法来部署它。我已经设法让它运行起来,但是当我尝试访问仪表板 (/admin) 时,它只显示索引页面(公共/索引中的那个)。

这是将 Strapi 部署到 Apache 服务器的正确方法吗?

“--quickstart”设置仅用于测试目的,还是可以在生产中使用?如果是这样,我需要采取哪些部署前步骤?

这是一个简单的项目,需要轻松编辑内容,这些内容将通过 API 从另一个 cPanel 安装中手动获取。

通读 Strapi 文档,我只能找到有关 Heroku、Netlify 和其他第三方服务的部署信息,例如这些,没有自己在 Apache/cPanel 上托管。

我尝试在本地设置一个“--quickstart”项目,让它工作,然后通过 Bitbucket Pipelines 进行部署。之后,只需进入 cPanel 终端并启动它 - 虽然出现上述问题,但无法访问管理仪表板。

这是我的 server.json 配置:

生产

{
  "host": "api.example.com",
  "port": 1337,
  "production": true,
  "proxy": {
    "enabled": false
  },
  "cron": {
    "enabled": false
  },
  "admin": {
    "autoOpen": false
  }
}

发展

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
    "enabled": false
  },
  "cron": {
    "enabled": false
  },
  "admin": {
    "autoOpen": false
  }
}

尝试访问时没有控制台错误,也没有 404。

编辑

关于使用 --quickstart 设置的部署:

有许多功能(主要与搜索有关)不能与 SQLite 一起正常工作(缺乏适当的索引支持)更不用说由于磁盘速度和磁盘的原始 IOPS 而可能导致的缓慢。

关于如何实施的建议:

尊敬的,要部署strapi,您可能需要: 1.为其构建一个docker容器 2. 编写脚本来部署它 3.使用SSH并手动进行 4. 使用 CI/CD 平台并编写脚本来部署它

总结:

Strapi 不是典型的“复制文件并启动 apache”,它不是平面文件系统,Strapi 本身旨在作为类似于 Apache/Nginx/MySQL 等的服务运行。它们都是服务(Strapi 确实需要 Apache/Nginx/Traefik 通过代理为它做 ssl)

【问题讨论】:

  • 有人在 Centos 上使用 WHM/Cpanel 成功完成了这项工作吗?建议使用 Docker 脚本,还是以其他方式?

标签: apache api cpanel strapi headless-cms


【解决方案1】:

如果你访问/admin时有索引页,那是因为没有建admin。

请在启动您的应用程序之前运行yarn build

【讨论】:

  • 我做到了 - 可能应该在帖子中提到。但是,它不会给我一个登录屏幕,它会给我“注册你的第一个管理员”屏幕,即使我已经在本地开发中创建了一个。
  • 你在说哪个帖子?让我能够进行更新。对于登录屏幕,您在开发和生产环境中使用的数据库是什么?在这种情况下,它将取决于您的数据库配置和用于启动应用程序的环境。
  • 嗨,吉姆,抱歉,我的意思是我应该在我的问题(“帖子”)中提到我尝试运行构建命令。至于数据库配置,我只是运行了“快速启动”模式,从阅读 Strapi 文档来看,在我看来它应该可以正常工作。但是在 Strapi slack 频道上,我被告知“快速入门”运行 SQLite,这不适合生产构建。
  • 您将能够为您的生产环境打开另一个 SQL 数据库。通过更新您的 ./config/environments/production/database.json 文件。