Zum Inhalt springen

Neos auf IIS-Basis

Erstellt am 22. November 2012 · 7 Antworten · letzte Antwort am 27. November 2012

Tags: Server & Hosting, Frage

ChrisNbg ·

Liebe Community,

ich versuch mich gerade daran, erste Schritte mit dem sehr interessanten NEOS zu gehen. Ich verfolge dabei aber den Ansatz, dass im kommenden Jahr evtl auch mal produktiv einzusetzen. Unsere Produktiv-Server laufen unter IIS 7.5 auf 2008 R2 (und nein, Apache können/wollen wir nicht nutzen 🙂 dank ASP).

Mir fehlt aber jeglicher Ansatz das hier drauf zum laufen zu bringen. Ich habe zwar die ein oder andere Anleitung gefunden, dass ganze auf einem XAMPP unter Win laufen zu lasssen, aber IIS war bisher noch nicht dabei. Auch Anleitungen für Flow3/Typo3 Flow haben mich nicht wirklich weiter gebracht.
Auch die Anleitungen für Apache hab ich bisher nicht adaptieren können 🙁

Hat denn jemand ne Ahnung wie ich hier vorgehen könnte?
Folgendes hab ich schon gemacht:
- dedizierten User für die Website
- Berechtigung für das setzten von SymLinks in den Richtlinien erteilt
- Root auf den unterordner /web gesetzt
- ReWriting ist zwar installiert, aber noch nicht eingerichtet. Weiß nicht ob das auch für den ersten Testbetrieb nötig ist.

Aktuell meldet die Seite nur: Parse error: syntax error, unexpected ':' in D:\wwwroot\neos.XXX\Web\index.php on line 25
So richtig weiter weiß ich nicht. Parallel bastel ich auf meinem Notebook noch an einer Variante mit XAMPP. Läuft aber auch noch nicht. So ein bisschen vermiss ich schon noch die HowTo's, da es sich ja nicht wirklich "intuitiv" einrichten lässt... :o

Google hilft mir auch nur bedingt weiter, weil der Begriff "neos" nicht viel sinnvolles liefert und zusammen mit typo3 davor auch in die falsche Richtung geht. Und zusammen mit IIS hab ich bislang auch nichts finden können

Würde mich über Hilfe, Denkanstöße u.ä, freuen.

Gruß
Christian

Unbekannter Benutzer ·

Klingt spontan nach einer veralteten PHP Version. Ich müsste mal in die Datei schauen, aber kann Dir mit IIS leider nicht weiterhelfen. Meines Wissens hat das auch noch niemand versucht.

ChrisNbg ·

Also das mit der PHP Version war ein guter Einwand. Ich habe den PHP-Manager installiert und war eigentlich der Meinung für die Website PHP 5.4 aktiviert zu haben. (bzw. das hatte ich auch definitv mal). Naja, phpinfo() hat mich eines besseren belehrt.
Jetzt läuft aber wieder PHP 5.4.8

Erst bekam ich noch einen anderen Fehler, bis ich dann unter /Configuration die Settings.yaml kopiert hab und die Zeile mit dem phpBinaryPathAndFilename entkommentiert hab. hier steht jetzt der Pfad "D:\apps\php54\php.exe" habs auch mit 'D:/apps/php54/php.exe' vergeblich versucht.

Fatal error: Uncaught exception 'Symfony\Component\Yaml\Exception\ParseException' with message 'Indentation problem in "D:\/wwwroot\/neos.XXX\/Configuration\/Settings.yaml" at line 18 (near " phpBinaryPathAndFilename: 'D:\webapps\php54\php.exe'").' in D:\wwwroot\neos.XXX\Packages\Vendor\symfony\yaml\Symfony\Component\Yaml\Parser.php:329 Stack trace: #0 D:\wwwroot\neos.XXX\Packages\Vendor\symfony\yaml\Symfony\Component\Yaml\Parser.php(179): Symfony\Component\Yaml\Parser->getNextEmbedBlock() #1 D:\wwwroot\neos.XXX\Packages\Vendor\symfony\yaml\Symfony\Component\Yaml\Parser.php(179): Symfony\Component\Yaml\Parser->parse('backendOptions:...') #2 D:\wwwroot\neos.XXX\Packages\Vendor\symfony\yaml\Symfony\Component\Yaml\Parser.php(179): Symfony\Component\Yaml\Parser->parse('persistence:?? ...') #3 D:\wwwroot\neos.XXX\Packages\Vendor\symfony\yaml\Symfony\Component\Yaml\Parser.php(179): Symfony\Component\Yaml\Parser->parse('Flow:? persist...') #4 D:\wwwroot\neos.XXX\Pac in D:\wwwroot\neos.XXX\Packages\Vendor\symfony\yaml\Symfony\Component\Yaml\Parser.php on line 329

gibts hierzu ideen?

Unbekannter Benutzer ·

Naja die Fehlermeldung sagt es doch schon "Indentation problem in "D:\/wwwroot\/neos.XXX\/Configuration\/Settings.yaml" at line 18, d.h. da ist das YAML Format mit zwei Spaces pro Einrückung anscheinend nicht eingehalten...

