PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Debian Apache2 VirtualHost Problem



Pit905
01.10.13, 22:31
Hallo,

ich möchte von lighttpd auf Apache2 umsteigen.

Nun habe ich aber das Problem dass ich eine Domain habe und die auf ein anderes Verzeichnis leiten soll als wenn man den Webserver z.b. mit der IP oder einer anderen Domain aufruft die nicht in der Config steht.

Hier ist meine Configdatei:

<VirtualHost *:80>
ServerAdmin webmaster@meinedomain

ServerName www.meinedomain.com
ServerAlias meinedomain.com

DocumentRoot /var/www/meinedomain/

<Directory /var/www/meinedomain/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>

ErrorDocument 401 /index.php?page=401
ErrorDocument 403 /index.php?page=403
ErrorDocument 404 /index.php?page=404
ErrorDocument 500 /index.php?page=500

ErrorLog /var/log/apache2/meine-domain.tld_errror.log
CustomLog /var/log/apache2/meine-domain.tld_access.log common

</VirtualHost>



<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ich habe nur alles was mit meinem Domainnamen zutun hat mal in meinedomain geändert, da ich die hier nicht veröffentlichen möchte.

Leider greift aber immer nur der erste Virtualhost mit jeder Domain und jeder IP.

Ich hatte vorgesehen dass VirtualHost 1 meine Domain abfertigt und VirtualHost2 alle anderen Domains und die IP, die nicht hier eingetragen sind.

Was mache ich falsch.

Danke im Vorraus!

nopes
01.10.13, 22:51
Logisch, beide vhosts hören auf *:80, der erste gewinnt, wenn IPs im Browser eingetippt werden. That simple.
Ich bevorzuge daher eigene IPs für jeden vhost, da sonst Namen verpflichtend sind!
<VirtualHost 192.168.1.1:80>
...
</VirtualHost>Übrigens fehlt dem zweiten vhost ein Name, wie soll der so je dran kommen? ;)

marce
02.10.13, 08:23
Du suchst Namebased Virtual Hosts und möchtest ggf. neben der Reihenfolge auch noch einen default-Server definieren.

Pit905
02.10.13, 11:32
Danke habs hinbekommen.

nopes
02.10.13, 12:10
Zwei mögliche Varianten:
1. IP basiert (http://httpd.apache.org/docs/2.2/de/mod/core.html#virtualhost)

<VirtualHost 192.168.1.1:80>
...
</VirtualHost>

<VirtualHost _default_:80>
...
</VirtualHost>
2. Namens basiert (http://httpd.apache.org/docs/2.2/de/vhosts/name-based.html)
NameVirtualHost *:80
<VirtualHost *:80>
...
</VirtualHost>

<VirtualHost *:80>
...
</VirtualHost>
[3. Kombination aus IP und Name - bin mir nicht sicher daher in Klammern, sollte aber gehen:
NameVirtualHost *:80
<VirtualHost 192.168.1.1:80>
...
</VirtualHost>

<VirtualHost _default_:80>
...
</VirtualHost>]