Używam WordPress na moim serwerze na żywo, który używa SFTP tylko za pomocą klucza SSH .
Chcę zainstalować i zaktualizować wtyczki, ale wygląda na to, że musisz podać login FTP, aby zainstalować wtyczki. Czy istnieje sposób instalowania i uaktualniania wtyczek poprzez ręczne przesyłanie plików zamiast obsługiwać cały proces przez WordPress?
wp-content/plugins/
następnie z pulpitu wp przejdź do zakładki wtyczek i włącz ją.VPS
, spróbuj tego: stackoverflow.com/a/44137965/3160597Odpowiedzi:
WordPress wyświetli monit o podanie informacji o połączeniu FTP podczas próby zainstalowania wtyczek lub aktualizacji WordPress tylko wtedy, gdy nie będzie mógł
/wp-content
bezpośrednio pisać . W przeciwnym razie, jeśli twój serwer ma dostęp do zapisu niezbędnych plików, automatycznie zajmie się aktualizacjami i instalacją. Ta metoda nie wymaga dostępu FTP / SFTP lub SSH, ale wymaga skonfigurowania określonych uprawnień do plików na serwerze WWW.Spróbuje różnych metod w kolejności i cofnie się na FTP, jeśli metody Direct i SSH są niedostępne.
https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912
WordPress spróbuje zapisać plik tymczasowy w twoim
/wp-content
katalogu. Jeśli to się powiedzie, porównuje własność pliku z własnym identyfikatorem użytkownika, a jeśli jest zgodna, pozwoli ci użyć „bezpośredniej” metody instalowania wtyczek, motywów lub aktualizacji.Teraz, jeśli z jakiegoś powodu nie chcesz polegać na automatycznym sprawdzaniu, która metoda systemu plików ma być używana, możesz zdefiniować stałą
'FS_METHOD'
wwp-config.php
pliku, który będzie albo'direct', 'ssh', 'ftpext' or 'ftpsockets'
używał tej metody. Pamiętaj, że jeśli ustawisz tę opcję na „bezpośrednią”, ale twój użytkownik sieci (nazwa użytkownika, pod którą działa twój serwer WWW) nie ma odpowiednich uprawnień do zapisu, pojawi się błąd.Podsumowując, jeśli nie chcesz (lub nie możesz) zmienić uprawnień do treści wp, więc twój serwer WWW ma uprawnienia do zapisu, dodaj to do pliku wp-config.php:
Uprawnienia wyjaśnione tutaj:
źródło
getmyuid
linii 876 jest tutaj prawdopodobnie niepoprawne, ponieważ zwraca identyfikator UID właściciela skryptu, a nie modułu wykonującego skrypt. Wierzę, że tak powinno byćposix_getuid
.print_r(posix_getpwuid(posix_geteuid()));
Możesz dodać kod dowp-config
pliku.chown -R www-data wordpress/wp-content
nie działa dla mnie, alechown -R www-data wordpress
nieJak wspomniano wcześniej, żadna z poprawek perm już nie działa. Musisz odpowiednio zmienić perms ORAZ umieścić w swoim
wp-config.php
:źródło
Chciałem tylko dodać, że NIGDY nie należy ustawiać
wp-content
uprawnień ani uprawnień do żadnego folderu777
.Oto, co musiałem zrobić, aby:
1) Ustawiam własność folderu wordpress (rekurencyjnie) na użytkownika apache:
# chown -R apache wordpress/
2) Zmieniłem własność grupy folderu wordpress (rekurencyjnie) na grupę apache, tak:
# chgrp -R apache wordpress/
3) daj właścicielowi pełne uprawnienia do katalogu, tak jak:
# chmod u+wrx wordpress/*
I to zadziałało. Mój
wp-content
folder ma755
uprawnienia, btw.Wersja TL; DR:
źródło
wp-config.php
dodatkudefine('FS_METHOD', 'direct');
wp-content/
,wp-content/plugins/
.wp-content/plugins
).Pracował nad wersją 3.2.1
źródło
otwórz
wp-config.php
plik i dodaj następujący wiersz:define('FS_METHOD', 'direct');
to działa dla mnie ... Dzięki
źródło
Szybka zmiana na wp-config.php
To wszystko, ciesz się aktualizacjami WordPress bez ftp !
Metoda alternatywna:
źródło
Aby umożliwić korzystanie z SSH2 do aktualizacji i przesyłania motywów, musisz wygenerować klucze SSH i mieć zainstalowany moduł PHP SSH. Następnie WordPress wykryje, że masz dostęp do SSH2 i zobaczysz inną opcję (SSH2) wyświetlaną podczas przesyłania / aktualizacji.
1.) Upewnij się, że masz zainstalowany moduł PHP dla Debiana:
2.) Wygeneruj klucze SSH, dodanie hasła jest opcjonalne:
3.) Zmień uprawnienia, aby WordPress mógł uzyskać dostęp do tych kluczy:
Teraz dostaniesz opcję SSH2 podczas przesyłania / aktualizacji / wtyczki.
4.) Dla większej łatwości możesz skonfigurować ustawienia domyślne w swoim,
wp-config.php
co spowoduje wstępne wypełnienie poświadczeń SSH w oknie przesyłania WordPress.„Hasło” jest opcjonalne, jeśli nie skonfigurujesz hasła podczas
ssh-kengen
; to nie dodawaj tegowp-config.php
To rozwiązało mój problem. I wcale nie musiałem tego robić
chown
. Ale widziałem tę metodę w innych miejscach.Bibliografia:
źródło
Zwykle możesz po prostu wgrać wtyczkę do
wp-content\plugins
katalogu. Jeśli nie masz dostępu do tego katalogu przez SFTP, obawiam się, że utknąłeś.źródło
Możesz to bardzo łatwo uzyskać, wpisując następujące polecenie w poleceniu polecenia
lub skopiuj i wklej następujący kod w pliku wp-config.php.
Gdzie „twoja_nazwa_folderu” to folder, w którym WordPress jest zainstalowany w tym folderze.
źródło
Wykonaj następujący kod w terminalu
Aby uzyskać więcej informacji, odwiedź Wordpress na temat wtyczek instalacyjnych Ubuntu bez dostępu FTP
źródło
sudo chown -R www-data /var/www/html
Dodaj następujący kod do wp-config
FS_METHOD wymusza metodę systemu plików. Powinno to być tylko bezpośrednie, ssh2, ftpext lub ftpsockets. Zasadniczo należy to zmieniać tylko w przypadku problemów z aktualizacją. Jeśli to zmienisz, a to nie pomoże, zmień to z powrotem / usuń. W większości przypadków ustawienie go na „ftpsockets” będzie działać, jeśli nie zostanie wybrana automatycznie wybrana metoda.
(Preferencje podstawowe) „bezpośredni” zmusza go do korzystania z bezpośrednich żądań we / wy pliku z poziomu PHP, jest to obarczone otwieraniem problemów bezpieczeństwa na źle skonfigurowanych hostach. Jest to wybierane automatycznie, gdy jest to właściwe.
(Preferencje wtórne) „ssh2” wymusza użycie rozszerzenia SSH PHP, jeśli jest zainstalowane
(3. preferencja) „ftpext” to wymuszenie użycia rozszerzenia PHP PHP dla dostępu FTP, i na koniec
(4. preferencja) „ftpsockets” wykorzystuje klasę PHP Sockets do dostępu FTP
Więcej informacji na stronie: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
źródło
Jeśli korzystasz z systemu Ubuntu , szybkim rozwiązaniem, które mi pomogło, jest przekazanie własności użytkownikowi Apache (domyślnie dane www) w następujący sposób:
źródło
Zmień z
php_mod
nafastcgi
z włączonącgi
iSuEXEC
. Pracuje dla mnie.Jeśli nie działa, spróbuj zmienić
wp-content
na775
root:Dodaj do
wp-config.php
:mam nadzieję, że to zadziała
źródło
WordPress 2.7 umożliwia bezpośrednie przesłanie pliku zip (na dole strony wtyczek znajduje się link) - nie wymaga dostępu do FTP. Jest to nowa funkcja w wersji 2.7 i działa tylko z wtyczkami (jeszcze nie z motywami).
źródło
Wskrzesza stary wątek, ale jest nowa fantastyczna wtyczka o nazwie SSH SFTP Updater Support, która dodaje możliwości SFTP bez konieczności edycji
wp-config.php
pliku. Ponadto implementacja SFTP Wordpress opiera się na nieco niejasnych modułach PHP, które często nie są włączone na serwerach; ta wtyczka pakuje inną wtyczkę PHP SFTP, więc nie musisz niczego konfigurować po stronie Apache.Wpadłem na mnóstwo problemów z działaniem obsługi SFTP - ta wtyczka rozwiązała wszystkie z nich i jest po prostu fantastyczna.
źródło
Spróbuj tego
1) W
wp-config.php
dodatkudefine('FS_METHOD', 'direct');
2) Ustaw
wp-content
katalog na777
do zapisu.3) Teraz zainstaluj wtyczkę.
źródło
Odpowiedź od stereointeractive obejmuje wszystkie opcje. Chciałem tylko wspomnieć o alternatywnym sposobie korzystania z FTP. Zgaduję, że powodem, dla którego nie pozwalasz na dostęp FTP, jest bezpieczeństwo. Jednym ze sposobów rozwiązania tych problemów związanych z bezpieczeństwem jest uruchomienie serwera FTP nasłuchującego tylko w wersji 127.0.0.1
Dzięki temu możesz korzystać z FTP z poziomu WordPressa i będziesz mógł instalować wtyczki, nie ujawniając go reszcie świata. Można to również zastosować do innych popularnych aplikacji internetowych, takich jak Joomla! i Drupal. To właśnie robimy z naszymi urządzeniami BitNami i serwerami w chmurze i działa całkiem dobrze.
źródło
Polecam również wtyczkę SSH SFTP Updater Support . Właśnie rozwiązałem również wszystkie moje problemy ... szczególnie w odniesieniu do pobierania wtyczek do usunięcia przez administratora. Po prostu zainstaluj go w zwykły sposób, a następnym razem, gdy WordPress wyświetli monit o podanie szczegółów FTP, pojawią się dodatkowe pola do skopiowania / wklejenia prywatnego klucza SSH lub przesłania pliku PEM.
Jedyny problem, jaki mam, to sprawienie, by zapamiętał klucz (wypróbowałem obie metody). Nie podoba mi się pomysł szukania i wprowadzania go za każdym razem, gdy muszę usunąć wtyczkę. Ale przynajmniej na razie jest to solidna poprawka.
źródło
Tak, bezpośrednio zainstaluj wtyczkę w WordPress.
inna opcja
źródło
Możliwe jest użycie SFTP lub SSH do automatycznej aktualizacji wtyczek w WordPress, ale musisz mieć rozszerzenie ssh2 pecl. Możesz dowiedzieć się, jak to zrobić, korzystając z poniższego samouczka
źródło
Używamy SFTP z SSH (zarówno na naszych serwerach programistycznych, jak i na żywo), a ja próbowałem (choć niezbyt mocno) korzystać z funkcji przesyłania WordPress. Zgadzam się z Toby, prześlij swoje wtyczki do
wp-content/plugins
katalogu, a następnie aktywuj je stamtąd.źródło
Widziałem wiele osób zalecających ustawienie uprawnień na 777. Miałem ten sam problem jak 2 dni temu i wszystko, co zrobiłem, to dodaj to do wp-content
i
To rozwiązało mój problem z pytaniem o login / hasło dostępu do FTP.
Wcześniej musiałem ręcznie dodać wtyczkę, dodając plik .zip do folderu wtyczki, a następnie przejdź do
wp-admin/plugins
i musiałem ją zainstalować.źródło
Spróbuj tego Sprawdź, czy do folderu wp-content udzielono poprawnych uprawnień.
Edytuj wp-config.php dodaj następujący wiersz
chmod katalog „wp-content” do danych www dla pełnego dostępu.
Teraz spróbuj zainstalować wtyczkę.
źródło
Tak, możesz to zrobić.
Musisz dodać
w twoim wpconfig. Ale ta metoda nie będzie lepsza, ponieważ ma słabości bezpieczeństwa.
Dzięki,
źródło
Metoda 1: Możesz ustawić to: 1. w wp-config.php musisz napisać te linie.
Uwaga: wstaw to po zdefiniowaniu („DB_CHARSET”, „utf8mb4”).
ustaw uprawnienia lub uprawnienia wp-content na rekurencyjne 777 pełne uprawnienia, które możesz udzielić za pośrednictwem filezilla. zapisz kliknij katalog> uprawnienia> sprawdź odczyt-zapis i wykonaj, a także zaznacz Rekurencyjne w podkatalogach
Metoda 2:
lub Możesz to również ustawić
źródło
Note: put this after define( 'DB_CHARSET', 'utf8mb4' ).
konfigurowanie ftp, a nawet połączenia SFTP lub chmod 777 to zły sposób na cokolwiek innego niż środowisko lokalne. Otwarcie nawet metody SFTP wprowadza więcej niepotrzebnych zagrożeń bezpieczeństwa.
potrzebne jest prawo do zapisu do / wp-content / uploads & / wp-content / plugins / przez właściciela tych katalogów. (linux ls -la pokaże ci własność).
Domyślnym działającym użytkownikiem apache jest www-data.
chmod 777 pozwala każdemu użytkownikowi na komputerze edytować te pliki, nie tylko użytkownikowi wątku apache / php.
SFTP, jeśli jeszcze go nie używasz, wprowadzi kolejny punkt możliwej awarii z zewnętrznego źródła. Podczas gdy potrzebujesz tylko dostępu lokalnego użytkownika uruchamiającego proces apache / php, aby zrealizować cel.
Nie widziałem, żeby ktokolwiek robił te punkty, więc pomyślałem, że zaoferuję te informacje, aby pomóc nam w rozwiązaniu problemów związanych z bezpieczeństwem WP w Internecie.
źródło
Oto prosta metoda.
Wykonaj następujące polecenia.
Umożliwi to moduł mod_rewrite dla Apache
To polecenie zmieni właściciela folderu na www-data
Po wykonaniu powyższych poleceń możesz zainstalować dowolne motywy bez FTP.
źródło
sudo chown -R www-data [Wordpress Folder Location]
Dodaj
define('FS_METHOD','direct');
wo-config.phpźródło
Jedyny powód, dla którego WordPress nie pozwala na przesyłanie żadnych wtyczek za pośrednictwem pulpitu administracyjnego WordPress, gdy nie masz uprawnień do pisania w katalogu / wp-content. Pamiętaj, że twój katalog wordpress / wp-content wymaga poziomu uprawnień 0755. Istnieją różne sposoby zmiany poziomu uprawnień do folderu.
Zmiana uprawnień do plików za pomocą cPanel:
Przejdź do Menedżera plików w otwartym publicznym folderze HTML, w którym powinna znajdować się witryna Wordpress, lub otwórz katalog główny witryny, jeśli witryna znajduje się w innym folderze. W katalogu głównym WordPress przejdź do folderu wp-content; na końcu wiersza folderu wp-content ostatnie pole przenosi uprawnienia do plików dla tego folderu. Edytuj poziom uprawnień do folderu na 0755 i gotowe.
Zmiana uprawnień do plików za pomocą terminala SSH:
W swoim terminalu zlokalizuj katalog główny witryny WordPress, która w moim przypadku to / var / www / html, aby przejść do katalogu głównego WordPress, wprowadź następującą komendę:
Teraz jesteś w katalogu głównym WordPress, w którym znajduje się wymagany folder / wp-content. Aby zmienić uprawnienia do pliku, wpisz następującą komendę:
Spowoduje to zmianę uprawnień do pliku katalogu / wp-content na 0755.
Teraz nie otrzymasz komunikatu o błędzie podczas przesyłania wtyczek Wordpress przez FTP.
źródło
Najlepszym sposobem na zainstalowanie wtyczki za pomocą SSH jest WPCLI.
Należy pamiętać, że dostęp SSH jest obowiązkowy, aby używać komend WP CLI. Przed użyciem sprawdź, czy WP CLI jest zainstalowany na serwerze hostingowym lub komputerze.
Jak sprawdzić:
wp --version
[Pokaże zainstalowaną wersję wp cli]Jeśli nie jest zainstalowany, jak go zainstalować: Przed zainstalowaniem WP-CLI upewnij się, że środowisko spełnia minimalne wymagania:
Środowisko uniksopodobne (OS X, Linux, FreeBSD, Cygwin); ograniczona obsługa w środowisku Windows. PHP 5.4 lub nowszy WordPress 3.7 lub nowszy. Wersje starsze niż najnowsza wersja WordPress mogą mieć obniżoną funkcjonalność
Jeśli powyższe punkty są spełnione, wykonaj następujące czynności: Referencyjny adres URL: WPCLI
Teraz WP CLI jest gotowy do instalacji.
Teraz możesz zainstalować dowolną wtyczkę dostępną w WordPress.org, używając następujących poleceń:
UWAGA: wp cli może zainstalować tylko te wtyczki, które są dostępne w wordpress.org
źródło