Plesk File Manager returns error : “System error 2: No such file or directory”

Systemüberblick: Strato Server Plesk Onyx Version 17.5.3 Update #54, Root Server Linux 64, BS ‪Ubuntu 16.04.5 LTS‬

Es war mal wieder so weit: Das Shoutcat basierendes Webradio ist ausgefallen. Die spannende Frage: Woran liegt es? Die Antwort: An allem, vielem oder vielleicht auch nur an einer Kleinigkeit. Guter Rat ist teuer… Was tun?

Am besten methodisch vorgehen:
2 banale Gründe liegen im Service: Entweder gab es, bedingt durch automatisch eingestellte Updatefunktion, einen Serverneustart, der den Stream abschaltete; oder der Serviceprovider hat nach einem Wartungsdienst des Servers vergessen, den Netzstecker der Maschine wieder einzustecken (tatsächlich passiert!).

Am besten zuerst auf den Server einloggen (z. B. über Plesk) und sich vergewissern, dass der Server nicht “down” ist (ansonsten starten). Läasst sich erst gar nicht einloggen, liegt das Netzsteckerproblem vor. Parallel dazu sich in das Webinterface der Radioplattform einloggen, den Hauptstream und anschließend den Auto-DJ neu starten. Anschließend bis zum nächsten Playlistenwechsel warten. Shoutcast erkennt nach einem Absturz die aktuelle Playliste nicht und braucht deshalb eine “Gehirnauffrischung”. Mit aktivem Auto-DJ wird die nächste anstehende Playliste in den Arbeitsspeicher von Shoutcast geladen. Danach müsste das Radio wieder die Playlisten abspielen. Falls nicht, liegen die Ursachen tiefer…

Auf dem Server den Menüpunkt Domains und anschließend die Streamserver-Domain auswählen; dann Protokolle anklicken. Unter Alle Protokolle Apache– und nginx-Fehler aktivieren, den Rest deaktivieren, falls zu viele Meldungen die Übersichtlichkeit verhindern. Nun kommt es darauf an, die angezeigten Fehlermeldungen richtig zu deuten. Fehler werden in Rot angezeigt, Normalbetrieb erscheint in Schwarz, Links in Blau.

Folgende Fehlermeldungen wurden angezeigt:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

verbunden mit weiteren Meldungen:

GET /admin/ownmodules/stats_sc/song_update_v2.php HTTP/1.1
GET /admin/ownmodules/stats_sc/song_update_v1.php HTTP/1.1
GET /admin/ownmodules/stats_sc/update.php HTTP/1.1
GET /admin/ownmodules/stats_sc/update_v2.php HTTP/1.1

GET /modules/sc_stats/stats/update.php HTTP/1.1
GET /modules/sc_stats/stats/update_v2.php HTTP/1.1

Ein Klick auf den Link der “GET”-Fehlermeldung bringt neben der Pfadangabe

/var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats/stats bzw.
/var/www/vhosts/meinedomain.de/httpdocs/admin/ownmodules/stats_sc

folgende weitere Fehlermeldung zum Vorschein:

Plesk File Manager returns error: "System error 2: No such file or directory"

Die Symptome liegen ursächlich in fehlenden Verzeichnissen und Dateien auf dem Server begründet. Leider ist das alles sehr rätselhaft, denn seit vielen Jahren hat das Serversystem völlig fehlerfrei funktioniert. Es kann deshalb nur ein Systemupdate von Server oder Webinterface dafür dafür ursächlich sein. Eine Googlesuche brachte mich auf eine Plesk Support-Seite und auf die Idee, die fehlenden Verzeichnisse und Dateien einfach manuell anzulegen. Die manuell gesetzten Verzeichnisse und (leere) Dateien wurden rekursiv auf 755 gesetzt. Siehe da, schon waren die Fehler plötzlich weg.

Die fehlenden Verzeichnisse und Dateien können entweder mit einem FTP-Client (z. B. mit FileZilla) oder über Putty (SSH) angelegt werden. Letztere z. B. mit den Befehlen

# mkdir /var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats
# chmod 755 /var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats

# mkdir /var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats/stats
# chmod 755 /var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats/stats

# cd /var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats/stats
# touch meinedatei.php
# chmod 755

Nach etwa einer halben Stunde waren die manuell angelegten Dateien mit Inhalten gefüllt, auch wenn die Dateigröße im FTP-Client immer noch mit Null angezeigt werden.

Die Datei “update_v2.php” im Pfad

/var/www/vhosts/meinedomain.de/httpdocs/admin/modules/sc_stats/stats/update_v2.php

zeigte z. B. folgenden Inhalt

 $s)
{
set_time_limit(65);
	$rddfile = SS_PATH_RRD."/{$s["host"]}.".$s["port"].".rrd";
	$audience[$i]=GetShoutcastStats_v2($s["host"],$s["port"],$s["sid"]);
	if(!file_exists($rddfile))
		system(SS_RRDTOOL_COMMAND . " create ".$rddfile." DS:audience:GAUGE:600:U:U RRA:AVERAGE:0.5:1:288 RRA:AVERAGE:0.5:6:336 RRA:AVERAGE:0.5:24:420 RRA:AVERAGE:0.5:288:365");
	system(SS_RRDTOOL_COMMAND . " update ".$rddfile." -t audience N:".$audience[$i]["current"]);
}

?>

Die ganze Aktion hat 3 Stunden bester Freizeit verbraucht. Trotzdem ist es ein schönes Gefühl, wenn das Problem beseitigt ist und der Server wieder reibungslos flutscht…