[HOW-TO] Kundendomain als Subdomain unter eigener Domain während der Projektphase

BlackPixel

New Member
:o Doofer Titel, Sorry :)

Systemumgebung:

Code:
Suse 10.1
Apache2.2
PHP5
Plesk 8.2.0

Viele kennen dass: Man hat einen Kunden, der hat ne Domain, irgendwo. Für diesen Kunden soll nun die Internetpräsenz neu gestaltet werden, was auch immer. Ziel ist es dann meistens, den Kunden per KK auf seinen eigenen Server zu holen.
Nur, was kann ich dem Kunden für nen Link geben, um das neue Projekt zu sehen, Änderungen telefonisch zu besprechen, oder wie auch immer. In meinem Fall biege ich jeden Kunden (toi toi toi :)) auf TYPO3 um. Nur das läuft meistens nicht auf dem alten Kundenaccount. Dort zu basteln, und dann alles per KK umzustellen, ist auch subotpimal. Gleich nen KK und das alte auf den neuen Server kopieren? Wäre eine Möglichkeit… ich finde allerdings, keine schöne.
Nun stellt sich das Problem des virtuellen Hostes… wie komm ich da ran, ohne Domain?

Ziel ist es, durch relativ einfache, kurze Handgriffe, unter der eigenen Agenturdomain die Kundendomains als Subdomain laufen zu lassen. Wir richten den VHost in Plesk ein, und haben, noch bevor der KK für die Domain „kunde.de“ durch ist, einen netten Link den wir weitergeben können, den wir auch zum Programmieren, zB in Typo3 verwenden können:

kunde.de.Meine-Agentur.de oder www.kunde.de.Meine-Agentur.de

Sieht schick aus, kann sich jeder merken und ist am Telefon auch einfach zu verklickern ;)

Fangen wir an:

Am einfachsten schnappen wir uns eine fertige httpd.include eines vhost, und ändern diese entsprechen für unser vorhaben ab:
Code:
cp /srv/www/vhosts/domain.tld/conf/httpd.include /srv/www/vhosts/.skel/0/conf/subdom.include

Bearbeiten:
Code:
vi /srv/www/vhosts/.skel/0/conf/subdom.include

So, nun machen wir folgendes:

Wir haben eine fertige, von Plesk geparste http.include mit echten Domains drin stehen. Diese Domains ersetzen wir durch den @domain_name@ Platzhalter von Plesk. Somit wird, wenn ein neuer VHost über Plesk angelegt wird, der Platzhalter durch den Domainnamen ersetzt.
Wir machen aber noch was: Wir fügen bei Servername und Serveralias unsere Agentur-Domain hinzu, denn erst dann wird daraus eine Subdomain. Das Ergebniss könnte so ausschauen:

Code:
# ATTENTION!
# DO NOT MODIFY THIS FILE OR ANY PART OF IT. THIS CAN RESULT IN IMPROPER PLESK
# FUNCTIONING OR FAILURE, CAUSE DAMAGE AND LOSS OF DATA. IF YOU REQUIRE CUSTOM
# MODIFICATIONS TO BE APPLIED TO THE CONFIGURATION, PLEASE, PERFORM THEM IN THE
# FOLLOWING FILE(S):
# /srv/www/vhosts/@domain_name@/conf/vhost.conf
# /srv/www/vhosts/@domain_name@/conf/vhost_ssl.conf
# /srv/www/vhosts/@domain_name@/subdomains/<subdomain-name>/conf/vhost.conf

<VirtualHost 123.123.123.123:80>
        ServerName   @domain_name@.meine-agentur.de:80
        ServerAlias  www.@domain_name@.meine-agentur.de
        UseCanonicalName Off
        ServerAdmin  "srvadmin@meine-agentur.de"
        DocumentRoot /srv/www/vhosts/@domain_name@/httpdocs
        CustomLog  /srv/www/vhosts/@domain_name@/statistics/logs/access_log plesklog
        ErrorLog   /srv/www/vhosts/@domain_name@/statistics/logs/error_log
<IfModule mod_userdir.c>
        UserDir /srv/www/vhosts/@domain_name@/web_users
