BenBE's humble thoughts

07.02.2010

ispCP: Probleme mit FCGID nach Update

Filed under: Server — Schlagwörter: , , , , — BenBE @ 00:02:33

Heute wies mich ein Kunde auf meinem Debian-Server auf ein recht merkwürdiges Problem hin. Nach dem er eine neue Subdomain angelegt hatte, war diese, trotz dem ispCP die Seite bereits in der Konfiguration eingetragen wurde, nicht erreichbar. Stattdessen verhielt sich der Apache recht merkwürdig, in dem er auf eine ganz andere Subdomain redirectete. Zusätzlich erhielt ich vom ispCP-Control Daemon einen Fehlerbericht:

Hey There,

I’m the automatic email sent by on your localhost (127.0.0.1) server.

A critical error just was encountered while executing function restart_httpd() in /var/www/ispcp/engine/ispcp-serv-mngr

Error encountered was:

========================================================================
Apache config file is corrupted. Please check before restarting Apache server!!!
========================================================================

Auf der Konsole äußerte sich das Phänomen durch eine Fehlermeldung des Apache wie folgt:

Syntax error on line 22 of /etc/apache2/mods-available/fcgid_ispcp.conf:
SocketPath cannot occur within <VirtualHost> section

Schaut man sich jedoch die in dieser Meldung beklagte Datei an, so ist kein solcher VirtualHost-Eintrag darin zu entdecken. Vielmehr handelt es sich bei dieser Datei um die globale Konfigurationsdatei von ispCP, mit der Einstellungen für den FastCGI-Daemon fcgid festgelegt werden können.

Die Lösung des Problems liegt hierbei in der ispcp.conf im Ordner /etc/apache2/sites-available. Diese Datei dient ispCP zur Konfiguration jeglicher VirtualHosts des Systems. Eine direkte Änderung an dieser Datei ist hierbei jedoch nicht zielbringend, da seit ispCP 1.0.3 (derzeit aktuelle Version) das Einpflegen manueller Änderungen nicht zuverlässig klappt, wenn nicht gleichzeitig auch die Template-Parts angepasst werden. Zum Bereinigen der ispcp.conf werde ich gleich noch Details geben; vorher sollten aber die betroffenen Templates korrigiert werden.

Diese sind im Verzeichnis /etc/ispcp/apache/parts zu finden. Wichtig sind im konkreten Fall die Dateien als_php2_entry.tpl, dmn_php2_entry.tpl und sub_php2_entry.tpl – alle enthalten einen Verweis auf die beanstandete Konfigurationsdatei. Zur Korrektur des Fehlers genügt es, in allen drei genannten Dateien nach einer Zeile mit folgendem Inhalt zu suchen:

Include {MODS_DIR}/fcgid_ispcp.conf

Und diese durch voranstellen eines #-Zeichens auszukommentieren:

#Include {MODS_DIR}/fcgid_ispcp.conf

Anschließend gibt es zwei Möglichkeiten zur Korrektur der ispcp.conf:

  1. Alle Domains im ispCP über die Datenbank als “change” markieren und via Request Manager neu schreiben lassen
  2. Kurz mit etwas Bash-Magic die Datei bereinigen

Die erste Variante ist zwar theoretisch die sauberere von beiden, da aber nicht jeder direkten Zugriff auf die ispCP-Datenbank hat und zudem das Neuschreiben recht lange brauchen kann (unverhältnismäßig für diese Änderung), werd ich kurz den zweiten Weg erklären.

Man wechsle in der Verzeichnis mit der ispcp.conf und filtere mit grep die Include-Zeilen heraus, die die fcgid_ispcp.conf einbinden. Vereinfacht geht dies mit:

cd /etc/apache2/sites-available/
grep -v fcgid_ispcp.conf ispcp.conf > ispcp.conf.new
mv ispcp.conf.new ispcp.conf

Danach sollte man die Apache-Konfiguration kurz überprüfen, was am Einfachsten mit

apache2ctl configtest

geht. Liefert dies die Ausgabe “Syntax OK”, muss lediglich noch der Apache mit

apache2ctl restart

neu gestartet werden.

Im Anschluss sollte wieder alles wie gewohnt funktionieren.

flattr this!

