-1

过去三天我一直在尝试在 AWS 上配置 FRAPI 框架。我已经正确配置了管理面板,但由于某种原因,API 部分不起作用。但是,我可以访问 API 主页,该主页正在拉取在管理面板中创建的操作。(见http://www.serverstars.net/

奇怪的是:如果我输入一个不存在的操作 url,我会收到 FRAPI "ERROR_INVALID_ACTION_REQUEST" 错误。但是,如果我输入一个真实的操作 url,我会收到 500 错误。(见http://www.serverstars.net/get/banned/36.json

Api 虚拟主机配置:

<VirtualHost *:80>
    ServerName serverstars.net
    ServerAlias www.serverstars.net
    ServerAdmin admin@api.frapi
    DocumentRoot /var/www/frapi/src/frapi/public

    <Directory /var/www/frapi/src/frapi/public>
        AllowOverride All
        Order deny,allow
        Allow from All
    </Directory>
</VirtualHost>

/var/www/frapi/src/frapi/public 的 .htaccess 重写

RewriteEngine On
RewriteRule ^.*$ index.php [QSA,NC,L]

我怀疑是 RewriteRule 导致了问题,或者可能是 MySQL 连接,但我怀疑 SQL 连接会引发 500 错误。

非常感谢您的帮助!!

4

1 回答 1

1

通过查看 API 的其他部分,主要是设置的默认 API 调用,我们可以看到重写规则运行良好。

http://www.serverstars.net/collection/foo.json

问题可能存在于从 mysql-query 中选择数据并将其放入$this->data变量的模型中,或者问题存在于 PHP 和 MySQL 之间。

虽然我不能给你一个直接的答案,但我建议你看看以下内容:

  1. 通过查看以下内容确保正确设置了所有权限:http: //frapi.github.io/installing/index.html#frapi.installing.configuring.apache
  2. 收到 mysql 查询后直接打印结果并使用 die() (是的,尝试 print-and-die 调试),
  3. 在您的禁止集合控制器中,尝试删除 MySQL 查询并放置一个要返回的模拟变量。这将确认重写规则是否到达您的控制器,
  4. 如果在删除 SQL 查询及其结果正确返回了模拟变量,请查看调试 SQL 查询返回的值以及如何从中选择相关数据。
  5. 如果一切都失败了,请确保您在 apache 端有日志,并查看 PHP 错误日志。如果您没有启用 php-error-logs,请将其添加到您的 php.ini:

    error_log = /tmp/php_error_log

现在,这并不能直接回答您的问题,但希望它能帮助您找到您正在寻找的答案:-)

于 2013-06-27T09:26:08.283 回答