# ISP3 3.x Apache2 Worker



## TychoBLN (3. Aug. 2008)

Hallo,

ich würde gerne wissen wie die Unterstützung vom apache2 - worker ist?!

Soweit ich es gesehen hatte, ließ sich ja php5 als fastcgi einstellen.

Grüße
Tycho


----------



## Till (4. Aug. 2008)

Apache2 als Worker sollte kein Problem sein, habe es aber noch nicht getestet.


----------



## TychoBLN (4. Aug. 2008)

ok... dann probier ich mal rum ob ich das zum Laufen bekomme


----------



## TychoBLN (4. Aug. 2008)

ich hab jetzt erstmal versucht php5 als fastcgi für einen normalen Vhost zum laufen zu bekommen.



> <VirtualHost *:80>
> DocumentRoot /var/clients/client0/web1/web
> ServerName bla.de
> ServerAdmin webmaster@bla.de
> ...


so funktioniert es... 

Wenn ich das Ganze über die Ispconfigoberfläche machen lasse, funktioniert es überhaupt nicht


----------



## Till (4. Aug. 2008)

Was sind denn die exakten Fehlermeldungen, die Du erhältsts wenn Du es von ISPConfig konfigurieren lässt?


----------



## TychoBLN (4. Aug. 2008)

es gibt keine fehlermeldung. Es wird mod_php verwendet.


----------



## Till (4. Aug. 2008)

Steht in der MySQL Datenbank in der Tabelle web_domain im Feld php wirklich fast-cgi drin? Außerdem musst Du mod-php in Deiner Apache Konfiguration deaktivieren, mit a2dismod, so dass es nicht mehr geladen ist.


----------



## TychoBLN (4. Aug. 2008)

ja. steht so in der datenbank drinne.
auch unter /etc/apache2/sites-available

wenn ich mod-php deaktiviere krieg ich die phptestseite zum download.
eine fehlermeldung in den logs gibt es nicht

das ispconfiginterface will dann auch nicht mehr


----------



## Till (4. Aug. 2008)

Du kannst mal Folgendes probieren. Editiere mal die Datei:

/usr/local/ispconfig/server/conf/vhost.conf.master

Dort findest Du eine Sektion für php-fcgi. Wenn Du die durch Deine Version austauschst, müsste es eigentlich gehen, wenn Du ein neues Web anlegst oder das bestehende bearbeitest. Ich habe das mal in den Bugtracker mit aufgenommen, wäre aber nett wenn Du es bei Dir noch mal ausprobieren könntest.


----------



## TychoBLN (4. Aug. 2008)

ah danke für den hinweis: ansonsten hack ich meine einstellungen rein, aber ich vermute ja dass du mit deiner config was gedacht hast 

funktioniert den fastcgi / cgi / suphp bei dir mit ner frischen installation?

und äh... das ispconfiginterface geht leider nicht ohne mod_php aktiviert?!


----------



## TychoBLN (4. Aug. 2008)

könnte man eigentlich einen php umschalter relasieren? also php4 / php5 umschalter?

wenn man verschiedene starter verwendet sollte das gehen


----------



## Till (4. Aug. 2008)

Die SuPHP Implementierung ist nicht von mir sondern einem anderen Entwickler. Soweit ich weiß, hatte er mod_php garnicht installiert und soweit ich mich erinnere schreibt der Installer etwas anderen Code für das ISPConfig Interface, wenn fastcgi zum Einsatz kommt. Dü müsstest nach der Deaktivierung von mod_php also möglicherweise nochmal ein update rüber laufen lassen und auswählen, dass die Dienste neu konfiguriert werden sollen.

Ich habe bei mir hier auf dem Testsystem im Moment kein fcgi, daher kann ich Dir nicht sagen, ob nicht doch irgend was in der aktuellen Beta bei fcgi nicht geht.

Wenn aber Dein Ansatz auch bei vorhandenem mod_php geht, dann würde ich das aktuele Config Schema ggf anpassen, da es die Konfiguration flexibler macht.


