Wie konfiguriere ich Apache2 mit symbolischen Links in / var / www /?

14

Ich möchte auf meinem Ubuntu (14.04) einen lokalen Webserver einrichten. Also habe ich die gesamte Software installiert, um einen LAMP-Server zu bekommen.

Das Problem ist, dass ich beim Erstellen meiner virtuellen Hosts etwas falsch mache. Ich wollte verschiedene Subdomains auf meinem Localhost erstellen. So zum Beispiel site1.localhost und site2.localhost.

In meinem /var/www/Telefonbuch habe ich einen symbolischen Link "site1" angelegt, zu dem ich gehe /home/user/Workspaces/site1.

In meiner Apache-Datei error.log wurde der folgende Fehler angezeigt.

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

In meiner Apache-Konfiguration habe ich:

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

Ich denke also, dass mit den Berechtigungen der Ordner etwas nicht stimmt. Ich habe bei Google gesucht und ein paar Leute mit demselben Problem gefunden, aber alle Antworten, die dort angegeben wurden, haben nicht geklappt. Ich habe der www-Datengruppe und ähnlichen Dingen meinen eigenen Benutzernamen hinzugefügt.

So ls -la /var/wwwkehrt zurück:

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/

und ls -la /home/juul/Workspaces/site1kehrt zurück:

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

Hoffentlich kann mir jemand dabei helfen :-)

user300279
quelle

Antworten:

5

Diese Berechtigungen verhindern den apacheZugriff auf Sie

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

Sie müssen Ausführungsberechtigungen für andere Benutzer erteilen:

chmod o+x /home/juul/Workspaces/

(und vielleicht auch auf /home/juul/).

muru
quelle
Stellen Sie laut @muru-Antwort sicher, dass alle enthaltenen Verzeichnisse über die Berechtigung "x" verfügen. Wenn man nicht hat, dann wird es nie funktionieren
dawez
3

Ich habe eine Standard-Apache-Installation am 14.04. Es gibt keine Dateien oder Verzeichnisse, in denen "www-data" angegeben ist. Hast du das alles selbst geändert? Es gibt eine Menge veralteter oder einfach falscher Informationen zum Einrichten von Webservern. Seien Sie also vorsichtig, wem Sie folgen, und machen Sie rückgängig, was nicht funktioniert.

Das heißt, "site1" sollte sich in Ihrem htmlVerzeichnis befinden und Ihnen gehören. Es muss nicht unbedingt ein Symlink sein. Sie können ein anderes Verzeichnis in der Konfigurationsdatei angeben. Etwas wie das:

# 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>
Marty Fried
quelle
1

Lösung für: Die symbolische Verbindung nicht erlaubt oder Link - Ziel nicht erreichbar: /var/www/html/mySymbolicLink.

Dies ist eindeutig ein Problem mit den Berechtigungen. Das Problem ist, dass der HTML-Code in Ihrem Home-Verzeichnis Ihrem Benutzer gehört und der Apache-Server von einem anderen Benutzer ausgeführt wird, sodass er nicht auf Ihr Home-Verzeichnis zugreifen kann.

Die Lösung wäre dann, den Benutzer, der Apache ausführt, zu Ihrer Gruppe hinzuzufügen, normalerweise derselbe wie Ihr Benutzername. Also habe ich es in meiner CentOS-Box gemacht als:

sudo usermod -a -G dev apache

Fügen Sie den Benutzer apache zur Gruppe dev hinzu. Jetzt muss ich Ausführungsberechtigungen geben.

In /home:

chmod g+x dev -R

Dadurch wird meinem Ordner nur für die Mitglieder der Gruppe die Ausführungsberechtigung erteilt. Und das ist es. Sie müssen den Apache-Benutzer für alles ändern, was auf Ihrem Webserver ausgeführt wird. Ich glaube, für Ubuntu ist dies der Benutzer www-data.

Roberto Aguilar
quelle