【问题标题】:Simple PHP API gives error 500 in Cpanel简单的 PHP API 在 Cpanel 中给出错误 500
【发布时间】:2018-06-25 21:59:57
【问题描述】:

我跟随this tutorial 用PHP 制作了一个简单的API。它在我的电脑上完美运行。我在源文件夹中添加了一些其他 php 文件,并在项目中添加了一个作曲家包(Firebase/JWT),因此创建了一个供应商文件夹和几个作曲家文件。现在项目文件夹如下所示:

/
- /plublic
-- .htaccess
-- index.php // requires src/functions.php
- /src
-- connection.php
-- functions.php // requires other src/.php files and JWT from composer
-- panel.php
-- responses.php
- /vendor
-- /composer // and files
-- /firebase // and files
-- autoload.php
.htaccess
composer.json
composer.lock

我使用子域 (api.mydomain.com) 将其上传到我的 cpanel 主机(在 api/)。我用 cpanel 创建了子域,并首先将根文件夹设置为 api/public 但它不起作用(500 错误)。然后我尝试将子域指向 api/ 但这也不起作用。我能做些什么?我认为问题出在 .htaccess 文件中。

#root .htaccess
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

#/public .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

我对 .htaccess 或 composer 了解不多,所以我没有动任何东西。谢谢。

【问题讨论】:

  • 为了测试你.htaccess的理论,你可以一次注释掉每一行......
  • 500 错误可能意味着任何事情。您需要找到 实际 错误消息。没有那个,我们只是在猜测。检查您的服务器错误日志。您还可以更改 PHP 显示错误的方式,并告诉它直接在屏幕上显示所有错误(虽然这不是您在生产中想要的,因为它可以显示敏感数据,但在开发过程中,您应该这样做)。以下是显示所有错误和警告的方法:stackoverflow.com/questions/5438060/…
  • @Zak 我尝试评论 .htaccess 但没有任何反应。
  • @MagnusEriksson 也尝试过,没有:/
  • 确保您在调试时拥有error_reporting(E_ALL);,并且您正在检查正确的错误日志。正如我所说,没有错误消息,我们就无法知道发生了什么。它可以是任何东西,例如不同/不兼容的 PHP 版本/配置、缺少扩展或其他东西。您是否尝试在调试时打开display_errors? (您仍然需要打开错误报告。)

标签: php .htaccess composer-php cpanel


【解决方案1】:

很明显为什么它不起作用。看看你的规则:

#root .htaccess
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
  1. .htaccess 文件中的第一条规则重写根的任何请求,例如www.example.comapi.example.com/ 到子文件夹 /public
  2. 第二条规则对此进行了补充,并将任何其他请求重写到子目录 /public,例如api.example.com/testapi.example.com/public/test

因此,实际上,这两条规则之一将始终触发。

由于您已将 api.example.com 的根目录设置为 /public,因此无法找到 /public/public 子文件夹;因此,您会收到错误 500。

要解决此问题,您可以尝试删除根 .htaccess 中的两个规则,或者您可以将 /api 的根设置为不设置子文件夹。

public/.htaccess 文件有一个典型的单一入口点配置,应该没问题。

始终在隐身模式下使用新浏览器来测试更改。

【讨论】:

  • 这也有帮助,但最后只是权限问题。
猜你喜欢
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2014-10-16
相关资源
最近更新 更多