Technologieführer

PHP mit FastCGI testen und pro Website konfigurieren

4 min read Server Aktualisiert 01 Oct 2025
PHP mit FastCGI: Testen & pro Site konfigurieren
PHP mit FastCGI: Testen & pro Site konfigurieren

Kurzfassung


1. Schnelltest: info.php anlegen

Erstellen Sie zur Überprüfung eine kleine PHP-Testdatei im Document Root der Website, beispielsweise für www.example1.com:

vi /srv/www/web1/web/info.php

Fügen Sie folgenden Inhalt ein:

Rufen Sie die Datei im Browser auf: http://www.example1.com/info.php. Wenn alles richtig läuft, sollte die Ausgabe ähnlich aussehen und in der Zeile “Server API” CGI/FastCGI anzeigen:

phpinfo-Ausgabe mit Server API CGI/FastCGI angezeigt

Wichtig: Entfernen Sie die info.php wieder von produktiven Servern oder schützen Sie sie mit Zugriffskontrolle, da sie viele Systeminformationen offenlegt.

2. Eigene php.ini pro Web‑Site definieren

Weil jede Website ihr eigenes php-fcgi-starter Wrapper-Skript haben kann, lässt sich pro Host eine individuelle php.ini verwenden. Beispiel: Kopieren der Standard-konfiguration in das Verzeichnis von www.example2.com und Anpassung der Besitzrechte:

cp /etc/php5/fastcgi/php.ini /srv/www/web2/
chown web2:web2 /srv/www/web2/php.ini

(Ändern Sie /srv/www/web2/php.ini nun nach Bedarf.)

Öffnen Sie das Starter-Skript des PHP-FastCGI für web2:

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

Setzen Sie in diesem Skript PHPRC auf das Verzeichnis mit der gewünschten php.ini:

#!/bin/sh
PHPRC=/srv/www/web2/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi

Anschließend Apache neu starten:

/etc/init.d/apache2 restart

Erstellen Sie nun eine info.php für www.example2.com:

vi /srv/www/web2/web/info.php

Rufen Sie http://www.example2.com/info.php auf. In der Zeile “Loaded Configuration File” sollte nun /srv/www/web2/php.ini stehen:

phpinfo: Geladene Konfigurationsdatei zeigt /srv/www/web2/php.ini

Hinweis: PHPRC erwartet ein Verzeichnis oder den Pfad zur Datei; testen Sie beide Varianten, falls Ihr System anders reagiert.

3. Einzelne PHP‑Einstellungen ändern (-d Schalter)

Statt einer kompletten php.ini können Sie einzelne Einstellungen per Kommandozeile an php-cgi übergeben. Dazu fügen Sie den -d Schalter in das Starter-Skript ein. Beispiel: Deaktivieren von magic_quotes_gpc für www.example2.com:

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

Bearbeiten Sie das Skript wie folgt:

#!/bin/sh
PHPRC=/etc/php5/fastcgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi -d magic_quotes_gpc=off

Apache neu starten:

/etc/init.d/apache2 restart

Rufen Sie wieder http://www.example2.com/info.php auf und suchen Sie nach der Einstellung magic_quotes_gpc — sie sollte nun Off anzeigen:

phpinfo zeigt magic_quotes_gpc auf Off

Tipp: Sie können mehrere -d Parameter anhängen, z. B. -d memory_limit=256M -d display_errors=0.

