2017-10-26 1 views
0

Ich habe vier Web-Entwicklungssysteme, zwei mit Windows 10 und zwei mit Ubuntu Linux und haben Alias-Ordner auf drei ohne ein Problem eingerichtet, aber bin derzeit unterwegs und habe Probleme mit dem vierten. Es läuft Ubuntu mit Apache2. Ein Beispiel für einen der VirtualHost-Einträge ist unten.Apache2 Alias ​​Voraussetzungen

<VirtualHost devsite.dev:80> 
    DocumentRoot /var/www/html/devsite.dev 
    ServerName devsite.dev 
    Alias /common/ /var/www/html/devsite.dev/common/ 
    <Directory "/var/www/html/devsite.dev"> 
     AllowOverride None 
     Options FollowSymLinks Indexes 
     Require all granted 
    </Directory> 
    Options FollowSymLinks 
</VirtualHost> 

Das oben genannte funktioniert nicht so was habe ich vermisst? Alle Site-Ordner einschließlich des gemeinsamen Ordners sind in/var/www/html/und ich muss etwas verpasst haben, da der Alias ​​nicht funktioniert. Mit anderen Worten, jede Site hat ihren eigenen sitename.dev-Ordner, so dass http://devsite.dev/ die Site aufruft, aber es keinen physischen Ordner innerhalb des Site-Ordners für http://devsite.dev/common/ gibt, der funktioniert, so dass ein Alias ​​benötigt wird. Ich bin mir nicht sicher, ob nachfolgende Schrägstriche benötigt werden oder nicht und ich kann mich nicht erinnern, was meine anderen Systeme haben, aber so oder so scheint es hier keine Rolle zu spielen.

Wenn ich sage, dass es nicht funktioniert, ich meine, dass der Alias-Ordner nicht im Dateimanager des PCs angezeigt wird, wie es auf allen anderen Systemen der Fall ist und die Site kann nicht mit dem Browser finden, um Dateien zu laden daraus, wie ich oben in den Beispiel-URLs gezeigt habe.

Vielleicht war mir nicht klar, dass common nicht innerhalb von /var/www/html/devsite.dev ist. Stattdessen ist es bei/var/www/html/common und es erfordert einen Alias ​​zu arbeiten. Außerdem befindet sich in der Apache 000-default.conf-Datei bereits eine DocumentRoot/var/www/html-Zeile.

+0

Warum brauchen Sie in diesem Fall sogar das '' Alias''? Das Verzeichnis existiert bereits unter '' DocumentRoot'' mit dem gleichen Namen und würde daher schon als ''/common'' gefunden werden. Wenn es nicht funktionierte, sind Sie sicher, dass Apache sogar den '' VirtualHost'' verwendet. –

+0

"Allgemein" ist ein Ordner, der von mehreren Sites gemeinsam genutzt wird und sich im Server-Stamm befindet, jedoch nicht im einzelnen Website-Ordner. Der VirtualHost funktioniert, weil die Site funktioniert. – DonP

+0

Das ist nicht, was Ihre Konfiguration sagt. Sie haben "DocumentRoot" als "/ var/www/html/devsite.dev" und das letzte Argument für "Alias" ist "/ var/www/html/devsite.dev/common /" Dies ist ein Unterverzeichnis von '' DocumentRoot'' und nicht im Server-Root. –

Antwort

0

Ich war unter dem falschen Eindruck, dass der Alias-Pfad dem System mitteilte, wo der Alias ​​erscheinen sollte, aber ich lag offensichtlich falsch, also ist hier die Antwort für andere zu sehen. Ich bin mir immer noch nicht sicher, ob die Schrägstriche funktionieren, aber wenn ich mit ihnen arbeite, lasse ich sie stehen.

<VirtualHost devsite.dev:80> 
    DocumentRoot /var/www/html/devsite.dev 
    ServerName devsite.dev 
    Alias /common/ /var/www/html/common/ 
    <Directory "/var/www/html/devsite.dev"> 
     AllowOverride None 
     Options FollowSymLinks Indexes 
     Require all granted 
    </Directory> 
    Options FollowSymLinks 
</VirtualHost>