Fortgeschritten: VHost Kontrolle (+ Subdomain Verwaltung)

Alles, was den Apache betrifft, kann hier besprochen werden.

Fortgeschritten: VHost Kontrolle (+ Subdomain Verwaltung)

Postby TTP » 17. September 2006 16:50

Hallo liebes Apache Friends!

mal ne Frage, von alleine komm ich da auch mit der hilfe von dem Forum und Google nicht drauf...

kann ich die VHosts meines Apache auch ändern und der übernimmt mir die Änderungen irgendwie ohne einen Neustart?

geht über die httpd.conf nicht oder? Kann man das über ne Datenbank steuern oder so? Kennt sich damit jemand aus? ^^


Kurz zum Hintergrund:
ich möchte mal ausprobieren ob ich es hinbekomme auf meinem windowsrechner einen vernünftigen Server aufzubauen, mit dem im Prinzip auch Webhosting möglich sein soll, weil ich evlt. plane mir einen eigenen Server zu mieten bei Strato oder so und wenn ein user ne Subdomain erstellt wär es ja doof, wenn der Apache jedes mal neustarten muss....

GROSS und kleinschreibung ist bei mir Sinnlos ;)
Place
ohne Apachefriends wär ich in meiner Entwicklung weiter zurück ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby TTP » 17. September 2006 17:28

geht es vielleicht mit einen Perl-Skript oder so? was man in ein Default Verzeichnis packt und welches guckt welche URL aufgerufen wurde und dann das richtige unterverzeichnis anspricht? ne muss ja auch mit dem apache selbst gehen oder?

also in der form: www/aufgerufenedomain/htdocs
und www/aufgerufenedomain/subdomains/augerufenesubdomain/htdocs oder sowas?


kann mir jemand das hier evtl. erklären?

Using a Separate Virtual Host Configuration File
This arrangement uses more advanced mod_rewrite features to work out the translation from virtual host to document root, from a separate configuration file. This provides more flexibility, but requires more complicated configuration.

The vhost.map file should look something like this:

www.customer-1.com /www/customers/1
www.customer-2.com /www/customers/2
# ...
www.customer-N.com /www/customers/N


The httpd.conf should contain the following:

RewriteEngine on

RewriteMap lowercase int:tolower

# define the map file
RewriteMap vhost txt:/www/conf/vhost.map

# deal with aliases as above
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# this does the file-based remap
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1

RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1 [T=application/x-httpd-cgi]

Place
ohne Apachefriends wär ich in meiner Entwicklung weiter zurück ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby Knight1 » 17. September 2006 17:58

Also, soweit ich weiß muss man den Apache neustarten damit der die Einstellungen übernimmt oder mit reload als Parameter (also: apachectl -reload oder so ähnlich) explizite Anweisung geben dass er die Konfiguration neu einlesen soll.
Das gute daran ist dass es ohne neustart geht.
Ich gehe mal davon aus dass die ganzen Hostingsystem wie z.b. Confixx oder Plesk auch nur einen Reload der Konfiguration machen lassen. Sonst könnte man ja keine Domains usw. anlegen ohne dass der die Übernimmt.


Kai aka Knight1
PS: @ AF-Com: Bitte korrigiert mich wenn ich etwas falsch geschrieben habe.
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby TTP » 17. September 2006 18:26

hmm...
Place
ohne Apachefriends wär ich in meiner Entwicklung weiter zurück ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby H0MER » 19. September 2006 14:33

Hi ... wenn ich das richitg verstehe, möchtest Du nur die Serverkonfigurationenen neu einlesen.

Dann guck dir mal folgenden Befehl ( für den Apachen 2.0.x.x) an:

Code: Select all
apachectl -k graceful


Nachzulesen ist das hier:

http://httpd.apache.org/docs/2.0/stopping.html#graceful

mfg
H0MER
H0MER
 
Posts: 53
Joined: 11. June 2003 17:30

Postby TTP » 19. September 2006 16:02

wie kommt ich denn auf apachectl... die hab ich gar nicht?!

Ihr beimt aber auxh Wampp oder?

es geht mit "apache.exe -k restart" aber leider nur wenn der als service läuft -.-
Place
ohne Apachefriends wär ich in meiner Entwicklung weiter zurück ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby Knight1 » 19. September 2006 16:08

TTP wrote:wie kommt ich denn auf apachectl... die hab ich gar nicht?!

Ihr beimt aber auxh Wampp oder?

es geht mit "apache.exe -k restart" aber leider nur wenn der als service läuft -.-


Jetzt nochmal auf Deutsch bitte.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby TTP » 21. September 2006 19:40

Ihr meint die windows version des xampp? (wampp)
Place
ohne Apachefriends wär ich in meiner Entwicklung weiter zurück ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby Termatek » 24. September 2006 23:30

