Hintergrundinformationen: mod_php, CGI PHP und FastCGI

Es existieren unterschiedliche Methoden, PHP auf Linux-Server einzusetzen. Man kann im groben zwischen der Methode des Einsatzes als Apache-Modul und einmal als CGI unterscheiden. Beide Arten haben Vor- und auch Nachteile, die je nach Anwendungszweck ein mehr oder weniger hohes Gewicht haben.

  • Apache-Modul (mod_php) – Einer der Vorteile ist die relativ einfache Installation und Konfiguration und die hohe Geschwindigkeit der PHP-Prozesse; Wohl als die verbreiteste Lösung auf eigenen Servern anzusehen
  • CGI PHP – Mehrere Vorteile speziell für Hostingumgebungen wie wir Sie einsetzen: Kontrolle und Einschränkung der benötigten Systemressourcen; erhöhte Sicherheit durch spezielle Optionen; ermöglicht den Einsatz von Shellskripten. Als Nachteil kann die meist langsamere Ausführung von PHP-Prozessen im Vergleich zu mod_php genannt werden.

FastCGI – Das Beste aus beiden Welten?

Mittels FastCGI können die genannten Sicherheitsvorteile von CGI PHP ebenfalls erreicht werden und die Performance wird durch die Flexibilität von FastCGI sehr deutlich verbessert und kann – je nach Einsatzzweck – nahezu die von mod_php erreichen oder sogar übertreffen. Auch ist der Einsatz sog. Opcode-Cachingsysteme möglich. Ein Nachteil ist die relativ hohe Komplexität des Protokolls was eine langsamere Fehlersuche und Behebung auf Systemebene zur Folge hat.

FastCGI testen, dank dF-Labs

Bei uns ist FastCGI derzeit in einem Testbetrieb für alle Kunden eines Managed- oder Dedicated-Server verfügbar und steht für die aktuellste PHP-Version 5.3.8 (5-53LATEST) zur Verfügung. Ebenfalls ist der APC (Alternative PHP Cache) direkt eingebunden, so dass Sie dieses Caching-Modul in Ihren Skripten ansprechen können. Möchten Sie eine eigene PHP.INI-Datei nutzen und nicht auf APC verzichten, so finden Sie die ‚apc.so‘ zur manuellen Einbindung unter /usr/local/lib/php_modules/5-53LATEST/

Für den Einsatz von FastCGI in Ihren Skripten oder fertigen Blogs, Shops, CMS etc. ist es wichtig, dass diese auch PHP 5.3.x unterstützen und im besten Fall bereits einsetzen. Ebenfalls muss eine korrekte Erkennungsroutine implementiert sein. Ist diese nicht für ‚fpm-fcgi‘ gegeben, wird FASTCGI falsch oder nicht erkannt und es kann zu Fehlermeldungen in der Software kommen.

Weitere Informationen, was „dF-Labs“ eigentlich ist und wie Sie FastCGI für dedizierte Server testen können, finden Sie in unserem Forum unter:

In unserem Forum helfen wir Ihnen auch bei Problemen während des Tests.

Wie den meisten Programmierern und Technikfreaks 😉 bekannt sein dürfte, ist der FastCGI-Standard selbst schon älter und keine Erfindung der letzten Jahre. Als Zusatzinformation für Sie könnte es daher ganz interessant sein, dass wir die FPM SAPI Implementation von PHP einsetzen (FPM = FastCGI Process Manager). Diese wurde das erste Mal im Mai 2010 fest vom PHP-Kern-Team in PHP aufgenommen und steht seit PHP 5.3.3 und somit seit gut einem Jahr überhaupt erst offiziell zur Verfügung. Wir setzen also gezielt auf eine relativ junge und moderne FastCGI-Lösung, die auch vom PHP-Team anerkannt wird.

End of article

Dietmar

Über den Autor

Dietmar

