Skip to main content

500 iekšējā servera kļūda: cēloņi un novēršana

· 4 min read
Customer Care Engineer

kā-novērst-500-iekšējo-servera-kļūdu-vietnes-novēršana

500 iekšējā servera kļūda ir viena no visbiežāk sastopamajām problēmām, ar ko saskaras vietņu īpašnieki un administratori. Tā signalizē, ka serverī kaut kas nogājis greizi — taču nenodrošina precīzu diagnostiku. Šajā rakstā skaidrots, kas parasti izraisa 500 kļūdu un kā jūs varat to novērst.


Iespējamie 500 kļūdas cēloņi

500 kļūdu var izraisīt daudzi iemesli. Visbiežākie ir:

  1. Servera resursu problēmas

Bieži vien 500 kļūdu var izraisīt tehniskas problēmas serverī, piemēram, resursu trūkums (RAM, CPU laiks).

  1. Vietnes koda kļūdas

Skriptos vai vietnes kodā var būt kļūdas, kas izraisa kļūmi. Tas var notikt nepareizu pieprasījumu dēļ, kļūdu konfigurācijas failos vai problēmu dēļ vietnes komponentu savstarpējā mijiedarbībā.

  1. Problēmas ar .htaccess failu

.htaccess fails tiek izmantots tīmekļa servera konfigurēšanai un var saturēt kļūdas, kas radīs 500 kļūdu. Piemēram, nepareizi pāradresācijas noteikumi vai nepareizi parametri var izraisīt kļūmi.

  1. Nesenie atjauninājumi

Kļūdas var rasties pēc vietnes vai servera lietojumprogrammu atjauninājumiem, kur izmaiņas nav apstrādātas pareizi.


Kā novērst 500 kļūdu

  1. Pārbaudiet tīmekļa servera žurnālus

Lai noteiktu 500 kļūdas cēloni, pirmais solis ir pārbaudīt servera žurnālus. Šie žurnāli parasti satur informāciju par kļūmi — vai tā ir koda kļūda, nepareiza konfigurācija vai servera līmeņa problēma. Tomēr ir svarīgi saprast, ka tīmekļa serveru žurnāli (piemēram, no Nginx vai Apache) bieži vien reģistrē tikai kļūdas rašanos un atbildes kodu, nevis tās galveno cēloni. Tas īpaši attiecas uz Nginx, kas parasti darbojas kā starpnieks un vienkārši pārsūta kļūdu no backend lietojumprogrammas.

Atkarībā no izmantotā tīmekļa servera žurnāli var atrasties šādās direktorijās:

Apache:

  • Ubuntu/Debian: /var/log/apache2/error.log

  • CentOS/AlmaLinux/Rocky Linux: /var/log/httpd/error.log

Nginx:

  • /var/log/nginx/error.log

Ja jūsu serveris tiek pārvaldīts, izmantojot vadības paneli, piemēram, FASTPANEL, žurnālu apskatīšana kļūst vēl vienkāršāka. Lai to izdarītu:

  • Piesakieties vadības panelī.

  • Atveriet vietnes kartīti un atrodiet sadaļu “Žurnāli”.

  • Cilnē “Frontend Error Log” ir Nginx tīmekļa servera kļūdas, savukārt cilnē “Backend Error Log” ir Apache kļūdas.

Ņemiet vērā, ka daudzas CMS un ietvari (WordPress, Laravel, Joomla utt.) uztur savus kļūdu žurnālus. Šie žurnāli bieži sniedz precīzāku informāciju par 500 kļūdas cēloni. Konsultējieties ar savas platformas dokumentāciju, lai uzzinātu, kur šie žurnāli tiek glabāti.

Žurnāli ļoti iespējams sniegs jums detalizētu ieskatu par to, kas nogāja greizi. Ja 500 kļūdu izraisīja nepareiza konfigurācija vai koda problēmas, jūs varat redzēt failus — vai pat precīzas rindas —, kas izraisa kļūmi.

  1. Iespējojiet PHP kļūdu reģistrēšanu

Lai iegūtu detalizētāku diagnostiku, iespējojiet reģistrēšanu tieši PHP — tas ir īpaši noderīgi, ja kļūda radusies kodā un neparādās tīmekļa servera žurnālos.

Lai to izdarītu, iestatiet šādas vērtības php.ini failā:

display_errors = Off

log_errors = On

error_log = /var/log/php_errors.log

Šeit:

  • display_errors — slēpj kļūdu izvadi pārlūkā

  • log_errors — raksta kļūdas žurnāla failā

  • error_log — ceļš uz žurnāla failu (PHP jābūt rakstīšanas tiesībām)

Tipiskas php.ini atrašanās vietas:

  • Debian/Ubuntu: /etc/php/*/apache2/php.ini vai /etc/php/*/cli/php.ini

  • CentOS/AlmaLinux: /etc/php.ini

Vai atrodiet to, izmantojot:

php -i | grep "php.ini"

FASTPANEL: atveriet vietnes kartīti → “PHP iestatījumi”, meklējiet mainīgos, piemēram, display_errors, mainiet to vērtības un noklikšķiniet uz “Saglabāt”.

  1. Pārbaudiet .htaccess failu

Ja kļūda parādījās pēc .htaccess rediģēšanas, atjaunojiet failu uz iepriekšējo stāvokli.

