Ошибка 419 после переноса сайта на Laravel на хостинг. Как исправить?

После переноса приложения на Laravel v.8 с локального OpenServer на сервер – появилась проблема – ошибка 419. Работой всех форм – в том числе авторизации и аутентификации.

5fae52b6998f2806478220.jpeg
Выдается сообщение об ошибке 419.

Как я понимаю, проблема с CSRF – защитой. Но проблема возникла только после переноса сайта на сервер, на локалке все работало. И конечно директивы @csrf в формах присутствуют, и тэг IMPUT с токэном в форме формируется:
<input type="hidden" name="_token" value="RIhn7KmFAjyVxFwX6STjCDHtXSEPRbAqJaX88x3D">


Проблема распространенная, и обсуждается в сети. Но ни один из предложенных вариантов решения проблемы мне не помог.

1. Производил по SSH всевозможные очистки кэша:
php artisan optimize
php artisan cache:clear
php artisan route:cache
php artisan view:clear
php artisan config:cache
php artisan config:clear

2. Выполнял команды и присваивал папкам права:
chmod -R 755 storage
chmod -R 755 vendor
chmod -R 644 bootstrap/caches

3. Менял согласно некоторым рекомендациям директиву CSRF на {{csrf_field()}}.

4. Вносил изменения в файл config/session.php
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', false),


Ни один из предложенных в сети выше перечисленных способов не помог решить проблему. Постоянно получаю 419 ошибку.

Прошу сообщества совета в решении данной проблемы.
  • Вопрос задан
  • 604 просмотра
Решения вопроса 1
@voland700 Автор вопроса
Проблема решена. В моем случае проблема была в конфигурации сервера. Сайт размещен на VDS сервере с панелью управления BrainyCP. Панель была сконфигурирована для работы сайтов на Битрикс, в том числе необходимый параметр для работы Битрикс - BrainyCP mbstring.func_overload.
Согласно логам сервера - при попытке сохранить какие либо данные через форму на сайте отрабатывала 419 ошибка.
В логах сервера запись о данной ошибке в виде:
[Fri Nov 13 12:35:33.249913 2020] [proxy_fcgi:error] [pid 18854:tid 140666176743168] [client 212.45.19.58:43938] AH01071: Got error 'PHP message: PHP Deprecated:  The mbstring.func_overload directive is deprecated in Unknown on line 0', referer: http://hight-control.ru/

Что говорит о проблемах с настройкой PHP mbstring.func_overload.

Проблема была решена установкой на сервере новой версии PHP 7.4 с параметрами по умолчанию, и переключению сайта на работу на данной версии PHP.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@louise170
Буквально на прошлой неделе с этим же пришлось столкнуться после переезда с одного хостинга на другой. Смотрите куда у вас настроено складывание сессий, проверяйте есть ли туда доступ. Например, у меня было так что сессии складывались в мемкеш, а сам мемкеш на хостинге запустить забыли.
Ответ написан
Комментировать
NeuroZ
@NeuroZ
PHP (Laravel, Joomla!)
В моем случае не формировался новый токен на страницах, где в контроллере передавался заголовок Expires. Убрал заголовок - и токены заработали нормально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы