/ Var / www ve wordpress için doğru izinler


41

Bir LAMP sunucusu kurdum ve SSH üzerinden ve "çalışıyor" sayfasına ağımın içinden (ip adresi üzerinden) ve dyndns'i kullanarak dışarıdan bir web tarayıcısından erişebiliyorum.

/ Var / www / wordpress1 / var / www / wordpress2, vb. Alt dizinlerinde yer alan bazı Wordpress projelerimiz var. WP kurmak için bu alt dizinlere bir tarayıcıdan erişemiyorum - veya (sanırım) tarayıcıdaki içeriği. Tarayıcımda 403 Yasaklanmış bir hata alıyorum.

Bunun bir izin problemi olduğunu varsayıyorum. Lütfen bana izinler için uygun ayarları söyler misiniz:

  1. Geliştiricilerin ve benim okumam / yazmamıza izin verin.
  2. WP kurulmasına izin vermek ve işini yapmak
  3. Ziyaretçilerin sitelere web üzerinden erişmesine izin verin.

Ayrıca alt klasörün aslında başka bir dahili hdd'deki klasöre bağlı olduğunu da belirtmeliyim - bunun bir fark yaratacağını düşünmüyorum, ancak açıklamam gerektiğini düşündüm.

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

İşte kullanmanın sonucudur chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Tarayıcıdan hala erişemiyorum.


Lütfen komutun çıktısını gönderin ls -la /var/www.
SirCharlo

Lütfen bu bilgileri sorunuza yazınız!
Jorge Castro

Tamam, kod
yazmayı

Tamam, iyi deneyinchown -R www-data:www-data /var/www
SirCharlo

2
Sanırım şu anki sorunun, link kullanıyor olman. Apache bağlantıları takip etmeyecek. Yapmanız gereken, bu dosyaları / var / www dizinine taşımak ve apache'yi vitrualhost'ları kullanacak şekilde yapılandırmak. Bkz. Help.ubuntu.com/10.04/serverguide/httpd.html Alternatifler, kullanmak /hdd/web/wordpressistiyorsanız Apache'yi (kök dizin) doğru şekilde yapılandırmak gerekir. Bağlantıları kullanmak için apache'yi yapılandırabilirsiniz, ancak bunu önermiyorum. Ayrıca bakınız help.ubuntu.com/community/WordPress
Panther

Yanıtlar:


81

Öncelikle, kullanıcı adınızın www-datagruba dahil olduğundan emin olmalısınız . Değilse, kullanıcı adınızı www-datagrup olarak ekleyebilirsiniz.

sudo adduser $USER www-data

Bundan sonra, / var / www sahipliğini kullanıcı adınıza değiştirmelisiniz.

sudo chown $USER:www-data -R /var/www

Bir sonraki adım, genel uygulama için, güvenlik nedeni ile 777 olarak değiştirmemeniz tavsiye edilmeli, 755 (rwxr-xr-x) olarak değiştirilmelidir.

sudo chmod u=rwX,g=srX,o=rX -R /var/www

İlgili özel izni için wordpress veya laravel veya başka bir kapsamda, o zaman sırasıyla belgeleri inceleyebilirsiniz.

Umarım yardımcı olur...


1
benim için işe yaramadı, ben ekleyeceğimsudo chown www-data:www-data -R mywordpressdirectory/
Louis

Mülkiyeti değiştirdikten sonra, izni de değiştirmelisin. İznini 755 olarak mı değiştirdin?
metamorph

1
O yaptı chmod. Yapışkan bitli izinleri 755'e değiştiriyor (www-
data'ya

Kısa ve tatlı bulabildiğim en iyi açıklama. Teşekkürler.
Banago

1
Bu nedenle, WordPress'in yazma iznine sahip olmayacağı için eklentileri / temaları vb. Yönetici panelinden yükleyemez / kaldıramazsınız.
Igor Skoldin

3

Görünüşe göre Ubuntu Sunucu Rehberinde nasıl önerildiği:

Bölüm 11. Web Sunucuları.

