# Fragen zu mod_vhost_alias



## fanste (5. November 2006)

Hi,

Ich habe mivch etwas über mod_vhost_alias schlau gemacht und es auch zum Laufen bekommen. Momentan sieht das ganze so aus

```
<VirtualHost *:80>
    UseCanonicalName off
    servername %1.localhost
    VirtualDocumentRoot C:/server/htdocs/mod_vhost_alias_test/%1.1/%1
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/server/htdocs/mod_vhost_alias_test/localhost"
</VirtualHost>
```

Läuft einwandtfrei. 
Bei "localhost" würde C:/server/htdocs/mod_vhost_alias_test/localhost benutzt.
Bei "test.localhost" würde C:/server/htdocs/mod_vhost_alias_test/t/test/ benutzt.

Wenn jetzt aber eine Subdomain aufgerufen wird, zu der es noch keinen Ordner gibt, bzw, die nicht in Verwendung ist, wird ja ein 404 Fehler ausgespuckt. Wie kann ich das am Besten verhindern? Ich habe schon ein paar Dinge ausprobiert, aber es hat noch nichts zum Erfolg geführt.

Ich hoffe ihr könt mir da helfen.


----------



## fanste (6. November 2006)

Zu dem noch bestehenden Problem kommt nun noch ein weiteres: Wie kann man jetzt noch für jeden vHost andere PHP EInstellungen haben, ohne dafür jetzt extra eine htaccess in das jeweilige Verzeichnis legen zu müssen?

Wären es normale vHosts, wüsste ich ja wie das geht, aber so?!

Geht das überhaupt? Oder gibt es eine bessere Lösung, wie man als Gratishoster via Subdomains Webspace anbieten kann, ohne dafür massenhaft vHost Einträge zu erstellen? Es geht nämlich auf alle Fälle um die Performance. 

Oder wenn das so, wie ich es mir gerade vorstelle nicht geht, kann man dann in einem extra Verzeichnis eine htaccess/php.ini erstellen die dann eingebunden wird? Das könnte ja dann ein Verzeichnis sein, auf das der User keine Zugriffsrechte hat.
Also so in etwa

```
<VirtualHost *:80>
    UseCanonicalName off
    servername %1.localhost
    VirtualDocumentRoot C:/server/htdocs/mod_vhost_alias_test/%1.1/%1/html
    
    #Ordner für Webspace Einstellungen auf den der User keine Zugriffsrechte via FTP/Web/... hat
    PHPIniDir C:/server/htdocs/mod_vhost_alias_test/%1.1/%1/config
</VirtualHost>
```
Nur das dieses Beispiel nicht so ganz klappt.


----------



## fanste (7. November 2006)

Ok, habe nun herausgefunden, dass man keine extra php.ini einbinden kann. Aber was ist mit "normalen" Dateien. Wenn es jetzt eine htaccess Datei wäre, die man im Verzeichnis 
C:/server/htdocs/mod_vhost_alias_test/%1.1/%1/config
findet, kann man die beliebig einbinden?

Also ala Include oder etwas vergleichbarem. Denn Include funktioniert nicht. Apache startet dann nicht mehr. Kann es sein, dass alles was bei Include steht zum Start geparst wird und man damit nicht zur Laufzeit Dateien einbinden kann?

Und wie kann ich festlegen, welche php Einstellungen via htaccess geändert werden dürfen?

PS: Wo seit ihr Apache-Profis alle? Wenn man euch braucht ist nie einer zur Stelle


----------



## Dr Dau (8. November 2006)

Hallo!


fanste hat gesagt.:


> PS: Wo seit ihr Apache-Profis alle? Wenn man euch braucht ist nie einer zur Stelle


Das frage ich mich auch schon seit letztem Jahr. 

Zum 404 Fehler:
Ich würde z.b. ein PHP-Script als ErrorDokument 404 anlegen, welches einfach per header() auf die Homepage weiterleitet.
Damit dieses nicht auch bei den vHosts passiert (z.b. bei Deadlinks), würde ich für diese ein "Standard" ErrorDokument 404 in der VirtualHost Direktive festlegen.
(Ist nur so ein Gedankengang von mir und nicht getestet.)

Was die php.ini angeht:
Es soll möglich sein ebenfalls in der VirtualHost Direktive die Konfiguration vorzunehmen.
Die Zauberwörter sind php_admin_flag und php_admin_value (siehe hier).
Ob und in welchem Umfang sich damit Konfiguratiosänderungen via .htaccess (oder direkt im PHP-Script) unterbinden lassen, kann ich Dir leider nicht sagen.
(Ist ebenfalls nicht getestet, sondern nur erlesen.  )

Gruss Dr Dau


----------



## fanste (8. November 2006)

Das Problem ist, dass die PHP Einstellungen bei jedem vHost anders sind. Darum kam mir die Idee mit dem einbinden einer Datei, die die PHP Einstellungen via php_value setzt. Weiß aber nicht wie. Momentan arbeite ich mich mal in den Source des Moduls ein. vll kann ich es ja so umschreiben, dass es für uns passt ^^

EDIT:
Soweit so gut. Nur eine Sache bräuchte ich noch um den Code zu 100% verstehen zu können und zwar die Apache2 API (Doku). Am Besten in Deutsch. Weiß jemand woher ich die bekomme. Hab da irgendwie nicht das richtige gefunden.
Die 1.3 hab ich gefunden. Aber ich habe gehört, dass sich einiges geändert haben soll von 1.3 nach 2


----------

