Web sunucusunun yazmak için hangi Apache grubunu kullanabileceğimi nasıl kontrol edebilirim?


13

Wordpress'i çalıştırmaya çalışıyorum. Şu anda bu hata mesajını aldım:

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

bir tema yüklemeye çalışırken. Bu, ayarlanan izinlerdir/var/www/html/wp-content/upgrade/

drwxrwxr-x 3 ec2-user apache 4096 Jun 21 00:30 upgrade

chmod 777 upgradehatayı ortadan kaldırır. Ancak bu en iyi uygulama olarak kabul edilmez. Ancak, bunun da işe yarayacağını düşünüyorum ... neden olmasın?

Web sunucusu yukarıdaki izinlere dahil olmayabilir. Web sunucusunun yazmasına izin vermek için hangi grubu kullanmalıyım?

(Kurulumum Amazon EC2, httpd'li Amazon Linux AMI)

Yanıtlar:


16

Amazon EC2 hakkında hiçbir şey bilmiyorum, ancak şunları yapabilmelisiniz:

  1. Buna benzer bir komutla Apache çalıştıran kullanıcının adını alın:

    ps aux | grep apache # The username should be in the first column.
    
  2. Bu kullanıcının parçası olduğu grupları şu groups(1)komutla alın:

    groups [USERNAME]
    

İlk sütun apache'dir ve apache gruplarını döndürür: apache: apache. İlk kommanden bir çizgi şöyle görünür: apache 11171 0.0 3.4 39984 21516? S Haz20 0:02 / usr / sbin / httpd

1
Kullanıcı apache'nin dizine yazma izinleri açıkça vardır. chmod 777Sorunu çözdüğünü söylüyorsunuz , bu yüzden temalarınızı yüklemek için farklı bir kullanıcı kullandığınızı tahmin ediyorum. Wordpress'i çok iyi tanımıyorum. Bu cevaba göre kullanıcıya sahipliği değiştirmeyi deneyin www-data.
rahmu

Makaleye ve her şeye bakmak için zaman ayırdığınız için teşekkür ederiz. Wordpress'in FTP'yi işini yapmak için kullandığını fark ettiğim için gerçekten farklı bir kullanıcıydı. Bu kullanıcıyı aşağıda önerilenlere göre öğrendim ve ardından 1. adımda bulunan grup apache'sini buna ekledim. Bu çözüldü.

2

Apache grup adlarınızı bulmak için aşağıdaki komut satırı yöntemini kullanmayı deneyebilirsiniz:

WWW_GROUP=`ps axo user,group,comm | egrep '(apache|httpd)' | grep -v ^root | cut -d\  -f 2| uniq`
echo Apache group is: $WWW_GROUP

Kullanıcıyı almak için şunları kontrol edin: Komut satırından Apache kullanıcısı nasıl belirlenir?


1

chmod 777 yükseltme hatayı ortadan kaldırır.

Bu durumda ls -ld /var/www/html/wp-content/upgrade/theme_name, hassas erişim izni için kullanabileceğiniz içerik oluşturucunun kimlik bilgilerini göstermelidir.

En azından bir dosyanın sahibinin bağlantısını kaldırabileceğini garanti ettiği 1777için (olduğu gibi /tmp) kullanmak daha iyidir .


1
Hatayı ortadan kaldırın! Problem çözmede ilginç bir yaklaşım. Bu bir çözüm değil, yalan.
iharob

Orijinal yazarın metnine atıfta bulunarak "yalan" olarak adlandırdığınız şey nedir? :) veya 777 yerine en az 1777 kullanma önerisi? :) veya içerik oluşturucunun sahipliğini bulmak ve "hassas erişim izni" için kullanmak mı?
poige

Bu sisteme bir yalan, çünkü 777bildiğim hiçbir bağlamda doğru değil.
iharob
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.