4. Prüfen — Akzeptanzkriterien

  • Server API zeigt CGI/FastCGI.
  • Bei Nutzung einer individuellen php.ini zeigt “Loaded Configuration File” den erwarteten Pfad (/srv/www//php.ini).
  • Bei Verwendung des -d Schalters zeigt phpinfo() die überschriebenen Werte (z. B. magic_quotes_gpc = Off).

Testfälle:

  • Erstellen Sie eine phpinfo()-Datei und prüfen Sie die drei genannten Punkte.
  • Setzen Sie eine falsche Pfadangabe in PHPRC und verifizieren Sie, dass PHP zur Standard-Konfiguration zurückfällt (Fehlerfall-Test).

5. Alternative Ansätze und Fallstricke

  • Alternative: PHP-FPM (php-fpm) bietet bessere Prozessverwaltung, Pools pro Website und oft bessere Performance als klassische FastCGI-Wrapper.
  • mod_php: Einfacher zu konfigurieren, aber teilt Prozesse mit Apache und ist weniger geeignet für multi-tenant-Umgebungen.
  • Fallstrich: Rechte und SELinux/AppArmor können das Laden von php.ini aus Nicht-Standardverzeichnissen verhindern. Prüfen Sie Logs (/var/log/apache2/error.log) und Sicherheitsrichtlinien.

Kurzheuristik: Für mehrere Sites mit individueller Konfiguration -> php-fpm; für vorhandene FastCGI-Infrastruktur mit Wrappern -> PHPRC oder -d verwenden.

6. Rollenbasierte Checkliste

  • Systemadministrator: Backup der Original php.ini, Berechtigungen setzen (chown), Apache neu starten, Logs prüfen.
  • Web-Developer: Risiken durch phpinfo() verstehen, gewünschte Einstellungen testen, Feature-Flags (z. B. display_errors) anpassen.
  • Security Engineer: phpinfo() entfernen oder absichern, sensible Optionen (expose_php, display_errors) deaktivieren, Audit der Verzeichnisse und Nutzerrechte.

7. Mini‑Methodologie (Schritt-für-Schritt)

  1. Erstellen Sie info.php im Document Root.
  2. Prüfen Sie aktuelle Konfiguration über phpinfo().
  3. Legen Sie /srv/www//php.ini an und passen Sie Rechte an.
  4. Setzen Sie PHPRC im php-fcgi-starter auf das gewünschte Verzeichnis.
  5. Alternativ: Fügen Sie exec /usr/bin/php-cgi -d option=value hinzu.
  6. Apache neu starten und phpinfo() erneut prüfen.
  7. Entfernen oder schützen Sie info.php nach Testzwecken.

8. Kurzes Glossar

  • PHPRC: Umgebungvariable, die angibt, wo PHP die php.ini sucht.
  • php-fcgi-starter: Wrapper-Skript, das php-cgi mit Umgebung und Optionen startet.
  • -d Schalter: Übergibt einzelne INI-Optionen an php-cgi beim Start.

9. Sicherheitshinweise

  • phpinfo() offenbart Systemdetails — niemals dauerhaft in Produktionsumgebungen belassen.
  • Achten Sie auf Dateiberechtigungen und Security-Module (SELinux/AppArmor).
  • Validieren Sie, dass benutzerdefinierte php.ini keine unsicheren Einstellungen aktivieren (z. B. allow_url_fopen).

Zusammenfassung

Mit wenigen Schritten können Sie PHP unter FastCGI testen und pro Website eigene Konfigurationen bereitstellen. Entweder per PHPRC auf ein Verzeichnis mit einer individuellen php.ini verweisen oder einzelne Werte mit dem -d Schalter überschreiben. Immer danach Apache neu starten und die phpinfo()-Ausgabe prüfen.

Links

Autor
Redaktion

Ähnliche Materialien

HDR in Stalker 2 aktivieren — Schritt für Schritt
Gaming

HDR in Stalker 2 aktivieren — Schritt für Schritt

Wortvorschläge wie auf dem Smartphone in Windows
Produktivität

Wortvorschläge wie auf dem Smartphone in Windows

Tweets zum späteren Lesen speichern
Produktivität

Tweets zum späteren Lesen speichern

Dogecoin Mining: Laptop-Anleitung
Krypto Mining

Dogecoin Mining: Laptop-Anleitung

Touchpad- und Mausgeschwindigkeit getrennt einstellen
Peripherie

Touchpad- und Mausgeschwindigkeit getrennt einstellen

RE4 Fatal D3D Error 25 beheben
Gaming

RE4 Fatal D3D Error 25 beheben