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.
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.