PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Virtuelle Hosts über Apache2 richtig einrichten?


abgenervt
2014-10-22, 11:36:27
Hallo zusammen,

ich habe mir zwei virtuelle Hosts in Apache 2 eingerichtet.

Einmal eine Datei namens mydomain.conf mit dem folgenden Inhalt:

<VirtualHost *:80>
ServerName mydomain.com
ServerAlias mydomain.com
ServerAdmin irgendwas@web.de
DocumentRoot /var/www/mydomain.com/
<Directory /var/www/mydomain.com/>
Options Indexes FollowSymLinks
</Directory>
ErrorLog /var/log/apache2/mydomain.com-error.log
CustomLog /var/log/apache2/mydomain.com-access-error.log combined
</VirtualHost>

Und auf dem selben Server soll ein Wiki laufen für das es keien Subdomain gibt! Ich muss also mit mydomain.com/wiki arbeiten. Dazu habe ich den virtuelle Hosts Datei wiki.conf erstellt, mit dem folgenden Inhalt:

<VirtualHost *:80>
ServerName mydomain.com
ServerAlias mydomain.com/wiki
DocumentRoot /var/www/
<Directory /var/www/wiki/>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Errorlog /var/log/apache2/wiki-error.log
CustomLog /var/log/apache2/wiki-access.log combined
</VirtualHost>

Wenn ich jetzt nur die wiki.conf mit a2ensite lade und den Apache2 reloade, dann kann ich über mydomain.com/wiki auf das Wiki zugreifen. Gebe ich nur mydomain.com bekomme ich ein Inhaltsverzeichnis von /var/www/ angezeigt.

Lade ich jetzt noch zusätzlich den zweiten virtuellen Host, also die Datei mydomain.conf mit a2ensite ein, so lande ich bei der Eingabe von mydomain.com direkt im Verzeichnis /var/www/mydomain.com. Soweit alles gut und richtig. Doch gebe ich jetzt wieder mydomain.com/wiki ein, dann kommt auf einmal 404 Not Found.

Bevor ich also mydomain.com.conf eingeladen habe, ging es mit dem Wiki!

Wo genau liegt der Fehler? Ich hoffe Ihr könnt mir helfen.

Danke Euch.

abgenervt
2014-10-22, 11:45:38
Ich vermute mal das ein virtueller Host mit mehreren Alias betrieben wird. Daher kann ich wahrscheinlich keinen weiteren virtuellen Host nur für den Alias einrichten. Das geht wohl nur für eine Subdomain oder andere Domain.

Ich habe jetzt mal folgende Config probiert:


<VirtualHost *:80>
ServerName mydomain.com
ServerAlias mydomain.com
ServerAdmin irgendwas@web.de
DocumentRoot /var/www/mydomain.com/
<Directory /var/www/mydomain.com/>
Options Indexes FollowSymLinks
</Directory>
ErrorLog /var/log/apache2/mydomain.com-error.log
CustomLog /var/log/apache2/mydomain.com-access-error.log combined
</VirtualHost>

Alias /wiki "/var/www/wiki/"
<Directory "/var/www/wiki/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Damit klappt es jetzt!

Danke Euch trotzdem ;-)

Sollte mir da ein Denkfehler unterlaufen sein, dann sagt mir bitte bescheid.

Was noch interessant wäre, muss der Alias grundsätzlich außerhalb des VirtualHost Codes liegen oder kann er da auch mit rein? Das war nur reiner Zufall das ich das Ganze so gestaltet habe!

Birdman
2014-10-22, 12:16:04
Du hast in beiden VirtualHost den Namen "mydomain.com" konfiguriert - was soll der Apache also machen damit? richtig, er nimmt dann einfach die erste und ignoriert die zweite Config.

Und ja, es spielt dabei keine Rolle ob ein Hostname via ServerName oder ServerAlias konfiguriert wurde.

Gast
2014-10-22, 14:28:40
Apache arbeitet die configs in alphabetischer Reihenfolge ab (also den Namen der .conf-Dateien).

In deinem Fall würde sich ein mod_rewrite statt einem zweiten VHost anbieten.

Pennywise
2014-10-22, 14:57:35
Ein Unterverzeichnis ist doch keine Domain. Du solltest besser Wiki.mydomain.de nehmen. Das geht.

google
2014-10-22, 17:16:14
Da deine Domain schon auf deinen Server zeigt, kannst du selbst beliebig viele Subdomains einrichten. D.h. dafür muss dein Provider das nicht unterstützen. Wie Pennywise schon sagte, wäre das der schönere Weg. Alternativ nen ModRewrite (http://httpd.apache.org/docs/2.4/rewrite/) probieren.

fezie
2014-10-22, 17:24:18
Da deine Domain schon auf deinen Server zeigt, kannst du selbst beliebig viele Subdomains einrichten. D.h. dafür muss dein Provider das nicht unterstützen.

Kommt drauf an ob er die DNS Zone kontrolliert. Den da muss die Subdomain drin stehen oder alternativ ein Wildcard Eintrag. Ansonsten ist die Subdomain nicht aufrufbar, wenn nur die Hauptdomain einen Eintrag auf den Server hat

sei laut
2014-10-22, 18:21:24
Ich vermute mal das ein virtueller Host mit mehreren Alias betrieben wird. Daher kann ich wahrscheinlich keinen weiteren virtuellen Host nur für den Alias einrichten. Das geht wohl nur für eine Subdomain oder andere Domain.

Ich habe jetzt mal folgende Config probiert:


<VirtualHost *:80>
ServerName mydomain.com
ServerAlias mydomain.com
ServerAdmin irgendwas@web.de
DocumentRoot /var/www/mydomain.com/
<Directory /var/www/mydomain.com/>
Options Indexes FollowSymLinks
</Directory>
ErrorLog /var/log/apache2/mydomain.com-error.log
CustomLog /var/log/apache2/mydomain.com-access-error.log combined
</VirtualHost>

Alias /wiki "/var/www/wiki/"
<Directory "/var/www/wiki/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Damit klappt es jetzt!

Danke Euch trotzdem ;-)

Sollte mir da ein Denkfehler unterlaufen sein, dann sagt mir bitte bescheid.

Was noch interessant wäre, muss der Alias grundsätzlich außerhalb des VirtualHost Codes liegen oder kann er da auch mit rein? Das war nur reiner Zufall das ich das Ganze so gestaltet habe!

Du solltest ZWINGEND den ganzen Block in den Virtualhost Part reinschmeißen, da der Wiki Abschnitt ja nur für die mydomain.com gilt. Wenn er außerhalb des Virtualhost Eintrags ist, würde auch mydomain2.com/wiki das Wiki anzeigen, falls du eine weitere domain auf dem apache konfigurierst (oder eine subdomain)
Und mach bitte ein Minus ( - ) vor Indexes, sonst listet er den Dateiinhalt, wenn er keine index Datei findet.