Ja neesat pārliecināts, kas tieši ir mainīts, pagaidām pārdēvējiet .htaccess (piemēram, par .htaccess.bak) — ja kļūda pazūd, tad problēma ir šajā failā.

Šajā gadījumā mēģiniet atjaunot .htaccess failu no rezerves kopijas, ja tāda ir pieejama, vai izmantojiet noklusējuma .htaccess failu savai CMS, ko varat iegūt šeit.

  1. Pārbaudiet failu atļaujas un īpašumtiesības

Nepareizas atļaujas var izraisīt 500 kļūdu. Pārliecinieties, ka vietnes saknei un visiem apakšfailiem ir pareizas tiesības un īpašnieks:

ls -laR /ceļš/līdz/jūsu/vietnes/saknei

Ieteicamās atļaujas:

  • Direktorijām: 755 — lasīšanas, rakstīšanas un izpildes tiesības īpašniekam; lasīšanas un izpildes tiesības visiem citiem.

  • Failiem: 644 — lasīšanas un rakstīšanas tiesības īpašniekam; tikai lasīšanas tiesības visiem citiem.

Īpašumtiesības:

Failiem un mapēm jāpieder tīmekļa servera lietotājam (piemēram, www-data vai apache).

Ja nepieciešams, varat pielāgot atļaujas un īpašumtiesības, izmantojot šādas komandas:

  • Pārejiet uz savas vietnes saknes direktoriju:
cd /ceļš/līdz/saknes/direktorijai/vietne
  • Iestatiet pareizās īpašumtiesības un atļaujas:
sudo chown -R jūsu_lietotājs:jūsu_lietotājs . && sudo chmod 644 . -R && sudo chmod +X . -R

Lūdzu, aizstājiet jūsu_lietotājs ar faktisko lietotāju un grupu, kas pieder jūsu vietnei.

  1. Atspējojiet spraudņus un motīvus.

Tādās CMS vietnēs kā WordPress 500 kļūda bieži rodas spraudņu vai motīvu konfliktu dēļ. Atspējojiet visus spraudņus un pārslēdzieties uz noklusējuma motīvu, lai redzētu, vai tas atrisina problēmu.

  1. Pārliecinieties, ka serverim ir pietiekami brīvi resursi jūsu vietnēm.
  • Pārbaudiet, vai jums ir pietiekami daudz brīvas vietas diskā:
sudo df -h
  • sudo df -ih
sudo df -ih
  • Pārbaudiet, vai serverim ir pietiekami daudz RAM:
sudo free -mh
  • Pārbaudiet pašreizējo CPU slodzi:
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
  • Alternatīvi, atveriet procesu monitoru ar komandu:
sudo top

Ja jums beigusies vieta diskā vai inodi, jūs varat identificēt, kuri faili un direktorijas aizņem visvairāk vietas, sekojot norādījumiem attiecīgajā rakstā.

Ja RAM vai CPU slodze ir pārmērīgi augsta, cēloņi var būt dažādi. Sāciet izmeklēšanu, bloķējot meklētājprogrammu robotus, jo tie bieži vien ir paaugstinātas slodzes avots.

  1. Pārbaudiet, vai DBMS ir vesels.

Visbiežāk tas būs MySQL; zemāk ir daži ātri soļi, lai pārbaudītu, vai jūsu datubāzes ir OK.

  • Apstipriniet, ka MySQL pakalpojums darbojas:
sudo systemctl status mysql
  • Pārbaudiet MySQL kļūdu žurnālu:
sudo grep -i error /var/log/mysql/error.log
  • Pārbaudiet visas datubāzes attiecībā uz kļūdām:
mysqlcheck -A -c

Ja tiek atrastas kļūdas, vispirms pārliecinieties, ka jums ir ietekmēto datubāžu rezerves kopijas. Ja nepieciešams, izveidojiet dambi:

mysqldump -u [lietotājs] -p [datubāzes_nosaukums] > /ceļš/līdz/failam/dambis.sql
  • Aizstājiet [lietotājs] ar MySQL lietotājvārdu.

  • Aizstājiet [datubāzes_nosaukums] ar eksportējamās datubāzes nosaukumu.

  • /path/to/dump.sql ir ceļš, kur tiks saglabāts dumps.

Pēc tam palaidiet kļūdu labošanas procedūru ar mysqlcheck:

mysqlcheck -A --auto-repair -c
  1. Sazinieties ar savu hostinga nodrošinātāju.

Ja nevarat identificēt problēmu, iespējams, ir vērts sazināties ar sava hostinga nodrošinātāja atbalsta dienestu. Tas var palīdzēt identificēt problēmas serverī, kas nav redzamas lietotāja līmenī. Jūs varat uzzināt, kā izvēlēties pareizo hostinga nodrošinātāju, šajā rakstā.


Nobeigums

500 kļūda nav spriedums jūsu vietnei. Ar pamata diagnostikas rīku palīdzību jūs varat ātri noskaidrot cēloni un novērst problēmu. Ja neesat pārliecināts par savām spējām, vienmēr varat vērsties pie speciālistiem. Svarīgi atcerēties, ka savlaicīgi atrastā un novērsta 500 kļūda palīdzēs izvairīties no nopietnākām problēmām nākotnē.