Ха, uptime robot ми светна, че сайта е бил долу през вечерта със супер информативното съобщение – “There has been a critical error on this website”. Любопитно, но се оказа, че го е счупил един google plugin, който не възнамерявам да връщам обратно.

Набързо за white screen of death и стъпките за дебъгване:

  1. Проверка на това колко свободно място на диска и в RAM паметта имаме:
marvinator@marvin $ free -m
total used free shared buff/cache available
Mem: 1967 1752 66 64 368 214
marvinator@marvin $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 18G 6.1G 74% /
/dev/vda15 124M 12M 113M 10% /boot/efi

Тук виждаме, че място на диска има, но имаме само 66MB свободна рам. Рестартирах нормалните виновници и по-точно MariaDB и php-fpm:

marvinator@marvin $ systemctl restart mariadb.service
marvinator@marvin $ systemctl restart php8.2-fpm.service

Да видим колко памет имаме освободена:

marvinator@marvin $ free -m
total used free shared buff/cache available
Mem: 1967 738 990 55 450 1229

Така е по-добре, от 66MB към 738MB. Това не е перманентно решение и ще трябва да си оптимизирам малко сървисите, но за сега – толкова.

2. Това не помогна да се реши проблема така, че отиваме в логовете на nginx (които взимаме от /etc/nginx/conf.d/{default}.conf) ей така (ако файла се казва default.com):

marvinator@marvin / $ cat /etc/nginx/conf.d/default.conf | grep "error.log"
error_log /var/log/nginx/nedko.info.error.log;

Правим един tail и с него гледаме какво се случва във файла след като refresh-нем страницата и ето го зайчето:

marvinator@marvin / $ tail -f /var/log/nginx/default.error.log

2024/09/10 07:58:14 [error] 2704424#2704424: *2661604 Failed to open stream: No such file or directory in /xxx/xxx/wp-content/plugins/google-site-kit/includes/loader.php on line 62;

Вероятно е минал някакъв ъпдейт, който е потрошил плъгина и оттам WordPress е изпаднал в паника. Решението ми беше да преместя или изтрия директорията от plugins и така да позволя на WordPress да си се зареди правилно.

Takeaways:

  1. Трябва да повече оптимизирам сървисите, които имам и да спра тези, които не използвам
  2. Трябва да спра (вече е направено) автоматичните ъпдейти на плъгините. Бях пуснал само тях преди време (без ъпдейт на WordPress core), но беше въпрос на време нещо да се наака
  3. Безплатния tier на UptimeRobot за веченезнамкойпът си върши работата чудесно.