----------



## Till (4. Aug. 2008)

Zitat von TychoBLN:


> könnte man eigentlich einen php umschalter relasieren? also php4 / php5 umschalter?
> 
> wenn man verschiedene starter verwendet sollte das gehen


Geht sicherlich, müsste man nur mal sehen, wie man das einbaut, ohne dass es zu kompliziert in der benutzung wird.


----------



## TychoBLN (4. Aug. 2008)

fastcgi (php4)
fastcgi (php5)

wär doch simple? 

den rest probier ich mal aus. ich hab das ganze in ner virtuellen xenmaschiene installiert.


----------



## TychoBLN (7. Aug. 2008)

mit folgender config funktioniert das ispconfig interface auch mit fastcgi:

ich hab einen symlink von /usr/local/ispconfig/interface/web auf /var/www/ispconfig gemacht und außerdem den fastcgi starter nach /var/www/php-fcgi-scripts verschoben.



> <VirtualHost _default_:8080>
> ServerAdmin webmaster@localhost
> DocumentRoot /var/www/ispconfig
> 
> ...


problematisch ist, dass suexec den document root umbedingt unter /var/www finden möchte. 

Das ist auch ein problem von den angelegten virtuellen hosts.
diese werden nämlich mit beispielsweise mit: DocumentRoot /var/clients/client0/web6/web

angelegt.

Warum eigentlich? ein symlink auf /var/www ist ja vorhanden?!


----------



## Till (8. Aug. 2008)

Das Problem ist, dass die Webs unterhalb von /var/clients/client0 liegen müssen, damit ein Kunde mit einem Shell User der sein Chroot auf /var/clients/client0 gesetzt hat dort auf alle seine Webs zugreifen kann. Wenn ich das andersrum mache, also den Symlink von /var/clients/client0/ auf /var/www setze, geht das nicht.


----------



## TychoBLN (8. Aug. 2008)

die Webs können ja liegen wo sie wollen. Nur sollte in der apacheconfig der symlink von /var/www stehen und nicht /var/clients...


----------



## Till (8. Aug. 2008)

Bist Du sicher dass SuEXEC nicht auch rumzickt, wenn Du auf einen Symlink verweist? SuPHP z.B. macht da nicht mit.


----------



## TychoBLN (8. Aug. 2008)

mh, zumindest hatte ich noch keine probleme mit den ganzen symlinks. ich hab das so schon länger auf mehrern servern am laufen

suexec meckert allerdings noch mit dem ordner, wo der starter drin liegt, rum... 
da hat es sich als beste Lösung ergeben:
/var/www/starter/username/
zu verwenden. Der Ordner mit dem Usernamen kriegt dann alle Userrechte...

Möchte suPHP den webroot nicht unter /var/www haben? 

suexec müsste man selbst neu compilieren, damit das keine probleme macht.


----------



## Till (8. Aug. 2008)

> Möchte suPHP den webroot nicht unter /var/www haben?


nein, bei SuPHP ist das egal, dort setzt man das Webroot in der Config.


----------



## TychoBLN (8. Aug. 2008)

lässt sich da nicht irgend ein Kompromiss mit dem man alle varianten nutzen kann?

Ich möchte eigentlich nur den apache2 - worker mit fastcgi verwenden.

Könnte man den die "nicht funktionierenden" varianten ausblenden?


----------



## Till (8. Aug. 2008)

Der Pfad für die Kunden Webs ist in ISPConfig konfigurerbar, Du kannst ihn einfach in den Server Einstellungen im Interface ändern. Das mustt Du aber machen, bevor das erste Web bzw. der erste Kune auf dem Server angelegt wird.


----------



## TychoBLN (8. Aug. 2008)

ich glaub ich hab mich nicht richtig ausgedrückt 

