WordPress

uprawnienia – ostrzeżenia ftp_nlist() i ftp_pwd().

  • 3 maja, 2020
  • 3 min read
uprawnienia – ostrzeżenia ftp_nlist() i ftp_pwd().


Nie jestem pewien, kiedy zaczęło się to ostrzeżenie. Mam istniejącą witrynę do hostingu i zastosowałem następujące dobre praktyki:

  • Zaktualizowano WordPress – z 5.3 do 5.4.0 (aktualna wersja WP)
  • Zaktualizowałem wszystkie wtyczki – to duża lista, więc nie będę jej tutaj dodawać
  • Zmieniono uprawnienia i właściciela pliku – wszystko jest własnością mojego użytkownika (nie Apache) i tylko folder wp-content jest zapisywalny przez Apache (z pewnymi ograniczeniami w środku) -> Przewodnik po hartowaniu WordPressa

Warto zauważyć, że użytkownik i grupa Apache są używane zarówno przez Apache, jak i PHP-FPM. Na potrzeby tej witryny używamy wyłącznie serwera (VM), więc nie muszę zajmować się wyzwaniami związanymi z bezpieczeństwem związanymi z udostępnianiem procesów.

Po tych zmianach zaczęły pojawiać się następujące ostrzeżenia PHP (tak, zrobiłem wszystko na raz! Przepraszam za to):

Warning: ftp_nlist() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 402

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 681

Warning: ftp_nlist() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 402

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 681

Warning: ftp_nlist() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 402

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_rmdir() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 381

Warning: ftp_nlist() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 402

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226

Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 681

Ostrzeżenia te pojawiają się w pliku dziennika PHP-FPM przy każdym wywołaniu serwera. Jeśli ustawię define( 'WP_DEBUG', true ); można je znaleźć na każdej stronie.

Warto przeczytać!  List od dyrektora wykonawczego WordPress, 2022 – Wiadomości WordPress

Kroki do rozwiązania

Mogę zatrzymać te ostrzeżenia, wykonując jedną z następujących czynności:

Żadna z tych zmian nie jest rozwiązaniem pożądanym. Pierwszy psuje witrynę, a drugi stwarza problem bezpieczeństwa.

Błąd WordPressa?

Znalazłem także problem WordPressa 48689, który opisuje te same błędy, ale powiązane z różnymi wtyczkami. Jednak rozwiązanie (if (!defined('FS_METHOD')) define('FS_METHOD', 'direct');) w moim przypadku nie działa. Pozostałe opcje ukrywania ostrzeżeń nie wydają się dobrym pomysłem.


Źródło