Strona główna » Blog » Gdy wtyczki się aktualizują ale WordPress już nie

Gdy wtyczki się aktualizują ale WordPress już nie

Zagadkowy taki przypadek mi się trafił ostatnio: serwis oparty o WP z jednej strony pozwalał bez przeszkód aktualizować wtyczki, ale niemożliwe było zaktualizowanie samego WordPressa. Nieustannie pojawiał się monit o podanie danych do FTP, aby móc wgrać pliki. Rozwiązałem tę sprawę, przyczyną było niewłaściwe działanie mechanizmu zabezpieczającego nazywającego się SELinux. Poniżej opisuję jak do tego doszedłem, aby innym dopomóc diagnozować podobne problemy.

Po pierwsze, jeżeli pojawia się monit o dostęp FTP, to znaczy to, że WP ma problem z zapisem i próbuje zaproponować jedną z kilku możliwości jego dokonania. Dopóki ta nie jest określona, to nic mądrzejszego się nie dowiemy. Stąd warto w wp-config.php dopisać taką linijkę:

define('FS_METHOD', 'direct' );

Co to daje? Narzuca metodę zapisu: bezpośrednio do plików. Teraz w widoku „Stan witryny” (w menu Narzędzia) pojawi się w podpowiedziach problemów lista plików, do których dostępu brakuje. Te pliki trzeba będzie sprawdzić. Należy się upewnić, że:

  • Należą do właściwego użytkownika systemowego lub właściwej grupy – te zapewne będzie można wyczytać z konfiguracji serwera WWW (np. /etc/httpd/conf/httpd.conf) lub konfiguracji PHP-FPM (np. /etc/php-fpm.d/www.conf);
  • Mają nadane odpowiednie uprawnienia do zapisu;
  • Sprawdzić kontekst SELinux (ls –context) czy nie jest ustawiony na tylko-do-odczytu.

W moim przypadku problemem było to ostatnie. Aby to naprawić, musiałem użyć polecenia chcon no narzucenia nowego kontekstu, bo odzyskanie za pomocą restorecon nic nie pomagało.