Das ist ein Archivbeitrag. Er wird nicht aktualisiert, bleibt aber in der Originalfassung online.
Ausgangslage und Fehlermeldung
Ich übertrug eine bestehende Contao-Website auf einen Managed Server beim Webhoster TimmeHosting.
Beim Versuch die Website oder wahlweise den Contao Manager aufzurufen,
begrüßte mich die Fehlermeldung „No input file specified
“.
Das irritierte mich sehr, da ich in der (Sub)domain-Konfiguration sogar die von TimmeHosting vordefinierte Konfiguration für Contao 4.4 gewählt hatte und davon ausging, dass sie funktionieren müsste.
Standard-Pfad bei TimmeHosting
Üblicherweise liegen Daten bei TimmeHosting für eine Projekt-Website z.B. im Pfad:
/var/www/clients/client1/web1/web
Wichtig: Die hier auftauchenden web-Ordner haben noch nichts mit Contao zu tun, sondern sind Standard bei der Serverkonfiguration des Managed Servers von TimmeHosting.
TimmeHosting weiß, dass Contao seit Version 4 zudem einen eigenen /web-Ordner benötigt in dem auch der Contao Manager liegt.
Entsprechend geht TimmeHosting offensichtlich davon aus, dass der Contao-Administrator im Standard-Root noch einen /web-Ordner anlegt.
Der Standard-Pfad für die erste Website am Server wäre also:
/var/www/clients/client1/web1/web/web
In diesem letzten web-Ordner würde nun die Datei contao-manager.phar.php liegen.
Mein Wunsch: Mehr Ordnung, also ein weiterer Subordner
Ich wollte etwas mehr Ordnung und hatte daher im Standard-Root noch einen Unterordner, nennen wir ihn mal „testprojekt“ sowie darin den obligatorischen web-Ordner für Contao angelegt.
Mein gewünschter Root-Pfad sah also so aus:
/var/www/clients/client1/web1/web/testprojekt/web
Beim Anlegen der Subdomain im ISPConfig hatte ich entsprechend den
Basisordner neu definiert,
damit die Subdomain auf meinen neuen web-Ordner im Subordner „testprojekt“ zeigt. Entsprechend des Hilfetextes an der Stelle ging ich davon aus, dass ich
web/testprojekt/web
als Basispfad angeben muss.
Bei der gewünschten Konfiguration (nginx-Direktiven bzw. nginx-Schnippsel) wählte ich die von TimmeHosting bereitgestellte Konfiguration für Contao 4 aus.
Das Resultat beim Aufruf von Contao oder dem Contao Manager war die erwähnte Fehlermeldung „No input file specified
“.
Kein erkennbarer Eintrag in den Log-Dateien, einfach nur das.
Die Lösung
Die Lösung ist zum Glück ganz einfach: Meine Basispfad-Einstellung bei der (Sub)domain war falsch. Ich war von der Annahme ausgegangen, dass ich den finalen Pfad definieren muss, so wie ich es von anderen Webhostern kenne, damit die Subdomain direkt den letzten von mir angelegten web-Ordner als Root ansieht. Normalerweise wäre das auch korrekt.
Durch die Wahl der Contao 4-Konfiguration für nginx ist das jedoch anders, denn in dieser Konfiguration hat TimmeHosting schon fix den web-Unterordner eingebunden. Entsprechend kreierte mein Basispfad in Kombination mit der Contao 4-Konfiguration einen Pfad, der nicht existiert.
Des Rätsels Lösung war, dass ich die Subdomain löschte, nochmal neu anlegte, als Konfiguration wieder die Contao 4-Variante wählte, aber diesmal den Basis-Pfad ohne den
finalen web-Ordner von Contao angab:
web/testprojekt
Ein paar Minuten gewartet, bis die neue Subdomain mit der Konfiguration lief und dann schnurrte Contao 4 wieder wie ein Kätzchen (und super schnell oben drauf, dem fixen Server sei es gedankt!)
Wichtig: Diese Einstellung für die Basisdomain gilt, wenn Sie mit einer Subdomain (vHost) oder Aliasdomain (vHost) arbeiten.
Wenn Sie hingegen im ISPConfig beim Punkt „Webseiten > Webseite“ arbeiten, können Sie darin in den erweiterten Einstellungen den
„abweichenden Document Root“ einstellen.
Wenn Sie hier auf den Ordner „testprojekt“ zeigen wollen, geben Sie nicht web/testprojekt
an, sondern nur testprojekt
.
Weshalb? Weil an der Stelle der Server den davor stehenden Pfad sowieso fix annimmt und nur die Ergänzung für den Unterordner braucht. Das ist für klassische Server-Administrator*innen vermutlich Standard, aber mich hat die unterschiedliche Darstellung in der Oberfläche irritiert.