Apache2'yi / var / www / içindeki sembolik bağlantılarla nasıl yapılandırırım?


14

Ubuntu (14.04) cihazımda yerel bir web sunucusu kurmak istiyorum. Bu yüzden bir LAMP sunucusu almak için tüm yazılımı yükledim.

Sorun şu ki, sanal ana makinelerimi oluştururken yanlış bir şeyler yapıyorum. Yerel ana bilgisayarımda farklı alt alanlar oluşturmak istedim. Örneğin site1.localhost ve site2.localhost.

Benim içinde /var/www/dizine aramayacağım bir sembolik bağlantı "site1" oluşturdu /home/user/Workspaces/site1.

Apache error.log dosyamda aşağıdaki hatayı aldım.

[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1

Apache yapılandırmamda:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Bence klasörlerin izinlerinde bir sorun var. Google'da arama yaptım ve aynı sorunu olan birkaç kişi buldum, ancak sağlanan tüm yanıtlar işe yaramadı. Www-data grubuna kendi kullanıcı adımı ekledim ve bunun gibi şeyler.

Yani şunu ls -la /var/wwwdöndürür:

total 12
drwxrwsr-x  3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root     4096 okt  1 22:50 ..
drwxr-xr-x  2 root www-data 4096 okt  1 22:50 html
lrwxrwxrwx  1 root www-data   29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/

ve ls -la /home/juul/Workspaces/site1döndürür:

total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user     4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user        0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project

Umarım birisi bana bu konuda yardımcı olabilir :-)

Yanıtlar:


5

Bu izinler apachesize erişilmesini engelliyor

drwxrwx--- 3 user user     4096 okt 13 17:31 ..

Diğerleri için yürütme izinleri vermeniz gerekir:

chmod o+x /home/juul/Workspaces/

(ve belki /home/juul/de böyle).


muru cevabına göre, içerilen tüm dizinde "x" izninin ayarlandığından emin olun. Biri yoksa o zaman asla işe yaramaz
dawez

3

14.04'te standart bir apache kurulumum var. "Www-data" belirten dosya veya dizin yok. Bunların hepsini kendiniz mi değiştirdiniz? Web sunucularının nasıl kurulacağına dair çok eski veya sadece yanlış bilgi var, bu yüzden kimi takip ettiğinize dikkat edin ve neyin işe yaramadığını geri alın.

Bununla birlikte, "site1" htmldizinde bulunmalı ve size ait olmalıdır. Gerçekten bir sembolik bağlantısı olması gerekmez; yapılandırma dosyasında farklı bir dizin belirtebilirsiniz. Bunun gibi bir şey:

# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
    <Directory  /home/user/Workspaces/site1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /home/user/Workspaces/site1
    ServerName site1
</VirtualHost>

1

İçin Çözüm: Sembolik bağlantı değil izin veya bağlantı hedef değildir erişilebilir: /var/www/html/mySymbolicLink.

Bu açıkça izinlerle ilgili bir sorundur. Sorun, ana dizininizin altındaki html'nin kullanıcıya ait olması ve apache sunucusunun başka bir kullanıcı tarafından çalıştırılmasıdır, bu nedenle ana dizininize erişemezsiniz.

Bu durumda çözüm, apache çalıştıran kullanıcıyı normalde kullanıcı adınızla aynı şekilde grubunuza eklemek olacaktır. CentOS kutumda şöyle yaptım:

sudo usermod -a -G dev apache

Yani bu kullanıcı apache dev grubuna ekleyin. Şimdi yürütme izinleri vermem gerekiyor.

İçinde /home:

chmod g+x dev -R

Bu, klasörüme yalnızca grup üyeleri için yürütme izni verir. Ve bu kadar. Web sunucunuzu çalıştıran her şey için Apache kullanıcısını değiştirmeniz gerekecek, kullanıcının Ubuntu için olduğuna inanıyorum www-data.

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.