【问题标题】:SilverStripe - The website server has not been able to respond to your requestSilverStripe - 网站服务器无法响应您的请求
【发布时间】:2020-04-20 05:49:59
【问题描述】:

我正在尝试按照tutorial 创建我的第一个 SilverStripe 网站。

到目前为止,我已经创建了我的网站并配置了我的 .env 页面。

# DB credentials
SS_DATABASE_CLASS="MySQLDatabase"
SS_DATABASE_SERVER="localhost"
SS_DATABASE_USERNAME="root"
SS_DATABASE_PASSWORD=""
SS_DATABASE_NAME="SS_examples"
SS_ENVIRONMENT_TYPE="dev"

我不完全确定在创建站点时如何创建数据库。我检查了我的数据库,但我没有一个。我可以手动创建一个,但我不确定是否应该将其列在SS_DATABASE_NAME 下,或者它是否会自动创建数据库。

我假设这就是为什么当我访问我的本地站点 localhost/SSexample/public 时收到错误消息 "The website server has not been able to respond to your request"

我是否缺少设置站点的步骤,还是应该手动创建一个名为 SS_examples 的数据库?

附带说明,我的 apache 服务器是使用 xampp 设置的,我的 SilverStripe 项目位于 C:/xamp/htdocs

我创建网站的步骤:

  1. 通过运行在 C:\xampp\htdocs 中构建站点:composer create-project silverstripe/installer SSexample
  2. 通过localhost/SSexample/public访问了我的项目
  3. 创建了上面列出的.env 文件

错误日志

[2019-12-31 22:29:22] error-log.ERROR: Uncaught Exception SilverStripe\ORM\Connect\DatabaseException: "Couldn't run query:  SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."ID",             CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"            ELSE 'SilverStripe\\SiteConfig\\SiteConfig' END AS "RecordClassName"  FROM "SiteConfig"  LIMIT 1  Table 'ss_lessons.siteconfig' doesn't exist" at C:\xampp\htdocs\SSlessons\vendor\silverstripe\framework\src\ORM\Connect\DBConnector.php line 64 {"exception":"[object] (SilverStripe\\ORM\\Connect\\DatabaseException(code: 0): Couldn't run query:\n\nSELECT DISTINCT \"SiteConfig\".\"ClassName\", \"SiteConfig\".\"LastEdited\", \"SiteConfig\".\"Created\", \"SiteConfig\".\"Title\", \"SiteConfig\".\"Tagline\", \"SiteConfig\".\"CanViewType\", \"SiteConfig\".\"CanEditType\", \"SiteConfig\".\"CanCreateTopLevelType\", \"SiteConfig\".\"ID\", \n\t\t\tCASE WHEN \"SiteConfig\".\"ClassName\" IS NOT NULL THEN \"SiteConfig\".\"ClassName\"\n\t\t\tELSE 'SilverStripe\\\\SiteConfig\\\\SiteConfig' END AS \"RecordClassName\"\n\r\nFROM \"SiteConfig\"\n\r\nLIMIT 1\n\nTable 'ss_lessons.siteconfig' doesn't exist at C:\\xampp\\htdocs\\SSlessons\\vendor\\silverstripe\\framework\\src\\ORM\\Connect\\DBConnector.php:64)"} []

【问题讨论】:

    标签: php mysql environment-variables silverstripe


    【解决方案1】:

    localhost/SSexample/public 的安装程序似乎应该允许您配置数据库连接设置(并为您创建数据库)。

    获取网站服务器无法响应您的请求错误意味着您的网络服务器有问题 - 它正在运行吗?

    编辑:网站服务器无法响应您的请求实际上是 Silverstripe 的一般错误 500 消息。

    EDIT2:必须启用开发环境 - 通过将 SS_ENVIRONMENT_TYPE="dev" 添加到 .env 文件,然后访问 localhost/SSexample/public/dev/build 以创建和填充数据库。

    【讨论】:

    • 在我从.env.example 创建.env 文件之前,我收到了一条错误消息SilverStripe Framework requires database configuration defined via .env 所以我假设服务器至少能够访问该项目。
    • 按照this forum post 尝试将?isDev=1 添加到URL,它可能会显示更多错误消息。
    • 你可以在locahost 上使用用户root 无需密码(在Adminer/phpMyAdmin/mysql 控制台中)实际连接到您的数据库服务器吗?
    • 是的,我可以。它是设置 xampp 的默认设置,它仍然有效(刚刚尝试过)\
    • 检查是否可以找到 Silverstripe 的错误日志(或启用它 - 请参阅 stackoverflow.com/a/51279695/4930070)或 Apache/PHP 错误日志 - 这些可能会产生额外的错误信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多