1.4. Yazma İznini Paylaşma

Birden fazla kullanıcının aynı dizine yazabilmesi için ortak olarak paylaştığı bir gruba yazma izni verilmesi gerekecektir. Aşağıdaki örnek, "webmaster" grubuna / var / www / html dosyasına paylaşılan yazma izni verir.

Kullandığım www-verileri . Sadece "webmaster" ları grubunuzla değiştirin, kullanıcıyı elbette gruba eklediğinizden emin olun.

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

Ben sadece mac masaüstümden Dreamweaver ile test ettim ve yüklenen ve değiştirilen dosyalar vb. Yüklendi ve değiştirildi ve bir istisna dışında doğru izinleri korudu, yerel kullanıcı www-data ile birlikte yeni dosyaların sahibi oldu; html dizini sahipliğini root olarak korur fakat yerel kullanıcı tarafından düzenlenebilir.

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

Umarım bu işleri temizler ve yorgunluğa yardımcı olur, çünkü her zaman bu durumdan bıktığımı biliyorum, ama artık bana açık.

Oh ve ftp'nize erişmek için sftp tuşlarını kullanmanızı şiddetle tavsiye ediyorum, benim için çok iyi çalışıyor ve PureFTP'ye ya da dosyaları web sitesine teslim etmek için başka güvensiz yöntemlere gerek yok. Digital Ocean sitesinde, sunucunuzu ssh anahtarlarıyla güvenceye almakla ilgili güzel birkaç ders var:

Linux Sunucusunda SSH Anahtar Tabanlı Kimlik Doğrulamayı Yapılandırma


1) dosyalarda setgid bitleri bırakır. Tuhaf görünüyor, hiçbir şey yapmıyor, kullanıcılar dosyaları çalıştırılabilir hale getirip çalıştırabilirse güvenlik sorunlarına kapı açar. Ancak, dosyalarda setgid kullanmaktan memnunsanız, finds karmaşık ile değiştirin sudo chmod -R g=srwX /var/www/html.
temoto

2) Çok fazla find -exec chmoddosyanız varsa, zaman alan ve sisteme gereksiz baskı yapan her dosya için ayrı bir program oluşturulacaktır. Çözüm: sudo find /var/www/html -type f -print0 |sudo xargs -0 chmod g=rw. xargs, tek bir örneğine mümkün olduğu kadar çok dosya yolu beslemeye çalışacaktır chmod.
temoto

0

Apache'nin /hdd/web/mediave için haklarına sahip olup olmadığını kontrol edin /hdd/web/wordpress.

Çalıştırmak:

chmod o+x /root /root/site /root/site/about

Ayrıca, Apache'nin dosya sistemindeki dizine erişime izin verecek şekilde yapılandırılması gerekir. Bu apache yapılandırma dosyalarına bir direktif ekleyerek bir sistem yöneticisi tarafından yapılmalıdır (httpd.conf).

Gerçek dizin web kökünün içinde olduğu için erişilebilir olması gerekir, ancak dizin için FollowSymLinks etkinleştirilmemiş olabilir - bunun da yönergeye eklenmesi gerekir.

Http://httpd.apache.org/docs/2.0/mod/core.html#directory adresine bakın.


Herkese teşekkürler ... Direniş yolu ile gitmeye karar verdim ... semboliklikleri kaldırdım. Her şey mükemmel çalışıyor.
dpbklyn

0

Ubuntu için instalasyon rehberinin okunması .

chown -R www-data /usr/share/wordpress

Belki de dosyaları açmayı denemek yerine bu şekilde kurmak daha kolay olabilirdi /var/www

https://help.ubuntu.com/community/WordPress ...

WordPress Apache üzerinde çalışan herhangi bir şekilde ... değil mi? Eğer bu şekilde yapmak istiyorsanız .. sen @metamorph yapın göstermek bir sonra vermek iznin apache2 üzerinde httpd.confböyle:

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

ve sonra default-server.conf.

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

Belki de adım adım yapmak en iyisidir https://help.ubuntu.com/community/WordPress

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.