Gentoo Installation PHP FCGID Problem

  • Hallo,


    ich versuche nach Ihrer Gentoo-Anleitung mod_fcgid ans laufen zu bekommen. Aber mit der reinen Installation scheint es ja nicht zu reichen. Was muss noch konfiguriert werden um PHP per FCGID ans laufen zu bekommen?
    Mit PHP als Apache Module läuft alles, hat nur den Nachteil das PHP als apache user läuft und somit keine schreib-/löschrechte im htdocs des users hat. Ausser man erlaubt anderen (other) das per chmod. Dies müsste man dann aber jedesmal machen, oder man konfiguriert den proftpd um, das er dies automatisch macht. Was aber nicht im Sinne des Erfinders sein sollte.
    Über eine kleine Hilfestellung wäre ich dankbar.


    Freundlicher Gruß
    C. Rizzotti

  • Hallo Herr Rizzotti,


    die Verwaltung von FCGI benötigt leider noch ein paar Änderungen in den Lua Scripten. Alternativ können Sie auch einfach SuPHP verwenden. Das geht wie folgt:


    Als erstes müssen Sie mod_suphp demaskieren (ist leider nur im Testing Zweig von Portage verfügbar läuft aber unserer Erfahrung nach stabil) für ein 64bit System wäre das der folgende Befehl:


    Code
    echo "www-apache/mod_suphp ~amd64" >> /etc/portage/package.keywords


    Als nächstes müssen die USE-Flags für SuPHP so gesetzt werden das es im sogenannten "Owner"-Mode ausgeführt wird.


    Code
    echo "www-apache/mod_suphp -mode-paranoid mode-owner" >> /etc/portage/package.use


    Jetzt können Sie SuPHP installieren


    Code
    emerge -av mod_suphp


    Jetzt noch ein wenig konfigurieren und es kann losgehen.


    In der Datei /etc/conf.d/apache2 muss in die Variable APACHE2_OPTS noch ein "-D SUPHP" (natürlich ohne die ") eingetragen werden um SuPHP zu aktivieren.


    In der Apache mod_suphp Konfigurationsdatei /etc/apache2/modules.d/70_mod_suphp.conf muss die Zeile SuPHP_UserGroup apache apache auskommentiert werden, da sonst der Apache beim Restart mit einer Fehlermeldung abbricht.


    In der SuPHP Konfiguration /etc/suphp.conf müssen auch noch ein paar kleine Änderungen vorgenommen werden.


    Zuerst muss das docroot von /var/www auf ${HOME}/htdocs umgestellt werden.


    Als Nächstes muss noch der ganze Bereich [handlers] auf die bei Ihnen installierte PHP Version angepasst werden.


    Bei mir hier auf dem Testsystem schaut das ganze dann so aus:


    Code
    [handlers]
    ;Handler for php-scripts
    x-httpd-php="php:/usr/lib/php5.3/bin/php-cgi"
    x-httpd-php5="php:/usr/lib/php5.3/bin/php-cgi"
    ;x-httpd-php4="php:/usr/lib/php4/bin/php-cgi"
    x-httpd-phtml="php:/usr/lib/php5.3/bin/php-cgi"


    Außerdem empfiehlt es sich den loglevel von info auf warn zu stellen damit das Logfile nicht bei jedem php-Script Aufruf mit 3 Zeilen


    Code
    [Wed Apr 25 14:17:02 2012] [info] Executing "/var/www/web1/htdocs/info.php" as UID 1000, GID 1000
    [Wed Apr 25 14:17:02 2012] [info] Executing "/var/www/web1/htdocs/info.php" as UID 1000, GID 1000
    [Wed Apr 25 14:17:02 2012] [info] Executing "/var/www/web1/htdocs/info.php" as UID 1000, GID 1000


    vollgespammt wird.


    Zu guter Letzt müssen Sie noch prüfen ob /var/www/ root:root gehört. Ist dies nicht der fall führen Sie bitte ein


    Code
    chown root:root /var/www


    aus.


    Ich hoffe diese Anleitung hilft Ihnen weiter.


    Für Fragen rund um LiveConfig auf Gentoo und natürlich LiveConfig allgemein stehe ich auch gern per Email ( cr@liveconfig.com ) zur Verfügung.


    Viele Grüße
    Christoph Russow

  • Bzgl. mod_fcgid dachte ich mir schon sowas, da google auch immer nur modifizierte vhost Einträge und ähnliches ausgespuckt hat.


    suPHP läuft scheinbar aber auch gut.. werd das mal weiter beobachten und testen.


    Danke erstmal für die Ausführliche Hilfe

  • So.. die ersten Test's sind gemacht. Und die Performance ist meiner Meinung nach grottig :D
    Wordpress default installation Startseite aufgerufen. Für 10 Sekunden die Tastenkombi für Seitenrefresh gehalten. Server hat nen Load von 160 und massenweise php-cgi Prozesse sind unter top zu sehen.
    Gibt es von ihrer Seite eine Idee was das sein könnte ?

  • Ja, an Ideen wird es sicher nicht scheitern :)


    Zuerst zum Testverfahren: etwas genauer als der Browser-Reload und auch besser reproduzierbar ist es, wenn Sie zum Testen das Tool "ab" (Apache Benchmark) verwenden - ich schätze mal, dass das bei Gentoo auch mit installiert wird. Damit können Sie auch große Zugriffszahlen bequem simulieren.


    Die "mäßige" Performance mit suPHP ist bekannt, ist aber technisch nicht vermeidbar: damit ein PHP-Script unter einer eigenen User-ID laufen kann, muss für jeden einzelnen PHP-Zugriff ein eigener PHP-Prozess gestartet, die Benutzer-ID geändert, das PHP-Script geparsed und anschließend ausgeführt werden. Dieses Verfahren gilt praktisch mit am Sichersten und am Einfachsten zu konfigurieren. Damit ein Account aber nicht den kompletten Webserver "abschießen" kann, sollten mit den Apache-Befehlen "RLimit_nproc" die maximale Anzahl gleichzeitiger Prozesse pro User beschränkt werden (z.B. auf 20 oder 50).


    Eine deutliche Entlastung bringt ein Opcode-Cache für PHP, wie z.B. APC oder eAccelerator. Dieser bringt unter suPHP aber gar nichts, sondern spielt seine Vorteile nur mit mod_php oder FastCGI aus (wir arbeiten bereits daran, die Methode der PHP-Ausführung über die LiveConfig-Oberfläche auswählbar zu machen).
    Wenn bei Ihnen also auch mit mod_php die Serverlast extrem ansteigt, versuchen Sie mal, die PHP-Extension "APC" zu aktivieren.


    Weitere Schritte zur Performance-Optimierung sind dann aufwendiger. Für reine Wordpress-Sites wären das z.B.
    - prüfen, ob Wordpress evtl mit "mysqli" genutzt werden kann
    - Vorschalten eines Caches wie z.B. memcached
    - "Profiling", um herauszufinden wo evtl. der Flaschenhals liegt
    Das hat mit LiveConfig direkt aber nichts zu tun, und ist im Shared Hosting auch nur sehr begrenzt durchführbar.


    Viele Grüße


    -Klaus Keppler

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!