it-swarm.com.de

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

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/ -Verzeichnis habe ich einen symbolischen Link "site1" erstellt, der zu /home/user/Workspaces/site1 führt.

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 dem gleichen Problem gefunden, aber alle Antworten, die dort angegeben wurden, haben nicht funktioniert. Ich habe der WWW-Datengruppe und ähnlichen Dingen meinen eigenen Benutzernamen hinzugefügt.

Also ls -la /var/www gibt 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/site1 gibt 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 :-)

14
user300279

Diese Berechtigungen verhindern, dass Apache auf Sie zugreift

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/).

5
muru

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. Achten Sie also darauf, wem Sie folgen, und machen Sie rückgängig, was nicht funktioniert.

"Site1" sollte sich jedoch im Verzeichnis html 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>
3
Marty Fried

Lösung für: Symbolischer Link nicht erlaubt oder Linkziel 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 läuft. Ich glaube, für Ubuntu ist der Benutzer www-data.

1
Roberto Aguilar