У меня есть приложение, которое использует SF2, FOS-RestBundle, MySQL, AngularJS. Symfony используется только для предоставления API REST для моего внешнего приложения, написанного в Angular. Все работает отлично, когда включен режим отладки, и мои URL-адреса API похожи на:
" HOST/app_dev.php/api/users"
Но когда я переключаюсь на производственную среду и меняю свои URL-адреса на:
" HOST/api/users"
Я получаю такую ошибку:
{"error": {"code": 500, "message": "Internal Server Error"}}
Это моя конфигурация FOSRest (и система sensio):
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
request: { converters: true }
fos_rest:
routing_loader:
default_format: json
include_format: true
param_fetcher_listener: force
body_listener: true
allowed_methods_listener: true
view:
view_response_listener: 'force'
formats:
json: true
format_listener:
rules:
- { path: '^/api', priorities: ['json', 'xml'], fallback_format: null, prefer_extension: true }
- { path: '^/', priorities: [ 'text/html', '*/*'], fallback_format: null, prefer_extension: true }
access_denied_listener:
json: true
Я знаю, что ошибка запускается где-то в FOSRestBundle, но у меня есть "точка останова" в ExceptionController. Он даже не туда ездит.
Снимок экрана с ошибками и заголовками
Цените любую помощь.
Когда я выяснил, как добраться до журналов сервера на моем хостинге, я обнаружил следующую ошибку:
Ваши данные не могут быть закодированы, потому что они содержат недопустимые символы UTF8. "В app/endor/jms/serializer/src/JMS/Serializer/JsonSerializationVisitor.php строка 36
И решение здесь ("SET NAMES UTF8" сделал трюк):