TYPO3 Neos installieren
Diese Seite muss überarbeitet werden
Diese Seite wurde als Baustelle gekennzeichnet, weil sie überarbeitet werden muss. Eine Begründung dafür findest du auf der Diskussionsseite. Bitte hilf mit, diese Seite zu verbessern!Die folgenden Schritte zur Installation von TYPO3 Neos sind aus dem Neos-Kompendium von Patrick Lobacher (Typovision GmbH) entnommen und wurden auf die Besonderheiten bei Hostsharing angepasst.
Beschrieben wird hier in erster Linie die Installation in einem shared hosting Paket. Auf Hostsharing Systemen läuft für die shared Hosting-Pakete ein zentraler Apache, der standardmäßig die Anfragen für die in den Paketen aufgeschalteten Domains verarbeitet und die Webseiten ausliefert. Durch ein zentrales Template wird für jede aufgeschaltete Domain im Apache automatisch (von hsadmin) ein Virtual Host eingerichtet. Die Konfiguration lässt sich lediglich durch einige der HSAdmin-Domain-Options beeinflussen.
TODO: Andere Installationsarten (eigener Serverdienst, root-Server) sind am Ende des Artikels beschrieben.
Systemvoraussetzungen
Das TYPO3 Neos Kompendium nennt die folgenden Systemvoraussetzungen. Bei Hostsharing erfüllen alle shared hosting Pakete im Auslieferungszustand diese Systemvoraussetzungen mit wenigen notwendigen manuellen Nacharbeiten:
- Webserver (empfohlen ist Apache 2.x mit aktiviertem mod_rewrite Modul) = HS shared hosting default
- PHP 5.3.7 - 5.4.x (minimal wäre PHP 5.3.2 - dort kann es zu Problemen kommen)
- Folgende Funktionen müssen in PHP aktiviert sein (= HS shared hosting default):
- system()
- shell_exec()
- escapeshellcmd()
- escapeshellarg()
- php.ini: memory_limit = 256M oder höher
- php.ini: xdebug.max_nesting_level = 500 (sofern xdebug verwendet wird)
- php.ini: Fügen sie die folgende Optionen ans Ende hinzu: detect_unicode = Off
- php.ini: Zudem muss Magic_Quotes ausgeschaltet werden: magic_quotes_gpc = Off
- php.ini: Die Kommandozeile von Flow benötigt ferner noch eine Zeitzoneneinstellung: date.timezone= "Europe/Berlin"
- MySQL 5.1.50 - 5.x.x (zum Beispiel - grundsätzlich kann jede zum Doctrine DBAL kompatible Datenbank verwendet werden) = HS shared hosting default
- Zugang zur Konsole (shell-User) = HS shared hosting default
Bemerkung zu bereitstehenden PHP Versionen
Darüber hinaus erfüllt derzeit lediglich die PHP-Kommandozeilenversion (PHP-CLI) nicht die geforderte Versionsnummer von 5.3.7, sondern ist auf dem Stand Debian "Squeeze" php5-cli 5.3.3-7+squeeze18. TODO: Ob dies bei Hostsharing für die Installation kritisch ist, muss noch geprüft werden. Die Versionsnummer alleine sagt im Falle der Debian-Pakete aufgrund der stetig einfließenden Backports aus neueren Original-Paketen wenig aus (siehe Diskussion zum Thema Systemvoraussetzungen bei TYPO3 CMS 6.0).
Die Versionsnummer von PHP-CLI kann mit dem folgenden Befehl in der Kommandozeile überprüft werden:
php --version
Hinweis: Die neueren Managed Server bei Hostsharing laufen bereits unter Debian Wheezy und erfüllen damit auch die Systemvoraussetzungen von TYPO3 Neos bzgl. PHP und PHP-CLI. Ein Update von Debian Squeeze auf Debian Wheezy befindet sich auch für die shared Hosting Server bei Hostsharing in Vorbereitung. TODO: voraussichtlichen Termin ergänzen!
Umsetzung der Einstellungen für php.ini
Die php.ini für PHP via FastCGI muss in diesem Verzeichnis liegen:
/home/pacs/xyz00/users/username/doms/example.org/fastcgi
(existiert dort keine php.ini, kann sie manuell leer angelegt werden und anschließend mit einem Editor (z.B. nano) bearbeitet werden):
touch php.ini nano php.ini
Alternativ kann man auch eine Muster-php.ini dorthin kopieren. Siehe hierzu: Beispiel muster.example.com
Die nötigen Einstellungen für TYPO3 Neos hier gesammelt als Block für copy&paste an das Ende der php.ini
memory_limit = 256M ; default ist 128M xdebug.max_nesting_level = 500 ; Einkommentieren sofern xdebug verwendet wird detect_unicode = Off date.timezone = "Europe/Berlin" magic_quotes_gpc = Off
Zum Erzwingen einer direkten Übernahme der Änderungen an der php.ini bei FastCGI müssen die PHP Prozesse des Users neu gestartet werden. Es ist im Folgenden keine Ersetzung von $USER nötig:
killall php -u $USER
Notwendige Schritte zur Installation
Es ist nicht erforderlich TYPO3 CMS zu installieren, da TYPO3 CMS und TYPO3 Neos keinerlei technische Gemeinsamkeiten besitzen.
Die Installation besteht im Wesentlichen aus diesen Schritten:
- Composer herunterladen und installieren
- TYPO3 Neos und Abhängigkeiten herunterladen, installieren
- FLOW Konfiguration: Datenbank-Setup
- Durchführung des TYPO3 Neos Setups
Composer herunterladen und installieren
Composer ist ein Dependency Manager für PHP. Da es für Composer kein Debian-Paket gibt, muss er in jedem Shared Hosting Paket separat installiert werden.
Mit diesem Befehl wird Composer heruntergeladen und die Datei composer.phar im aktuellen Verzeichnis angelegt:
curl -sS https://getcomposer.org/installer | php
TYPO3 Neos und Abhängigkeiten herunterladen und installieren
Composer sorgt für das Herunterladen von TYPO3 Neos und TYPO3 Flow mitsamt der benötigten Module (z.B. Doctrine 2, Aloha, ...). Hierzu ist dieser Befehl nötig (alles in einer Zeile):
php /home/pacs/xyz00/users/username/doms/example.org/composer.phar create-project typo3/neos-base-distribution home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos
Wird die VCS-Historie (Version Control System, Versionsverwaltung) nicht benötigt, kann man die folgende Frage mit "Y" bestätigen:
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]?
Nun existiert ein Verzeichnis TYPO3-Neos (etwa 200 MB) im Webroot unter
/home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos
Dieses Verzeichnis enthält alle Dateien von TYPO3 Neos.
Anpassen der .htaccess-Datei
Die .htaccess-Datei im Pfad
/home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/Web
muss im folgenden Absatz für die Umgebungsvariable FLOW_ROOTPATH mit dem Pfad zu TYPO3 Flow versehen werden:
# If the root path is not the parent of the Web directory, # TYPO3 Flow's root path must be specified manually: # SetEnv FLOW_ROOTPATH /var/www/myapp/ SetEnv FLOW_ROOTPATH /home/doms/example.org/TYPO3-Neos/
Weiterhin ist die Anpassung dieses Absatzes nötig
# You will have to change the path in the following option if you # experience problems while your installation is located in a subdirectory # of the website root. # RewriteBase /TYPO3-Neos/Web/ RewriteBase /
Bei Hostsharing ist die Webserver-Option "MultiViews" per default ausgeschaltet. Im shared hosting kann man zudem - abgesehen von HSAdmin-Domain-Options - keine eigenen Webserver-Optionen nutzen. Die Angabe der Option -MultiViews in der .htaccess-Datei würde zu einem Fehler im Weblog führen! Daher ist im folgenden Abschnitt eine Zeile auzukommentieren:
# prevents Apache's automatic file negotiation, it breaks resource URLs #Options -MultiViews
Anpassen der index.php-Datei
Die Datei index.php im Pfad
/home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/Web
muss im folgenden Absatz mit den Umgebungsvariablen FLOW_REWRITEURLS und FLOW_CONTEXT versehen werden:
if ($rootPath === FALSE) { $rootPath = dirname(__FILE__) . '/../'; } elseif (substr($rootPath, -1) !== '/') { $rootPath .= '/'; } putenv ("FLOW_REWRITEURLS=1"); putenv ("FLOW_CONTEXT=Production"); require($rootPath . 'Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Bootstrap.php');
FLOW Konfiguration: Datenbank-Setup
Das browserbasierte Setup bricht mit einem Fehler ab, sofern nicht die Datenbankeinstellungen in der Datei Settings.yaml angepasst wurden:
cd /home/doms/example.org/TYPO3-Neos/Configuration cp Settings.yaml.example Settings.yaml nano Settings.yaml
Folgende Einstellungen müssen vorgenommen werden
TYPO3: Flow: persistence: # It is good practice to not specify user name and password of the database # connection in this global Settings.yaml file. Rather specify them in the # settings of the respective context (Production / Development ...). backendOptions: driver: 'pdo_mysql' dbname: 'DBNAME' # an DB-Namen anpassen user: 'DBUSER' # an DB-User anpassen password: 'PASSWORT' # an DB-Passwort anpassen host: 'localhost' # an DB-Host anpassen (bei HS: localhost)
Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch: Details zum DB-Setup für Flow
Dokumentation zur Installation von Flow
Dokumentation zur Konfiguration von Flow
Durchführung des TYPO3 Neos Setups
Die Setup-Routine von TYPO3 Neos läuft menügeführt über einen Browser ab. Der URL zum Aufruf lautet:
http://example.org/setup/
Setup-Passwort
Eine Passwortabfrage schützt die Setup-Routine. Das benötigte initiale Passwort wird beim Starten der Setup-Routine in einer temporären Textdatei auf dem Webserver gespeichert. Diese Datei kann man nur über die Konsole öffnen. Der Pfad zum Ablageort der Datei wird im Bildschirmdialog angezeigt.
Wiederherstellung des Setup-Passwortes
Nach der erstmaligen Eingabe des Setup-Passwortes wird die temporäre Textdatei in der es enthalten ist gelöscht. Hat man das Passwort vergessen, muss man für ein weiteres Aufrufen des Setups die Datei SetupKey löschen:
rm /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/Data/Persistent/FileBasedSimpleKeyService/SetupKey
und anschließend die Setup-Routine wie oben beschrieben erneut aufrufen.
Datenbank Setup
Eine Datenbank (z.B. MySQL) und einen entsprechenden user sollte man sich zuvor schon per HSAdmin leer angelegt haben. Anzugeben sind im Bildschirmdialog nun noch der DB Username, das DB-Passwort, der DB-Host (= localhost) und der DB-Name.
Die Einstellung eines anderen Datenbanktyps kann durch Änderung des DB-Treibers in der Datei
/home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/Configuration/Settings.yaml
erzielt werden.
Administrator anlegen
Menügestützt legt man einen Administrator an. Weitere User kann man nach der Installation in der Userverwaltung des Backends ergänzen. Alternativ kann man auch in der Konsole User anlegen per:
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/ ./flow typo3.neos:user:create <Username> <Passwort> <Vorname> <Nachname>
(Achtung: Das so eingegebene Passwort könnte im Freitext lesbar in der Prozessliste und logdateien auftauchen! TODO: Prüfen!)
Die Adminrolle kann man einem User ebenfalls in der Konsole vergeben:
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/ ./flow typo3.neos:user:addrole <Username> Administrator
Abschluss des Setups
Zum Schluss kann man entweder eine Demo-Site importieren oder unter Angabe eines "Package Name" und eines "Site Name" eine leere Webseite anlegen lassen.
Zugang zur Installation
Nach dem erfolgreichen Abschluss des Setups erreicht man die zentralen Elemente von TYPO3 Neos über einen Browser wiefolgt:
Setup: http://example.org/setup/
Frontend: http://example.org/
Backend: http://example.org/neos/
Upgrade von TYPO3 Neos...
Es kann entweder auf eine bestimmte Version aktualisiert werden oder auf die neueste Version (= "Development Master").
...auf eine bestimmte TYPO3 Neos Version
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/ /home/pacs/xyz00/users/username/composer/composer.phar require "typo3/neos:<version>" /home/pacs/xyz00/users/username/composer/composer.phar require "typo3/neosdemotypo3org:<version>" /home/pacs/xyz00/users/username/composer/composer.phar require "typo3/sitekickstarter:<version>"
Anschließend wird der Cache gelöscht:
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/ ./flow flow:cache:flush --force
Falls dabei Fehlermeldungen auftreten, könnte der Workaround (s.u.) helfen.
...auf den Development Master (neueste Version)
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/ /home/pacs/xyz00/users/username/composer/composer.phar update
Anschließend wird der Cache gelöscht:
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/ ./flow flow:cache:flush --force
Falls dabei Fehlermeldungen auftreten, könnte der Workaround (s.u.) helfen.
Workaround falls Einstellungen einer eigenen php-cli.ini nicht von Flow berücksichtigt werden
Abändern der Shebang-Zeile des Skriptes "flow" innerhalb des Verzeichnisses "TYPO3-Neos" in:
#!/usr/bin/php -d magic_quotes_gpc=0 -d date.timezone="Europe/Berlin"
Prüfen, welche Paketversionen installiert sind
Mit composer kann man auf der Kommandozeile prüfen, welchen Versionsstand die installierten Pakete haben:
http://getcomposer.org/doc/03-cli.md#show
Fehlerbehebung während und nach der Installation
Fehlermeldung im Webserverlog - File does not exist: icons
Nach dem Aufruf des URL
http://www.example.org/
erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung
File does not exist: /home/doms/example.org/htdocs/icons, referer [...]
Lösung
TODO: Lösung beschreiben
Fehlermeldung im Webserverlog - File does not exist: favicon.ico
Nach dem Aufruf des URL
http://www.example.org/
erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung
File does not exist: /home/doms/example.org/htdocs/favicon.ico, referer [...]
Lösung
Es muss eine Datei namens favicon.ico in das Webroot der Neos-Installation gelegt werden.
Fehlermeldung im Webserverlog - Options not allowed here
Nach dem Aufruf des URL
http://www.example.org/
erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung
/home/doms/example.org/htdocs/TYPO3-Neos/Web/.htaccess: Options not allowed here, referer [...]
Lösung
Siehe Konfigurationsschritt TODO: Referenz verankern
Fehlermeldung bei Aufruf von example.org (ohne vorangestelltes www)
Ruft man den URL http://example.org (= ohne vorangestelltes "www") auf, so erhält man folgende Fehlermeldung im Browser
Exception while rendering page<TYPO3.Neos:Page>/ body<TYPO3.TypoScript:Template>/ parts/ mainMenu: Invalid paths: path of starting point must first part of end point path.
Lösung
Dieser Fehler wird mit Lösungsvorschlägen auch hier beschrieben:
http://forum.typo3.org/index.php/t/200456/
Fehlermeldung bei Aufruf von www.example.org
Ruft man den URL http://www.example.org auf, so erhält man folgende Fehlermeldung im Browser
Exception while rendering landingPage: No "landingPage" TypoScript object found. Please make sure to define one in your TypoScript configuration. (20131223204230d197e0)
Lösung
Dieser Fehler wird mit Lösungsvorschlägen auch hier beschrieben:
http://forum.typo3.org/index.php/t/200456/
Installation mit eigenem Serverdienst/root-Server
Für die Installation mit der Option "Eigener Serverdienst" sind zusätzlich weitere Schritte notwendig bzw. empfehlenswert.
Die in den folgenden Abschnitten beschriebenen Konfigurationen sind im Falle eines shared Hosting Paketes nicht erforderlich!
Optional: Virtuellen Host einrichten
Das Neos Kompendium empfiehlt die Einrichtung eines eigenen virtuellen Hosts in seiner Apache-Konfiguration. Dies ist bei Hostsharing nur dann manuell erforderlich wenn ein Rootserver gebucht wurde oder auf einem lokalen Apache (kostenpflichtige Option "Betrieb eines eigenen Serverdienstes") entwickelt wird.
Notwendigkeit der Paket-Option "Betrieb eines eigenen Serverdienstes"
Mit der Paket-Option "Betrieb eines eigenen Serverdienstes" lässt sich ein eigener Apache (oder nginx, oder ...) betreiben und nach eigenen Vorstellungen frei konfigurieren. Dies ist allerdings nur erforderlich wenn
- TYPO3 Neos mit der Hostsharing Standard-Konfiguration nicht funktioniert oder
- die Performance von PHP über FastCGI für eine Seite mit hohem Traffic nicht ausreicht.
Die Installation eines eigenen Apache ist im HS-Wiki unter Apache installieren beschrieben.
Ohne Paket-Option "Betrieb eines eigenen Serverdienstes"
Auf Hostsharing Systemen läuft für die shared Hosting-Pakete ein zentraler Apache, der standardmäßig die Anfragen für die in den Paketen aufgeschalteten Domains verarbeitet und die Webseiten ausliefert.
Durch ein zentrales Template wird für jede aufgeschaltete Domain im Apache automatisch (von hsadmin) ein Virtual Host eingerichtet. Die Konfiguration lässt sich lediglich durch einige der HSAdmin-Domain-Options beeinflussen.
Als Template-"Sprache" kommt velocity zum Einsatz. Template des Virtual Hosts so wie es beim Apachen über PHP via FastCGI bei HS betrieben wird:
TODO: Hier Template des Virtual Hosts einfügen
Dateirechte für TYPO3 Flow setzen
Zum Setzen der benötigten Dateirechte gibt man diese Befehlsfolge in die Konsole ein:
cd /home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos sudo ./flow flow:core:setfilepermissions <shelluser> <wwwuser> <wwwgroup>
wobei:
<shelluser> ::= User mit dem man in der Konsole eingeloggt ist (Befehl "whoami" eingeben; bei Hostsharing ist dies der Paketadmin der Form xyz00 oder ein User der Form xyz00-username)
<wwwuser> ::= User, unter dem der Webserver läuft (steht in der Datei httpd.conf; bei Hostsharing ist dies für shared hosting-Pakete (PHP via FastCGI) der Domain-User der Form xyz00-username TODO: Prüfen!)
<wwwgroup> ::= Gruppe, unter der der Webserver läuft (steht in der Datei httpd.conf; bei Hostsharing ist dies für shared hosting-Pakete (PHP via FastCGI) die Gruppe des Paketes (zu dem die Domain gehört) der Form xyz00 TODO: Prüfen!)
Siehe auch: Weitergehende Informationen zum Setzen der Dateirechte für TYPO3 Neos
TODO: Hier entsprechende Ergänzungen für "non-shared hosting" machen...