die userwebs können liegen wo sie wollen. es wird ja ein symlink zum webroot auf z.b. /var/www/www.bla.de gelegt. wenn anstatt dem webroot (/var/clients) der symlink in der apacheconfig verwendet wird, ist zumindest für fastcgi alles in ordnung.


----------



## Till (8. Aug. 2008)

Dann ändere einfach die Zeile:

DocumentRoot <tmpl_var name='web_document_root'>

in:

DocumentRoot /var/www/<tmpl_var name='domain'>

in der vhost.conf.master Datei.


----------



## TychoBLN (8. Aug. 2008)

ah wunderbar 



> <tmpl_if name='php' op='==' value='fast-cgi'>
> 
> <Directory /var/www/<tmpl_var name='domain'>/web>
> AddHandler fcgid-script .php
> ...


die configurationen aus:
/usr/local/ispconfig/server/conf
müssten dann immer auf allen servern abgeglichen werden oder?

praktischer wäre es ja, wenn diese configurationsschnipsel in der datenbank für jeden server hinterlegt wären. dann müsste man nicht in den configurationsdatein rumfummeln.


----------



## TychoBLN (14. Aug. 2008)

gibt es hier schon etwas neues?

ließen sich die Konfigurationsdatein aus /usr/local/ispconfig/server/conf
ach in der Datenbank ablegen? Vielleicht so, dass man diese Global aktivieren kann und / oder für jeden Server separat?


----------



## Till (15. Aug. 2008)

> müssten dann immer auf allen servern abgeglichen werden oder?


Ja. Wobei immer sehr relativ ist, da man das ja höchstens einmal bei der Installation machen muss. Ich würde das nicht zentral ablegen, da Du dann alle Server mit der gleichen Config haben musst.



> ließen sich die Konfigurationsdatein aus /usr/local/ispconfig/server/conf
> ach in der Datenbank ablegen? Vielleicht so, dass man diese Global aktivieren kann und / oder für jeden Server separat?


Plane ich im Moment nicht, aber Du kannst ja gerne ein Plugin dafür schreiben


----------



## TychoBLN (15. Aug. 2008)

Zitat von Till:


> Ja. Wobei immer sehr relativ ist, da man das ja höchstens einmal bei der Installation machen muss. Ich würde das nicht zentral ablegen, da Du dann alle Server mit der gleichen Config haben musst.


Gut, es stimmt schon, dass sich nach der Installation nicht viel ändert. ABER wenn ich einen weiteren Webserver installiere, brauch ich nicht einfach nur ispconfig raufwerfen und die Datenbank eintragen, sondern muss auch noch schauen, welche configurationsdatein ich an der installation anpassen, beziehungsweise kopieren muss...

Da wäre eine Variante mit Datenbank praktischer. 



Zitat von Till:


> Plane ich im Moment nicht, aber Du kannst ja gerne ein Plugin dafür schreiben


Ja das wär ne Idee  Ich müsste dann nur noch ordentlich programmieren lernen..


----------



## Till (15. Aug. 2008)

> Gut, es stimmt schon, dass sich nach der Installation nicht viel ändert. ABER wenn ich einen weiteren Webserver installiere, brauch ich nicht einfach nur ispconfig raufwerfen und die Datenbank eintragen, sondern muss auch noch schauen, welche configurationsdatein ich an der installation anpassen, beziehungsweise kopieren muss..


Sehe ich nicht so. Normalerweise muss bei einer Installation keine der Config Dateien manuell geändert werden. Dass in der aktuellen Beta noch ein Fehler in einer der Dateien ist, rechtfertigt meines Eracchtens nicht die Umstellung des Dateischemas, da man dadurch eine Menge Flexibilität verliert.

Aber wie gesagt, ISPConfig 3 ist modular und plugin fähig, wenn jemand eine weitere Konfigurationsoption nachrüsten möchte, kann er das gerne tun und ich werde das Plugin dann in die offizielle Distribution aufnehmen, so dass es jedem frei steht während der Installation die Art der Konfigurationsdation zu wählen


----------