ChrisNbg ·

Oh mann... so ein sch... 🙂. Ich hab aus der Fehlermeldung nicht wirklich was rauslesen können. Wäre ich net drauf gekommen, dass er sich an einem Leerzeichen so aufhängen würde :o

Ein paar "Fehler" hab ich noch beheben können. Hier mal zu Dokuzwecken:
- Es wird ja die Umgebungs-Variable "FLOW_CONTEXT" benötigt, die sich ja "einfach" im Apache-conf mit SetEnv setzten lässt. Beim IIS ists nicht ganz so Easy.

Ich habs jetzt nur Systemweit via "FastCGI" hinbekomen. Hierzu auf den "Hauptknoten" (über dem Knoten Sites) -> FastCGI-Einstellungen -> Die verwendete FastCGI-Anwendung wählen (bei mir sinds mehrere, da ich via PHP-Manager mehrere PHP-Versionen nutze) und dann bearbeiten -> bei Allgemein/Umgebungsvariablen auf "..." klicken -> Hinzufügen -> Name="FLOW_CONTEXT" Value = "Production"...

Ich denke, dass sich da auf alle Seiten des IIS auswirken wird. Wäre für Multi-NEOS installationen eher hinderlich. Eine Alternative ist aber ein Tool namens "Helicon Ape" welches eine Vielzahl von Apache-Funktionen (wenn nicht alle?!) für den IIS verfügbar macht. Getestet hab ichs nicht, klingt aber erst mal spannend! Für bis zu 3 Sites ist das ganze auch erst mal kostenlos (199$ für ganze Server). http://www.helicontech.com/ape/doc/mod_env.htm#SetEnv

Aber evtl gibts ja noch andere Ansätze. Naja, jetzt sieht das ganze zwar schonmal nach "System" aus und wirft nich mehr kryptische Fehler aus, dafür eine andere "nichts sagende" Meldung: 500 Internal Server Error (Siehe Anhang)

Weder IIS-Logs noch PHP-Logs geben irgend einen Aufschluss 🙁

Hat wieder jemand ne idee? In kleinen Schritten komm ich ja vorran...

internal_server_error.jpg

Unbekannter Benutzer ·

Das Problem, dass man im Moment eine Environment Variable braucht ist bekannt, wahrscheinlich wird es da eine Alternative geben. Allerdings sollte die Variable nicht notwendig sein, es gibt einen Fallback zum Development Context.

Die Fehlermeldung ist allerdings nicht gerade hilfreich. Der Code ist nicht aus Flow/Neos sondern wahrscheinlich irgendwas in PHP oder IIS.

Ich vermute ganz stark, dass die Proxygenerierung fehlschlägt. Das ließe sich auf der Kommandozeile mit der flow.bat vielleicht nachvollziehen.

Vielleicht führst du mal

"flow.bat help" aus und guckst ob das schon mal geht.

ChrisNbg ·
kitsunet schrieb

Die Fehlermeldung ist allerdings nicht gerade hilfreich. Der Code ist nicht aus Flow/Neos sondern wahrscheinlich irgendwas in PHP oder IIS.

Naja, schaut etz auch nicht nach PHP oder IIS für mich aus. Der Ausgegebene Code ist HTML5-Standard mit CSS3 🙂, aber Quellcode ohne Hinweise auf Herkunft... Ich dachte schon dass das Flow oder Neos ist...

kitsunet schrieb

Ich vermute ganz stark, dass die Proxygenerierung fehlschlägt. Das ließe sich auf der Kommandozeile mit der flow.bat vielleicht nachvollziehen.

Vielleicht führst du mal

"flow.bat help" aus und guckst ob das schon mal geht.

Also ich hab mal die flow.bat entsprechend zum PHP-Pfad angepasst. Bekomme aber folgenden Fehler:

syntax error, unexpected $end, expecting TC_DOLLAR_CURLY or TC_QUOTED_STRING or "" in D:\apps\php54\php.ini on line 1851

ich versteh nur net, warum er die php.ini Parsed... die Zeilenlänge stimmt auch mit der php.ini überein...

In der Console wird folgendes ausgegeben:

D:\wwwroot\neos.XXX>flow.bat help
Das System kann den angegebenen Pfad nicht finden.
Uncaught Exception
  Execution of subprocess failed with exitcode "1" and output:



More Information
  Exception code      #0
  File                D:\wwwroot\neos.XXX\Packages\Framework\TYPO3.Flow\Classes\TYPO3\Flow\Core\Booting\Scripts.php line 518
  Exception reference #20121123223204b338e5

oh mann... is echt müsig irgendwie 🙂
Gruß aus dem schönen Frankenland

Unbekannter Benutzer ·

Na mir scheint da stimmt noch was mit der php config nicht. Eventuell musst du in der flow.bat noch den Pfad zu PHP anpassen, bin mir gerade nicht sicher ob das nötig ist, ich vermute aber schon.