Śledzę zmiany uprawnień do plików «WordPress Codex , ale kiedy próbuję zaktualizować i / lub zainstalować plugin
i / lub theme
przejść wp-admin
, otrzymuję następujące informacje:
Aby wykonać żądaną akcję, WordPress musi uzyskać dostęp do twojego serwera internetowego. Wprowadź dane logowania FTP, aby kontynuować. Jeśli nie pamiętasz swoich danych logowania, skontaktuj się z usługodawcą internetowym.
z poziomu systemu plików:
# ls -ld wp-content/ wp-content/plugins/ wp-content/themes/
drwxrwxr-x. 6 root apache 4096 Jun 2 12:01 wp-content/
drwxrwxr-x. 28 root apache 4096 Jun 2 00:00 wp-content/plugins/
drwxrwxr-x. 11 root apache 4096 May 11 16:34 wp-content/themes/
#
httpd
działa jako apache
:
$ ps auxw | grep httpd
root 20158 0.0 0.1 533080 26192 ? Ss 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20233 0.0 0.2 612608 34908 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20234 0.0 0.2 538772 46904 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20235 0.0 0.1 536832 24268 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20236 0.0 0.2 626272 35640 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20237 0.0 0.0 535296 9592 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20322 0.0 0.1 537088 26620 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20380 0.0 0.2 626060 33816 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20429 0.0 0.1 538216 29184 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20447 0.0 0.2 629380 43180 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20448 0.0 0.2 626172 35224 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
alexus 24073 0.0 0.0 112652 972 pts/9 R+ 15:13 0:00 grep --color=auto httpd
$
Chciałbym móc wykonać żądane działanie ( install
i / lub update
) /wp-admin
bez poświadczeń FTP.
Jak mogę to zrobić?
plugins
themes
updates
permissions
Alexus
źródło
źródło
nobody
- to nie zadziała dla mnie z powoduhttpd
uruchomienia jakoapache
.apache.apache
lubroot.apache
nie zrobiłoby żadnej różnicy, o ilehttpd
działa jakoapache
iapache
„suid
jest częściąapache
gid
” s grupie, to wszystko jedno, bo moje uprawnienia ustawioneg+w
.Odpowiedzi:
Dodaj następujące informacje do wp-config.php:
Daj mi znać czy to ci pomogło.
źródło
Oznacza to, że WordPress ma ograniczone uprawnienia do wprowadzania zmian w folderze, który został zainstalowany.
Aby to naprawić, wystarczy podać niezbędne uprawnienia.
Uruchom następujące polecenie w wierszu polecenia Terminal / Putty / Commandline po połączeniu z serwerem za pośrednictwem SSH:
Sprawdź ten artykuł aby uzyskać szczegółowe informacje.
źródło
Mimo że posiadanie praw własności jak w
root:apache
przypadku uprawnień 775 jest całkowicie poprawne , a httpd do działania jakoapache
, Wordpress nie lubi tego. Chce być właścicielemapache
, zgodnie zwp-admin/includes/file.php
:Twój będzie:
wp_file_owner = root
temp_file_owner = apache
Jeśli $ wp_file_owner jest taki sam jak $ temp_file_owner, kontynuuj. Twój zostanie złapany w elseif, który zgodnie z komentarzem nie pozwala na usuwanie / tworzenie, ale tylko aktualizacje (zweryfikowałem to, aktualizując kod wtyczki z Wordpress i działało).
Uwaga: Nie przeglądałem dokładnie kodu, to tylko moja szybka interpretacja. Miałem ten sam problem i po zmianie użytkownika użytkownik: grupa, dzięki czemu użytkownik httpd jest także właścicielem pliku, nie pytał już o poświadczenia FTP.
źródło
www-data
dla mnie pracował. Funny WordPress!Nie jest to bezpośrednia odpowiedź, ale prawdopodobnie trzeba powiedzieć - jest to jeden problem, którego należy unikać, chyba że mówisz o rozwoju lokalnym, w którym to przypadku możesz po prostu ustawić uprawnienia na 777.
Powodem jest to, że jeśli serwer WWW może zastąpić kod, to każdy działający na nim złośliwy kod będzie mógł to zrobić. Ryzyko jest o wiele większe niż wygoda zaoszczędzenia kilku sekund bez konieczności wpisywania poświadczeń ftp.
źródło
Chociaż pytanie nie jest już tak nowe, chcę dodać moje dwa centy również w tej sprawie.
Wiele ppl ma Centos (7) na swoim serwerze VPS i następujące linie kodu mogą rozwiązać ich problem.
Imho ma wszystko do czynienia z SELinux, który powstrzymuje WordPressa od wykonywania swojej pracy zgodnie z życzeniem. Wyjaśnia, czym jest SELinux i co robi. Do Twojej wiadomości wstęp zaczyna się od:
Tylko 3 kroki do śledzenia:
chcon -R -t httpd_sys_content_t /var/www/html/wordpress
chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
Nie powiem, że to pomaga wszystkim, ale dla tych, którzy nie wyłączyli SELinux, powinno to być ulgą.
Twoje zdrowie
Uwaga: dostosuj się do własnych potrzeb (czyli ścieżka do WordPressa)
edit: pamiętaj, aby usunąć linię,
define("FS_METHOD", "direct");
gdy jest / była używana,wp-config.php
ponieważ absolutnie nie da się tego zrobić, gdy powyższe linie kodu robią, co chcesz.źródło
W moim przypadku rozwiązałem ten problem, przechodząc z GIT z powrotem do trybu FTP.
Nigdy więcej ostrzeżeń.
Być może pomoże to również komuś innemu.
źródło