Dietmar ist seit 2005 bei domainFACTORY in wechselnden Aufgabenbereichen tätig. Seit 2013 unterstützt er als "Spezialist Qualitätssicherung Web" die Kollegen in der Entwicklungsabteilung bei allen Themen rund um Quality Assurance / Testing. Dabei kommt ihm die jahrelange Erfahrung im direkten und indirekten Kundensupport und der Begleitung bei der Einführung unseres ResellerProfessional-Systems zu Gute. Auch für viele Kollegen ist er bei Fragen dazu oder sehr alten Tarif-Konstellationen noch immer gerne eine Anlaufstelle.

5 Kommentare

Die von Ihnen hier erhobenen Daten werden von der domainfactory GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.df.eu/datenschutz


  • Max
    Max - 30. November 2011 um 10:51 Uhr

    Wusste gar net das ihr bisher kein FCGI hattest. Dachte das wäre hier schon immer Standard.

  • Daniel Sasse
    Daniel Sasse - 30. November 2011 um 11:05 Uhr

    Vielen Dank für den Beitrag,
    hier noch ein Paar persönliche Eindrücke zu den verschiedenen PHP Möglichkeiten.

    1. Wenn anstelle von Apache der Litespeed Server läuft, dann hat man sogesehen noch einen Modus. Liespeed PHP. http://litespeedtech.com/litespeed-web-server-is-the-best-platform-for-php-powered-sites.html (nutze ich aktuell auf meinen JiffyBoxen von euch. Nach Test aller anderen Modi, bin ich sehr zufrieden damit – aktuell für michder mit Abstand Beste Modus)

    2. Sonstige persönliche Eindrücke der Varianten:
    – CGI PHP, mir persönlich zu langsam
    – mod_php, mir persönlich zu hoher Speicherverbrauch. Hinzu kommt das in der Regel Apache und nicht der User der Besitzer von PHp Skripten ist und es dadurch zu Rechtkonflikten kommen kann, Beispiel Magento.
    – fastcgi, kommt bei mir direkt nach Litespeed PHP – sehr schnell, wenig Speicherverbrauch, User ist auch Besitzer der Skripte usw.

    Also meine Favoriten aktuell:
    Litespeed PHP & FastCGI mit SuExec & FPM Prefork + APC Opcode Cache + ordentliche PHP & APC Direktiven 🙂

    LG – Daniel

  • Steffen G.
    Steffen G. - 30. November 2011 um 12:45 Uhr

    Sehr geil, freut mich sehr, dass ihr so langsam Erfolge weg von CGI verbuchen könnt!

    PHP-FPM ist schon sehr nett – fehlt nur noch ein nginx 🙂 (aber schon klar, dass das bei Managed Hosting nur schwer den Nutzern beizubringen ist)

  • Dietmar
    Dietmar - 30. November 2011 um 12:55 Uhr

    Hallo Daniel, vielen Dank für Ihre persönliche Einschätzung und den kleinen Erfahrungsbericht.
    Als Nutzer einer JiffyBox wäre natürlich auch lighty als Webserver (http://www.lighttpd.net) denkbar, für den ebenfalls eine angepasste FastCGI-Umgebung existiert. Auch nginx (http://wiki.nginx.org) ist sicher keine schlechte Lösung, wie von Steffen vorgeschlagen.

    Ein Wechsel weg von Apache ist derzeit für unsere allgemeine Hostingumgebung nicht denkbar und bei uns auch nicht in der Diskussion. Aber wir sind Alternativen natürlich aufgeschlossen und so setzen wir beispielsweise zusätzlich zum Apache einen vorgeschalteten nginx für unsere Webseite http://www.df.eu ein und für unsere ResellerProfessional 2 setzen wir seit einigen Monaten auf den erwähnten lighty.

  • Daniel Sasse
    Daniel Sasse - 30. November 2011 um 15:42 Uhr

    Aja, vielen Dank für eure Erfahrungen & Einblicke in eure Abläufe (Steffen G & Dietmar)

    Danke auch für den Tipp in Sachen JiffyBox! 🙂

    LG – Daniel