Як і будь-яка помилка, що з’являється на будь-якому веб-сайті, внутрішня помилка сервера Magento 2 (internal server error 500) впливає на досвід ваших користувачів, трафік та конверсії. Хоча іноді вона може зникнути після перезавантаження сторінки, вам слід негайно усунути її, щоб вона не впливала на трафік вашого магазину годинами.

Це одна з найпоширеніших помилок Magento. Отже, перш ніж ми перейдемо до рішення для виправлення помилки 500 internal server error Magento 2, ви повинні знати, що це таке.

Що таке internal server error 500 у Magento 2?

Внутрішня помилка сервера Magento — це загальний HTTP status code, який з’являється, коли ви переходите за правильною URL-адресою або натискаєте посилання на веб-сайт і запитуєте сторінку з сервера. Щось йде не так, і сервер не може повернути запитувану сторінку і не знає, у чому проблема.

Magento 2 Internal Server Error

Оскільки сервер нічого не знає про проблему і відображає лише Internal Server Error 500, вам слід піти в журнал помилок сервера (server error logs), щоб отримати додаткову інформацію про цю проблему.

І ось найпоширеніші причини появи внутрішньої помилоки сервера.

Причини помилки Magento 2 500 internal server error

Виправлення внутрішньої помилки сервера в Magento займає не так багато часу, як пошук причини проблеми, оскільки існує досить багато причин, чому вона з’являється:

  • Permission Issue
  • Memory Limit
  • Missing Modules
  • Issues in .htaccess File
  • Third-party Extension

Як виправити помилку Magento 2 internal server error?

Виходячи з причин цієї проблеми, існують наступні рішення. Однак, перш ніж виконувати будь-які дії, увімкніть режим розробника (developer mode) та розкоментуйте наступний рядок

#ini_set('display_errors', 1);

у файлі app/bootstrap.php, щоб легко дебажити Magento та отримати детальні витяги з журналу помилок.

Рішення #1 Змініть file permissions

Проблема Magento Internal Server найчастіше виникає, коли ви намагаєтеся отримати доступ до адмін панелі Magento або менеджера підключень (connect manager), коли файли Magento permission налаштовано неправильно.

Дозвіли за замовчуванням для файлів індексу (index files) після встановлення Magento становить 664, а має бути 644.

Щоб змінити дозволи файлу за замовчуванням з 664 на 644, перейдіть до файлу index.php в корені Magento і виконайте наступні команди.

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
find ./var -type d -exec chmod 777 {} \;
find ./pub/media -type d -exec chmod 777 {} \;
find ./pub/static -type d -exec chmod 777 {} \;
chmod 777 ./app/etc
chmod 644 ./app/etc/*.xml
chmod u+x bin/magento

Рішення #2 Збільшіть ліміт пам'яті

Щоб працювати коректно - платформа Magento вимагає певних можливостей системи. Це включає певні обмеження пам'яті PHP. Зазвичай хостинг провайдери Magento задають обмеження пам’яті за замовчуванням, наприклад, 20 МБ або 60 МБ, що недостатньо для Magento.

Щоб виправити помилку internal server error 500, вам потрібно збільшити значення php_memory_limit до 756M у файлах php.ini або .htaccess.

Для того:

  • Увійдіть на сервер свого веб-сайту за допомогою SSH.
  • Знайдіть папку з файлом php.ini і відкрийте її за допомогою редактора vi.
  • Додайте до нього наступний рядок
memory_limit = 756M
  • Або збільште це значення, якщо вого занадто низьке.

В іншому випадку:

  • Увійдіть на сервер свого веб-сайту за допомогою SSH.
    Додайте наступні рядки до файлу .htaccess.
<IfModule mod_php5.c>
php_value memory_limit 256M
</IfModule>

Рішення #3 Переназвіть файл .htaccess

Налаштування файлу .htaccess також дуже важлива, оскільки будь-які помилки або опечатки можуть викликати проблеми, включаючи внутрішню помилку сервера 500 internal server error. Проблеми у файлі .hraccess виникають під час встановлення плагінів, патчів або тем і вимагають правильних налаштувань.

Спробуйте видалити або перейменувати файл .htaccess, щоб перевірити, чи буде вирішена 500 помилка.

Рішення #4 Вимкніть третьо-сторонні модулі

Внутрішня помилка сервера в Magento може з’явитися після встановлення сторонніх розширень Magento або оновлення деяких з них. Зазвичай це конфлікт між новим розширенням або новою версією з існуючими модулями у вашому магазині.

Виконайте наступну команду, щоб вимкнути розширення:

php bin/magento mod:disable VenorName_ModuleName

Після того, як ви запустите її зв’яжіться з постачальником розширення, щоб отримати деталі та виправлення.

Рішення #5 Вимкніть maintenance mode

Коли ви увімкнете режим обслуговування (maintenance mode), файл maintenance.flag буде поміщено в кореневу папку Magento. Це змінює дозвіл файлу index.php на 666, який веб-браузери не можуть виконати.

Виконайте таку команду, щоб видалити файл maintenance.flag і змінити дозвіл у index.php на 755.

php bin/magento maintenance:disable

Це основні причини та рішення внутрішньої помилки сервера Magento 2, які допоможуть вам вирішити її.

Рано чи пізно кожен розробник Magento стикається з цією помилкою. Однак, прочитавши цю статтю, ви повинні бути готові визначити причину і вибрати один із вищезгаданих рішень, щоб усунути її.