[Apache2] MPM-Modul worker und Confixx

Apache, Lighttpd, nginx, Cherokee
Post Reply
gleitz
Posts: 44
Joined: 2004-01-26 21:48
 

[Apache2] MPM-Modul worker und Confixx

Post by gleitz »

Guten Abend,

zur Zeit betreibe ich das 4-Gestirn Apache2, php 4.3.3, MySQL 4.0.17 und Confixx 2.

Direkt nach dem einrichten von Confixx und phpMyAdmin gab es überhaupt keine Probleme mit Confixx und phpMyAdmin. Seit mein Forum unter dem Kunde web1 läuft, stellt sich ständig das Problem ein, das beim Aufruf der Confixx-Seiten es zu Fehlermeldungen kam. Das gleiche mit phpMyAdmin.
Warning: Unknown(): open_basedir restriction in effect. File(/home/www/confixx/html/admin/index.php) is not within the allowed path(s): (/home/www/web1/) in Unknown on line 0

Warning: Unknown(/home/www/confixx/html/admin/index.php): failed to open stream: Operation not permitted in Unknown on line 0

Warning: (null)(): Failed opening '/home/www/confixx/html/admin/index.php' for inclusion (include_path='.:/usr/local/php/lib/php') in Unknown on line 0
Wenn ich mehrmals die Seite neu lade, erscheint irgendwann eine funktionierende Seite.

Den safe_mode von php, hier für web1, habe ich mit einem Eintrag in der Virtualhost über Confixx deaktivert.

Ich kann im Moment keinen Fehler finden, der dieses Verhalten verursacht. Auch das Forum hat mir in dieser Richtung bis jetzt weder eine direkte Hilfestellung geliefert, noch auch nur einen Ansatz um das Problem zu lösen, wobei ich nicht der einzige mit diesem Problem bin.

Bis jetzt wurde das Problem ja immer nur aus Sicht von php und Confixx betrachtet. Ich habe mir deshalb man die Mühe gemacht und mir Apache2 näher betrachtet.

Ich selber benutze das mpm_worker Modul, wie auch viele andere bestimmt hier auch. Es wird ja auch ausreichend immer darauf hin gewiesen.
Das worker Modul erzeugt doch eine variable Anzahl an Kindprozessen und diese haben immer eine fest definierte Anzahl an Thread Prozessen. Kann es sein, wenn ich eine Confixx-Webseite öffne, dann ist die Warscheinlichkeit groß durch die hohe Last durch das Forum, das ich auf einem Kindprozess hänge der unter dem User web1 läuft und nicht unter dem User confixx? In dem Moment stimmen ja die ganzen lokalen php-Einstellungen nicht mehr. Das würde für mich erklären warum die Fehlermeldung Warning: Unknown(): open_basedir restriction in effect. File(/home/www/confixx/html/admin/index.php) is not within the allowed path(s): (/home/www/web1/) in Unknown on line 0 erscheint.

Ist das worker Modul letztendlich ungeeignet für eine Umgebung mit mehreren Usern?

Naja, mit dem prefork Modul möchte ich ich mich nicht beschäftigen. Da hätte ich mir die Arbeit für den Umstieg nicht machen brauchen.

Wie sieht es eigentlich aus dem mpm_perchild? Wenn ich das ganze jetzt richtig verstanden habe, verwaltet es nicht die Anzahl der Kindprozesse dynamisch, sondern die Anzahl der Threads? Damit hätte man auch eine Modul das sich der Belastung anpasst.
Es soll doch auch gleichzeitig die Möglichkeit einzelne Kindprozesse unter verschiedener Benutzer- und Gruppenkennung laufen zu lassen.
Mit dem perchild Modul dürfte es doch das Problem mit Confixx nicht mehr geben und man hätte doch auch die Vorzüge einer dynamischen Leistungsanpassung.

Sehe ich die Zusammenhänge richtig?

In diesem Sinne würde es mich auch freuen, wenn jemand Erfahrungen mit dem perchild Modul hat, ob es stabil läuft usw.

Kann ich eigentlich ohne größere Probleme umstellen? Sprich neu compilen, Apache2 stoppen, installieren und neu starten, oder wird die httpd.conf überschrieben bzw. die alte bleibt erhalten und ist unbrauchbar.
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: [Apache2] MPM-Modul worker und Confixx

Post by oxygen »

Geb jedem VHost ein open_basedir und das Problem ist weg.

btw: perchild läuft nicht stabil (wenn man es denn zum laufen bekommt) und funktioniert anders, als du verstanden hast.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: [Apache2] MPM-Modul worker und Confixx

Post by Joe User »

Verwendest Du ausschliesslich Module (Apache/PHP/Perl/...), welche threadsafe sind? Falls nicht, wirst Du das prefork-mpm nutzen müssen, siehe Apache-Docs...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
gleitz
Posts: 44
Joined: 2004-01-26 21:48
 

Re: [Apache2] MPM-Modul worker und Confixx

Post by gleitz »

Danke erst mal für eure Antworten.

@øxygen,
ich habe schon den Eintrag php_admin_value open_basedir /home/www/confixx/html für den VHost für die Domain für Confixx gemacht.
Bringt nichts, der Fehler ist immer noch vorhanden.

Ich möchte aber weder für mein Forum, noch für Confixx die Direktiven noch niedriger ansetzen. Im Moment bin ich noch alleine auf dem Server, aber es werden (zwar eine überschaubare Menge) einige mit auf den Server gehen.

@Joe User
Naja, als n00b habe ich mich schon eh geouted. :wink:
Was meinst du mit threadsafe? Ob ich suEXEC laufen habe? Ja, suEXEC läuft und php ist als DSO eingebunden. Da ich im Forum bis zu 400 User gleichzeitig Online habe und noch das Monster an CMS Typo3 mit drauf soll, habe ich mein Hauptaugenmerk auf die höchst mögliche Leistung für php gelegt. :roll:

Wenn ich das richtig verstanden habe, dann muss ich mpm_prefork nutzen.
Lässt sich das einfach umstellen. Apache2 -> Config -> make -> laufende Apache2 instand stoppen -> make install -> start, so das der Ausfall sich auf wenige Minuten begrenzen lässt.
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: [Apache2] MPM-Modul worker und Confixx

Post by oxygen »

Gleitz wrote: Wenn ich das richtig verstanden habe, dann muss ich mpm_prefork nutzen.
Lässt sich das einfach umstellen. Apache2 -> Config -> make -> laufende Apache2 instand stoppen -> make install -> start, so das der Ausfall sich auf wenige Minuten begrenzen lässt.
./configure -> make install -> rcapache restart würde auch schon reichen.
Post Reply