PLESK 8 / schieriges Problem - Expertenfrage
Posted: 2006-07-05 17:28
Folgendes Szenario:
Domain: domain.tld
es werden zwei Subdomains angelegt:
test1.domain.tld
test2.domain.tld
alle anderen Sundomains also *.domain.tld sollen auf das Hauptverzeichnis von domain.tld geroutet werden.
In vhost vereinfacht dargestellt könnte man das Problem wie audrücken oder lösen, bzw. es wäre eigentlich gar kein Problem:
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test1.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test1/httpdocs
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test2.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test2/httpdocs
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName domain.tld:80
ServerAlias *.domain.tld
DocumentRoot /srv/www/vhosts/domain.tld/httpdocs
</VirtualHost>
Dieses einfache Beispiel erfüllt 100%-tig die gestellten Anforderungen. Von grundlegender Bedeutung ist dabei die Reihenfolge der virtuellen Hosts. Würde man den letzten vHost an den Anfang setzten, dann würden die vHosts test1 und test2 nicht mehr funktionieren, da die Wildcard zuerst dran wäre d.h. die Wildcard-Domain muss auf jeden Fall ganz am Ende stehen.
Hier tritt auch das eigentliche Problem mit Plesk auf. Plesk macht es nämlich genau andersrum. D.h. man könnte vielleicht auf die Idee kommen daß sich das Problem mit einer eigenen vhosts.conf in dem conf-Verzeichnis von domain.tld lösen läßt, aber dem ist leider nicht so, da die Hosts im Vergleich zum o.g. Beispiel dummerweise in umgekehrtere Reihenfolge geschrieben werden d.h.
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName domain.tld:80
ServerAlias http://www.domain.tld
DocumentRoot /srv/www/vhosts/domain.tld/httpdocs
### Hier käme dann normalerweise die Include-Anweisung
### mit der Direktive ServerAlias *.domain.tld
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test1.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test1/httpdocs
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test2.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test2/httpdocs
</VirtualHost>
Die einzige Lösung des Problems wäre meines erachtens entweder den php-job, der die Datei http.include erstellt entsprechend zu ändern, oder die Domain in Plesk zu deaktivieren und anschließendin /etc/apache2/vhosts.d/ eine eigene vhostdatei für die Domain und alle Subdomains zu erstellen.
Mich würde mal interessieren, ob irgendjemand eine bessere Idee hätte. Gibt es evtl auch eine Möglichkeit eine Art Schnitschtelle in Plesk für eigene PHP-Scripte. Ich würde gerene zumindest einige Sachen umschreiben, aber ich befürchte, daß spätestens beim nächsten Update wieder alles automatisch von Plesk überklatscht wird?
Na super, habs gerade gesehen - alle PHP-Scripte sind verschlüßelt - soviel zum Thema Umschreiben.
gruss
jack
Domain: domain.tld
es werden zwei Subdomains angelegt:
test1.domain.tld
test2.domain.tld
alle anderen Sundomains also *.domain.tld sollen auf das Hauptverzeichnis von domain.tld geroutet werden.
In vhost vereinfacht dargestellt könnte man das Problem wie audrücken oder lösen, bzw. es wäre eigentlich gar kein Problem:
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test1.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test1/httpdocs
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test2.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test2/httpdocs
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName domain.tld:80
ServerAlias *.domain.tld
DocumentRoot /srv/www/vhosts/domain.tld/httpdocs
</VirtualHost>
Dieses einfache Beispiel erfüllt 100%-tig die gestellten Anforderungen. Von grundlegender Bedeutung ist dabei die Reihenfolge der virtuellen Hosts. Würde man den letzten vHost an den Anfang setzten, dann würden die vHosts test1 und test2 nicht mehr funktionieren, da die Wildcard zuerst dran wäre d.h. die Wildcard-Domain muss auf jeden Fall ganz am Ende stehen.
Hier tritt auch das eigentliche Problem mit Plesk auf. Plesk macht es nämlich genau andersrum. D.h. man könnte vielleicht auf die Idee kommen daß sich das Problem mit einer eigenen vhosts.conf in dem conf-Verzeichnis von domain.tld lösen läßt, aber dem ist leider nicht so, da die Hosts im Vergleich zum o.g. Beispiel dummerweise in umgekehrtere Reihenfolge geschrieben werden d.h.
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName domain.tld:80
ServerAlias http://www.domain.tld
DocumentRoot /srv/www/vhosts/domain.tld/httpdocs
### Hier käme dann normalerweise die Include-Anweisung
### mit der Direktive ServerAlias *.domain.tld
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test1.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test1/httpdocs
</VirtualHost>
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName test2.domain.tld:80
DocumentRoot /srv/www/vhosts/domain.tld/subdomains/test2/httpdocs
</VirtualHost>
Die einzige Lösung des Problems wäre meines erachtens entweder den php-job, der die Datei http.include erstellt entsprechend zu ändern, oder die Domain in Plesk zu deaktivieren und anschließendin /etc/apache2/vhosts.d/ eine eigene vhostdatei für die Domain und alle Subdomains zu erstellen.
Mich würde mal interessieren, ob irgendjemand eine bessere Idee hätte. Gibt es evtl auch eine Möglichkeit eine Art Schnitschtelle in Plesk für eigene PHP-Scripte. Ich würde gerene zumindest einige Sachen umschreiben, aber ich befürchte, daß spätestens beim nächsten Update wieder alles automatisch von Plesk überklatscht wird?
Na super, habs gerade gesehen - alle PHP-Scripte sind verschlüßelt - soviel zum Thema Umschreiben.
gruss
jack