Frapi API выдает ошибку 500 для правильного URL действия, иначе выдает ERROR_INVALID_ACTION_REQUEST
Последние три дня я пытался настроить инфраструктуру FRAPI на AWS. Я настроил панель администратора без ошибок, но по какой-то причине часть 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>
Переписать.htaccess для / var / www / frapi / src / frapi / public
RewriteEngine On
RewriteRule ^.*$ index.php [QSA,NC,L]
Я подозреваю, что RewriteRule вызывает проблему, или, возможно, MySQL conn, но я сомневаюсь, что соединение SQL выдает ошибку 500.
Ваша помощь очень ценится!
1 ответ
Рассматривая другие части вашего API, в основном установленные вызовы API по умолчанию, мы видим, что правила перезаписи работают нормально.
Проблема, скорее всего, кроется в модели, которая либо выбирает данные из запроса mysql и помещает их в переменную $this->data, либо эта проблема возникает между PHP и MySQL.
Хотя я не могу дать вам прямой ответ, я бы посоветовал вам взглянуть на следующее:
- Убедитесь, что все разрешения настроены правильно, просмотрев: http://frapi.github.io/installing/index.html
- Напечатайте результаты запроса mysql непосредственно после его получения и используйте die() (да, попробуйте отладку print-and-die),
- В вашем контроллере забаненных коллекций попробуйте удалить запрос MySQL и поместить переменную mock для возврата. Это подтвердит, достигли ли правила переписывания вашего контроллера,
- Если фиктивная переменная возвращается правильно после удаления SQL-запроса и его результатов, посмотрите на отладку значений, возвращаемых SQL-запросом, и на то, как вы выбираете соответствующие данные из него.
Если все не удается, убедитесь, что у вас есть журналы на стороне Apache, а также посмотрите журнал ошибок PHP. Если у вас не включены php-error-logs, добавьте это в ваш php.ini:
error_log = / tmp / php_error_log
Теперь это не дает прямого ответа на ваш вопрос, но, надеюсь, это поможет вам найти ответ, который вы ищете:-)