12 Kommentare »

  1. [...] einer config-Änderung Apache neustarten. Ich erhielt kuriose Fehlermeldungen. Jedoch half mir dieser Beitrag von BenBE weiter. Dieser Bugfix betrifft die Nutzer von ispCP. Twitter [...]

    Pingback by chems chaos » Blog Archi » Probleme mit FCGID nach Update (betrifft ispCP) — 07.02.2010 @ 00:07:02

  2. Hey, vielen lieben herzlichen Dank… du bist mein Held des Tages und hast mir meinen kleinen Server gerettet….

    Kommentar by unknown — 17.02.2010 @ 08:51:22

  3. Danke für den Beitrag.

    Es ist irgendwie lustig – diese Zeile wurde aufgrund dieses Beitrages (engl) eingefügt…

    Nun fragt sich, welche Probleme werden wie gelöst… Die Wahrheit liegt wohl in der Mitte: man kann eine fcgid.conf in jedem VirtualHost einfügen, aber ohne “SocketPath” Zeile.
    Und die ursprüngliche fcgid_ispcp.conf gilt dann als globaler Default…

    Vielleicht muss in dieser Richtung weiter recherchiert werden…

    Gruss Joximu

    Mod by BenBE: Verlinkung ergänzt.

    Kommentar by Joximu — 17.03.2010 @ 11:24:41

  4. Ich schließe mich 2. an. Du bist ein Held. Dank Dir läuft jetzt meine Teststellung auf Lucid 64.

    Kommentar by Alf Gaida — 19.04.2010 @ 14:11:23

  5. Schließe mich nummer 4 an. Läuft wieder super und auch Lucid 64.

    Aber was mich noch interessieren würde, könnte es aufgrund dieser Konfiguration im nachhinein probleme mit CGI Scripten oder ähnlichem geben z.b. domains hinzufügen oder Userspaces!?

    Gruß Marc

    —THINK-POSITIV—

    Kommentar by Marc — 22.04.2010 @ 13:34:39

  6. Die Funktion dieser Include-Zeile war, das Einbinden einiger spezifischer Optionen für jeden VHost. Seit einem kürzlich erfolgten Paket-Update können aber einige in der zentralen Konfigurationsdatei von FCGID verwendeten Direktiven nicht mehr im Kontext von VHosts verwendet werden, was zum beschriebenen Fehler ührt. Da derzeit in der Konfigurationsdatei aber auch nichts steht, was zwingend gegenüber der globalen Einstellung geändert werden müsste, passt das auch ohne diese Datei für jeden VHost erneut einzutragen.

    Eine der saubersten Varianten wäre hier wahrscheinlich, die nötigen Änderungen in das Template für einen VHost einzutragen und über ein IfModule-Block korrekt abzufangen. Vorerst ist diese Änderung aber nicht nötig, da es keine Einstellungen für jeden einzelnen VHost benötigt.

    Kommentar by BenBE — 23.04.2010 @ 11:15:01

  7. Die im Text beschriebene Variante hat bei mir (ispCP 1.0.5, Ubuntu Lucid) auf Anhieb funktioniert. Vielen Dank dafür!

    Kommentar by Sven — 14.05.2010 @ 12:59:19

  8. Um auch schon bestehende Konfigurationen zu säubern sollte man auch folgendes eingeben:

    cd /etc/ispcp/apache/working
    grep -v fcgid_ispcp.conf ispcp.conf > ispcp.conf.new
    mv ispcp.conf.new ispcp.conf

    Prüfen kann man es mit

    apache2ctl configtest

    Kommentar by Sven — 19.06.2010 @ 17:36:32

  9. Vielen vielen Dank!!! *anbet*

    Kommentar by Cluster — 17.08.2010 @ 01:26:12

  10. Und das tut auch noch beim selben Fehler in 1.0.6 mit Lucid

    Kommentar by Alf Gaida — 23.08.2010 @ 20:25:39

  11. Bei der 1.0.6 und Lucid behebt er den Fehler schon, nur kommt der dann immer wieder, trotz abgeänderter Templates. Als würde er “andere” Templates als die im /etc/ispcp/apache/parts angegebenen verwenden.

    Kommentar by me — 03.09.2010 @ 11:14:37

  12. Hi,

    klappt prima. Danke!

    Gruß,
    Christian

    Kommentar by Christian — 18.02.2011 @ 08:45:12

RSS-Feed für Kommentare zu diesem Beitrag. TrackBack URL

Hinterlasse einen Kommentar

*

Powered by WordPress