500 Internal Server Error: зошто го добиваш и како професионално се решава (cPanel / WordPress / OpenCart)
500 Internal Server Error е “генеричка” серверска грешка – значи нешто се скршило на серверската страна, но browser-от не добива детал. Реалната причина скоро секогаш се гледа во логови (Errors) и најчесто е поврзана со .htaccess, PHP, permissions или фатална грешка во код.
Најчести причини (проширено и појасно)
1) Грешка во .htaccess (најчесто кај WordPress)
Погрешно rewrite правило, забранета директива или конфликт со модул може да фрли 500.
- Често по промена на permalink, миграција или plugin што додава правила
- Може да е и во под-папка (.htaccess во wp-admin, uploads, итн.)
2) Погрешни дозволи (permissions) или owner проблем
Ако фајлови/фолдери имаат премногу рестриктивни дозволи или погрешен owner, PHP не може да чита/запише и паѓа.
- Фајлови: 644
- Фолдери: 755
- Избегнувај 777 (небезбедно и често прави уште поголеми блокови)
3) Фатална грешка во скрипта (plugin/theme/app code)
PHP Fatal error (missing class/function, syntax error, memory exhausted) најчесто се манифестира како 500.
- Често по update на plugin/theme
- Често по промена на PHP верзија
- Често по миграција (недостасува датотека/конфиг)
4) Проблем со PHP верзија или PHP екстензии
Ако апликацијата не е компатибилна со PHP верзијата (или недостига екстензија), може да падне со 500.
- Пример: plugin бара одредена PHP екстензија или минимална верзија
- По upgrade: стар plugin може да фрли fatal errors
5) Memory limit / timeouts / тежок процес
Кога ќе се надмине memory лимит или ќе “заглави” тежок процес, може да добиеш 500.
- Голем import, backup, heavy query
- WooCommerce операции, големи филтри, пребарувања
6) Корумпирани core фајлови или недостасувачки фајлови
Ако недостасуваат core фајлови (WordPress/OpenCart) или се оштетени, апликацијата може да падне.
Профи решение (најбрза рута чекор-по-чекор)
Чекор 1: Провери Error Logs (најважно)
Без логови, 500 е “слепо” погодување. Прво провери:
- cPanel → Metrics → Errors
Барај зборови како: PHP Fatal, Allowed memory size, Uncaught Error, undefined function, permission denied, rewrite.
Чекор 2: Тестирај .htaccess (брз on/off тест)
Во root (пример public_html) преименувај:
- .htaccess → .htaccess.bak
Потоа тестирај повторно. Ако 500 исчезне, проблемот е во .htaccess. После тоа можеш да генерираш нов .htaccess (кај WordPress преку Permalinks → Save) или да ја вратиш точната верзија.
Чекор 3: Провери permissions (644/755) и owner
- Фајлови: 644
- Фолдери: 755
Ако имаш “чудни” дозволи или погрешен owner (често по миграција), тоа е силен кандидат за 500.
Чекор 4: Провери PHP верзија (MultiPHP Manager) и компатибилност
cPanel → MultiPHP Manager → избери домен → смени PHP верзија (ако е потребно).
- Ако 500 почнало по PHP upgrade – врати 1 верзија назад и тестирај.
- Потоа обнови/замени конфликтен plugin/theme.
Чекор 5: Исклучи plugins (ако е WordPress) или extensions (ако е OpenCart)
Ова е најбрз начин да утврдиш дали 500 доаѓа од plugin/extension.
- WordPress: wp-content/plugins → plugins преименувај во plugins-disabled
- OpenCart: ако е по extension – привремено деактивирај го проблематичниот (или побарај во логови точна датотека)
Ако проработи, врати ги и активирај/вклучувај по еден за да го најдеш виновникот.
Чекор 6: Ако е memory/timeouts
Во логови ќе видиш “Allowed memory size exhausted” или слично. Решение:
- Зголеми memory limit (во PHP INI преку cPanel ако е дозволено)
- Исклучи тежок plugin/операција
- Вклучи кеширање (на LiteSpeed – LSCache) за да се намали товарот
Како да знаеш дека си ја нашол причината
- По rename на .htaccess: 500 исчезнува → .htaccess проблем
- По исклучување plugins: 500 исчезнува → plugin/extension проблем
- По промена PHP верзија: 500 исчезнува → компатибилност PHP/екстензии
- Во логови гледаш конкретна датотека/линија → директно го имаш “виновникот”
Опција: тикет за брза дијагностика (ако сакаш поддршка да го фати точно)
Ако сакаш брзо и прецизно, отвори тикет и приложи дел од Errors log:
https://gohost.mk/submitticket.php
- Наслов: 500 Internal Server Error – проверка на логови / .htaccess / PHP
- Домен: example.com
- cPanel username: CPANELUSER
- Што се смени последно: plugin update / PHP change / миграција
- Прилог: paste од Metrics → Errors (релевантните линии)