</IfModule>
        ScriptAlias  /cgi-bin/ /srv/www/vhosts/@domain_name@/cgi-bin/
        Redirect permanent /plesk-stat https://@domain_name@/plesk-stat
        Redirect permanent /webstat https://@domain_name@/webstat
        Redirect permanent /webstat-ssl https://@domain_name@/webstat-ssl
        Redirect permanent /ftpstat https://@domain_name@/ftpstat
        Redirect permanent /anon_ftpstat https://@domain_name@/anon_ftpstat
        Redirect permanent /awstats-icon https://@domain_name@/awstats-icon
        <IfModule mod_ssl.c>
                SSLEngine off
        </IfModule>
        <Directory /srv/www/vhosts/@domain_name@/httpdocs>
        <IfModule mod_perl.c>
        <Files ~ (\.pl$)>
                SetHandler perl-script
                PerlHandler ModPerl::Registry
                Options ExecCGI
                allow from all
                PerlSendHeader On
        </Files>
        </IfModule>
        <IfModule mod_perl.c>
        <Files ~ (\.asp$)>
                SetHandler perl-script
                PerlHandler Apache::ASP
                PerlSetVar Global /tmp
        </Files>
        </IfModule>
        <IfModule sapi_apache2.c>
                php_admin_flag engine on
                php_admin_flag safe_mode off
                php_admin_value open_basedir "/srv/www/vhosts/@domain_name@/httpdocs:/tmp"
        </IfModule>
        <IfModule mod_php5.c>
                php_admin_flag engine on
                php_admin_flag safe_mode off
                php_admin_value open_basedir "/srv/www/vhosts/@domain_name@/httpdocs:/tmp"
        </IfModule>
        <IfModule mod_fcgid.c>
                AddHandler fcgid-script .fcgi
                Options +FollowSymLinks +ExecCGI
        </IfModule>
                Options +Includes +ExecCGI
        </Directory>
Include /srv/www/vhosts/@domain_name@/conf/vhost.conf
</VirtualHost>


!!Achtung!!


In der zweitletzten Zeile wird die vhost.conf inkludiert. Wenn Ihr keine eigene vhost.conf im Skeleton habt, klammert das bitte aus.

Zur Erläuterung:

Ich nutze meine Server alle mit suphp. Damit ich unter der „kunde.de.meine-agentur.de“ Subdomain die gleichen Bedingungen habe, wie später unter der echten Domain, wird der include dringend benötigt.

Das denken hat uns Plesk nun zu 95% abgenommen. Was noch fehlt, ist, dass die subdom.conf auch in die httpd.conf aufgenommen wird. Und hier kommt eine kleine Krux: Ich habe noch keinen automatisierten Weg gefunden das von Plesk machen zu lassen. Wenn jemand einen weg kennt, bitte bescheid geben.

Also, lasst uns das aktivieren nachdem der neue vhost angelegt ist:

Code:
touch /etc/apache2/httpd.conf.local
vi /etc/apache2/httpd.conf.local

Erster Eintrag:
Code:
Include /srv/www/vhosts/kunde.de/conf/subdom.include

danach
Code:
vi /etc/sysconfig/apache2

und
Code:
APACHE_CONF_INCLUDE_FILES=""
gegen
Code:
APACHE_CONF_INCLUDE_FILES="/etc/apache2/httpd.conf.local"
ersetzen.

Danach ein
Code:
rcapache2 configtest
rcapache2 restart

und fertig ist der Schuh.

Dass hier:
Code:
touch /etc/apache2/httpd.conf.local
vi /etc/apache2/httpd.conf.local
Include /srv/www/vhosts/kunde.de/conf/subdom.include
rcapache2 configtest
rcapache2 restart
muss, sofern für den Kunden gewünscht, immer nach anlegen eines VHost mit Plesk gemacht werden… noch :)

Viel Spass beim nachbasteln :)


PS: Zusatztipp in Verbindung mit TYPO3:

Nutzt immer die ext. RealURL. Weshalb?

Nutzt im TS Setup des Projektes folgendes TypoScript:

Code:
config.simulateStaticDocuments = 0
config.tx_realurl_enable = 1
config.baseURL = http://www.kunde.de.meine-agentur.de/

So habt Ihr schon während der Projektarbeit richtige links, und könnt Sie nach Abschluss und vor dem KK entsprechend abändern:
Code:
config.simulateStaticDocuments = 0
config.tx_realurl_enable = 1
config.baseURL = http://www.kunde.de/
 
Back
Top