Odpowiedzi:
Jeśli edytujesz wp-config.php
plik, możesz wstępnie załadować te ustawienia FTP jako stałe odczytywane przez WordPress. Pamiętaj, że na współdzielonym hoście powinieneś pamiętać o możliwych implikacjach bezpieczeństwa.
Abywp-config.php
uzyskać więcej informacji, zobacz Edycja .
Twoje ustawienia będą się różnić, ale działają one dla mnie i mojej konfiguracji hostingu. Podałem niektóre nieużywane stałe, z prefiksem:
define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_HOST', 'ftp.my-site.example.com');
// define('FTP_SSL', false);
Sprawdź własność pliku. Gdy użytkownik, który działa jako apache, może pisać do katalogów wordpress, wówczas zintegrowany proces aktualizacji działa bez ftp. Poświadczenia FTP dotyczą, jeśli serwer WWW nie ma odpowiednich uprawnień do twoich plików, a następnie wordpress poprosi o podanie danych FTP i spróbuje użyć ich do FTP z powrotem na ten sam serwer, na którym jest w stanie zapisać potrzebne pliki.
Wygląda na to, że WordPress nie tylko sprawdza, czy katalogi są zapisywalne, ale sprawdza również, czy użytkownik Apache OWNS OWNS katalogi (a przynajmniej, jeśli użytkownik Apache jest właścicielem utworzonego pliku tymczasowego). Obserwuj następujące wiersze kodu w /wp-admin/includes/file.php: get_filesystem_method ():
if ( $temp_handle ) {
if ( getmyuid() == @fileowner($temp_file_name) )
$method = 'direct';
@fclose($temp_handle);
@unlink($temp_file_name);
}
Szybkim rozwiązaniem będzie wydanie tego polecenia i przekazanie własności całej instalacji Wordpress Apache:
sudo chown -R www-data wordpress/
Gdzie www-data to użytkownik Apache, a wordpress to oczywiście folder instalacyjny WordPress.
Udokumentowałem moje rozwiązanie tutaj: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/
Podczas dostrajania Apache 2.4 poprzez EasyApache4 w celu poprawy prędkości ładowania strony na serwerze Centos 7 PHP 7, włączyłem mod_pagespeed. Po włączeniu automatycznie wyłączy mod_ruid2 i mod_cgi (i włączy pozostałe dwa moduły). Po wyłączeniu mod_pagespeed, nie włączy automatycznie mod_ruid2 automatycznie - włączy tylko mod_cgi. Bez mod_ruid2 Wordpress zażąda poświadczeń FTP.
Nie ma potrzeby kodowania wp-config.php na stałe lub ustawiania uprawnień do plików (niebezpiecznie) na 777. Wystarczy ręcznie włączyć mod_ruid2, ponownie uruchomić Apache, a problem z zezwoleniem na FTP / plik został rozwiązany. Wordpress i wtyczki można teraz aktualizować jak zwykle, a media przesłać do galerii Wordpress. Działa od razu.
Właśnie sprawdziłem, że zmiana z MPM Prefork na Worker spowoduje wyłączenie mod_ruid2. Podczas powrotu z Worker do Prefork nie włączy mod_ruid2, co powoduje problem opisany w tym poście.
W obu przypadkach kluczem jest sprawdzenie i włączenie mod_ruid2.
Mam nadzieję, że pomogłem.
1) Nie mogłem się zgodzić z powyższą odpowiedzią, ponieważ była zbyt ogólna
1a) Po prostu nie chcę rekurencyjnie zmieniać właściciela wszystkich moich plików (tak jak w przypadku strzelby do zabicia muskito). Zwłaszcza, że wcześniej działało to doskonale.
1b) Wordpress posiadający „podstępną” funkcję nagle prosi cię o poświadczenia dla ftp
2) Więc zacząłem kopać głębiej, wykorzystując jego przewagę Ardee Arama. Poszedłem do sprawdzenia pliku file.php i sprawdziłem jego własność. Wygląda na to, że plik.php jest zależny od jego własnej własności (która została niepoprawnie ustawiona jako root).
Poprawka: chown www file.php
UWAGA: Zamień www na dowolną dystrybucję lub ustawienia (możesz użyć ps aux | egrep "php | http" i zobaczyć, jaka jest jego własność w pierwszej kolumnie.
Mam nadzieję, że to pomoże komuś innemu być sfrustrowanym z tego powodu. Nie rozumiem nawet, dlaczego wordpress nie „narzeka” w pierwszej kolejności, a następnie proponuje użycie alternatywy FTP. Teraz jest to jak „funkcja”, która nagle zostaje wprowadzona.