TTP wrote:es geht mit "apache.exe -k restart" aber leider nur wenn der als service läuft -.-



hm, sicher? ;)

Running Apache as a service is usually the recommended way to use it, but it is sometimes easier to work from the command line (on Windows 9x running Apache from the command line is the recommended way due to the lack of reliable service support.)


Nachzulesen hier

und dort steht ebenfalls, dass man den Apache mit "-k restart" neustarten kann ;)
Termatek
 
Posts: 20
Joined: 21. August 2006 13:12

Postby TTP » 25. September 2006 13:19

wenn ich das aber mache, passiert nüchts... :-D

why
Place
ohne Apachefriends wär ich in meiner Entwicklung weiter zurück ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby deepsurfer » 25. September 2006 15:25

Nein, bei Änderungen an VHOST muss der Apache neu gestartet werden, da
er diese Information direkt in seinen Speicher einliest.

Die Befehle die hier genannt wurden funktionieren sowohl als auch bei einer Standalone-Apache Installation oder beim XAMPP-Apache

Der -graceful restart hat die Funktion das der Apache seine configs neu einlesen soll und wenn das geschehen ist soll er seine Prozesse neu starten.

Diese Prozedur dauert je nach Rechnerleistung unter einer Sekunde.

Und "Ja" die grossen Hoster benutzen diesen Befehl auch.

Da aber die Hoster so genannte Adminpanels zur Verfügung stellen wird dieser restart (reload) befehl nach Abschicken der Änderungen im Adminpanel durchgeführt.

Ein User der zu diesem Zeitpunkt gerade einen WebContent abruft wird dies nur mit einer unmerklichen Verzögerung sehen, da aber das Insternet in seiner Strucktur ständig mit Aussetzern und Reroutings zutun hat ist es nicht weiter auffällig und der User merkt es eigentlich auch nicht.

Daher sollten auch Dateidownloads eigentlich immer über einen FTP-Server laufen, denn bei einem HTTPdownload ist es bei einem solchen reload verständlich das die Verbindung komplett abbricht.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby H0MER » 26. September 2006 07:22

Hi Leute ;)

Ein User der zu diesem Zeitpunkt gerade einen WebContent abruft wird dies nur mit einer unmerklichen Verzögerung sehen, da aber das Insternet in seiner Strucktur ständig mit Aussetzern und Reroutings zutun hat ist es nicht weiter auffällig und der User merkt es eigentlich auch nicht.


Wenn ich das falsch verstehe, was du geschrieben hast, dann korrigiere mich, aber bei einem Graceful restart wird diese Verzögerung nicht stattfinden, da der Apache Hauptthread nur seine Kinderthreads neustartet, die dann die neue Konfiguration beeinhalten.
Dies tut er aber erst, wenn dieser Thread gerade nicht "benutzt" wird.

mfg
H0MER
H0MER
 
Posts: 53
Joined: 11. June 2003 17:30

Postby deepsurfer » 26. September 2006 14:37

@Homer
Hast recht, ich hab sehr doof geschrieben...

Wie in der Anleitung von Apache.org zu lesen ist (siehe LINK weiter oben)
wird bei einem -graceful erst alle unbenutzen Childs beendet, und bei einer neuen Anfrage mit den neuen config Anweisungen gestartet.

Die eigentliche Ausgangsfrage war aber "ob man ohne Neustart den Apache dazu bringen kann geänderte Configs zu übernehmen".

Hierbei die klare Aussage "Nein", denn egal mit welcher Methode es gemacht wird, die Zeitverzögerung ist sowas von gering das es einem (zu diesem Zeitpunkt) User nicht auffällt das der Apache "neu" gestartet wurde.

Die -graceful Funktion bietet aber noch kleineren Verzögerungsfaktor was aber wiederum das "Nein" zur Einstiegsfrage unterstreicht.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Oepfel » 04. June 2007 20:58

Tach. habe das auch unter Windows Server 2k3 und Wampp 1.60a ausprobiert. Hier das Script von meiner php-Datei:

Code: Select all
exec("C:/Programme/xampp/apache/bin/apache.exe -k restart");


Leider bleibt der Befehl ohne erfolg.

Was muss ich ändern ?

Danke
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Postby Oepfel » 07. June 2007 20:23

Tach auch. Weiss denn keiner ne Idee wie ich mein Problem lösen könnte ?

Hier nochmal ordentlich beschrieben:

Ich habe mir ein php-Scriopt erstellt, mit dem ich die httpd-vhosts.conf aktualisieren kann. Damit die neu eingepflegten Daten auch übernommen werden, müsste das Script ja den Apache neu starten. Gibt es dafür eine Möglichkeit ?

Denn der Befehl
Code: Select all
C:/Programme/xampp/apache/bin/apache.exe -k restart
bringt nichtmal einen erfolg, wenn ich den über "Start"->"ausführen" mache ??

Vielen Dank
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests