İstenen işlemi gerçekleştirmek için wordpress'in web sunucunuza erişmesi gerekir. lütfen ftp’nizi girin


28

Takip ettiğim Dosya İzinler «WordPress Kodeksi değiştirme , henüz olduğumda güncelleme deneyin ve / veya yükleme pluginve / veya themeiçinden wp-admin, şu alıyorum:

İstenen işlemi gerçekleştirmek için WordPress'in web sunucunuza erişmesi gerekir. Lütfen devam etmek için FTP kimlik bilgilerinizi girin. Kimlik bilgilerinizi hatırlamıyorsanız, web sunucunuzla iletişim kurmalısınız.

dosya sistemi seviyesinden:

# 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/
# 

httpdolarak çalışır 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
$ 

FTP kimlik bilgileri olmadan istenen işlemi ( installve / veya update) gerçekleştirebilmek istiyorum ./wp-admin

Bunu nasıl yapabilirim?


1
Bu bir localhost kurulumu mu? Öyleyse, bakınız: wordpress.stackexchange.com/questions/19649/…
Greg McMullen

1
@GregMcMullen hayır, bu DEĞİL bu yorumun bir wordpress dizinin ardışık değişim mülkiyete olduğunu localhost kurulum & bağlantıdan "kabul" cevabı nobodynedeniyle benim için olmaz işe - httpdolarak çalışır apache.
alexus

@alexus Şu anda dosyalarınızın root.apache'ye ait olduğu anlaşılıyor. Kimse yerine apache.apache denedin mi?
Tim Malone

@TimMalone dosyaları / dizini ayarlayarak apache.apacheveya değiştirmeyeli root.apache, herhangi bir fark yaratmaz , sürece httpdçalışır apacheve apache's ' grubunun bir uidparçası olduğu sürece apache gid, izinlerim ayarlandığı için hepsi aynıdır g+w.
alexus

@alexus Tamam, denenecek başka bir şey - FS_METHOD 'u wp-config.php ( codex.wordpress.org/… ) ' direct 'olarak ayarlayın
Tim Malone

Yanıtlar:


52

Wp-config.php dosyasına aşağıdakileri ekleyin:

define( 'FS_METHOD', 'direct' );

Bunun sizin için nasıl çalıştığını bana bildirin.



Dosya sisteminde kötü izinleriniz yoksa benim için çalıştı. BTW wp-config.php en üstündeki ekledi
Toskan

Bu yöntemi kullanmadan önce Alexus'un gönderdiği bağlantıyı okuduğunuzdan emin olun. Bu yöntem kesinlikle işe yarıyor (benim için sorunu çözdü), ancak bu yöntemi kesinlikle paylaşılan bir barındırma ortamında veya bunu yaparak güvenliği tehlikeye atabileceğiniz risk altındaki herhangi bir ortamda kullanmamalısınız.
JamesHoux

16

Bu, WordPress'in kurulu olduğu klasörde değişiklik yapmak için sınırlı izne sahip olduğu anlamına gelir.

Bunu düzeltmek için yapmanız gereken tek şey, bunun için gerekli izinleri sağlamaktır.

Sunucunuza SSH ile bağlandıktan sonra Terminal / Putty / Komut İstemi'nizde aşağıdaki Komutu çalıştırın:

sudo chown -R apache:apache /var/www/html

Ödemeye bu yazıyı tüm detaylar için.


izinler iyi, sorumu tekrar oku)
alexus

3
chown: geçersiz kullanıcı: 'apache: apache'
numediaweb

2
Unutmayın, Apache Linux'un farklı lezzetlerinde farklı kullanıcılar olabilir. Böylece <username> gruplarını deneyebilir ve hatalı olup olmadığını görebilirsiniz, çünkü Apache için kullanıcı ve grup genellikle aynıdır. Ardından doğru kullanıcıyı kullanın. Ubuntu’da en yaygın olanı Apache dosyaları için "www-data: www-data" ya da "www: www".
MontyThreeCard

2

root:apache775 ve httpd izinlerinin olduğu gibi sahipliğe sahip olmak tamamen doğru olsa da apache, Wordpress bundan hoşlanmıyor. Sahibinin apachebaşına göre olmasını istiyor wp-admin/includes/file.php:

    // Attempt to determine the file owner of the WordPress files, and that of newly created files
   $wp_file_owner = $temp_file_owner = false;
   if ( function_exists('fileowner') ) {
      $wp_file_owner = @fileowner( __FILE__ );
      $temp_file_owner = @fileowner( $temp_file_name );
  }

Sizinkiler olacaktır:
wp_file_owner = root
temp_file_owner = apache

if ( $wp_file_owner !== false && $wp_file_owner === $temp_file_owner ) {
    // WordPress is creating files as the same owner as the WordPress files,
    // this means it's safe to modify & create new files via PHP.
    $method = 'direct';
    $GLOBALS['_wp_filesystem_direct_method'] = 'file_owner';
} elseif ( $allow_relaxed_file_ownership ) {
    // The $context directory is writable, and $allow_relaxed_file_ownership is set, this means we can modify files
    // safely in this directory. This mode doesn't create new files, only alter existing ones.
    $method = 'direct';
    $GLOBALS['_wp_filesystem_direct_method'] = 'relaxed_ownership';
}

$ Wp_file_owner, $ temp_file_owner ile aynıysa, devam edin. Başka bir deyişle, yorumunuza göre silme / oluşturma işlemine izin vermeyen, ancak yalnızca güncellemeler yakalanır. (Bunu, bir eklentinin kodunu Wordpress içinden güncelleyerek doğruladım ve çalıştı).

Not Kodun içine kapsamlı bir şekilde bakmadım, bu sadece benim hızlı yorumum. Ben de aynı problemi yaşadım ve bir kez kullanıcı: grubu değiştirdim, böylece httpd kullanıcısı da dosya sahibi olacaktı, artık FTP kimlik bilgileri istemiyordu.


Evet, sahibini www-databenim için çalışacak şekilde değiştirmek . Komik WordPress!
ankush981

1

Doğrudan bir cevap değil, ama muhtemelen söylenmesi gerekiyor - bu, yerel bir gelişmeden bahsetmediğiniz sürece çözmekten kaçınmanız gereken bir sorundur, bu durumda 777'ye izinler koyabilirsiniz.

Bunun nedeni, web sunucusu kodunuzun üzerine yazabilirse, üzerinde çalışan kötü amaçlı kodların da bunu yapabilmesidir. Risk, ftp kimlik bilgilerini girmek zorunda kalmadan birkaç saniye tasarruf etmenin rahatlığından çok daha büyüktür.


0

Her ne kadar soru artık yeni olmasa da, bu konuda iki kuruş da eklemek istiyorum.

Bir çok ppl VPS sunucusunda Centos (7) kullanıyor ve aşağıdaki kod satırları problemlerini çözebilir.

Imho'nun, WordPress'in istediği şekilde çalışmasını engelleyen SELinux ile ilgisi var. SELinux'un ne olduğunu ve ne yaptığını açıklamak çok uzağa gider . Bilginize giriş ile başlar:

Güvenlik Geliştirilmiş Linux (SELinux), çekirdek içerisinde uygulanan zorunlu bir erişim denetimi (MAC) güvenlik mekanizmasıdır.

Takip etmek için sadece 3 adım:

  • 1 Bir terminal açın (veya SSH ile sunucuya erişin)
  • 2 Aşağıdaki kod satırını ekleyin chcon -R -t httpd_sys_content_t /var/www/html/wordpress
  • 3 İkinci kod satırı ekle chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress

Sunucudan yeniden başlatma veya gerekli herhangi bir arka plan programından yeniden başlatma.

Herkese yardım edeceğini söylemeyeceğim ama SELinux'u devre dışı bırakmayanlar için rahatlama olmalı.

Şerefe

Not: Lütfen kendi ihtiyaçlarınıza göre ayarlayın (yani, WordPress'e giden yol)

edit: define("FS_METHOD", "direct");kullanıldığı / kullanıldığı zaman çizgiyi kaldırdığınızdan emin olun wp-config.phpçünkü yukarıdaki kod satırlarının istediği gibi yapması kesinlikle işe yaramaz.


0

Benim durumumda, bunu GIT'den geri FTP moduna geçirerek çözdüm.

Daha fazla uyarı yok.

Belki bu başkalarına da yardım eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.