TYPO3 Neos installieren: Unterschied zwischen den Versionen
(20 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 33: | Zeile 33: | ||
=== Bemerkung zu bereitstehenden PHP Versionen === | === Bemerkung zu bereitstehenden PHP Versionen === | ||
Die PHP-Kommandozeilenversion (PHP-CLI) erfüllt die geforderte Versionsnummer von 5.3.7: Installiert ist PHP 5.4.4-14+deb7u11 (cli) | |||
Die Versionsnummer von PHP-CLI kann mit dem folgenden Befehl in der Kommandozeile überprüft werden: | Die Versionsnummer von PHP-CLI kann mit dem folgenden Befehl in der Kommandozeile überprüft werden: | ||
<syntaxhighlight lang="bash"> | |||
php --version | |||
</syntaxhighlight> | |||
=== Umsetzung der Einstellungen für php.ini === | |||
Die php.ini für PHP via FastCGI muss in diesem Verzeichnis liegen: | |||
= | <syntaxhighlight lang="bash"> | ||
/home/doms/example.org/fastcgi | |||
</syntaxhighlight> | |||
(existiert dort keine php.ini, kann sie manuell leer angelegt werden und anschließend mit einem Editor (z.B. nano) bearbeitet werden): | (existiert dort keine php.ini, kann sie manuell leer angelegt werden und anschließend mit einem Editor (z.B. nano) bearbeitet werden): | ||
<syntaxhighlight lang="bash"> | |||
touch php.ini | |||
nano php.ini | |||
</syntaxhighlight> | |||
Alternativ kann man auch eine Muster-php.ini dorthin kopieren. Siehe hierzu: [[PHP#Beispiel_muster.example.com|Beispiel muster.example.com]] | Alternativ kann man auch eine Muster-php.ini dorthin kopieren. Siehe hierzu: [[PHP#Beispiel_muster.example.com|Beispiel muster.example.com]] | ||
Zeile 57: | Zeile 61: | ||
Die nötigen Einstellungen für TYPO3 Neos hier gesammelt als Block für copy&paste an das Ende der php.ini | Die nötigen Einstellungen für TYPO3 Neos hier gesammelt als Block für copy&paste an das Ende der php.ini | ||
<syntaxhighlight lang="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 | |||
</syntaxhighlight> | |||
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: | 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: | ||
<syntaxhighlight lang="bash"> | |||
killall php -u $USER | |||
</syntaxhighlight> | |||
== Notwendige Schritte zur Installation == | == Notwendige Schritte zur Installation == | ||
Zeile 73: | Zeile 81: | ||
Die Installation besteht im Wesentlichen aus diesen Schritten: | Die Installation besteht im Wesentlichen aus diesen Schritten: | ||
# [[TYPO3_Neos_installieren#TYPO3_Neos_und_Abh.C3.A4ngigkeiten_herunterladen_und_installieren|TYPO3 Neos und Abhängigkeiten herunterladen, installieren]] | # [[TYPO3_Neos_installieren#TYPO3_Neos_und_Abh.C3.A4ngigkeiten_herunterladen_und_installieren|TYPO3 Neos und Abhängigkeiten herunterladen, installieren]] | ||
# [[TYPO3_Neos_installieren#Inhalte_des_Verzeichnisses_Web_in_DocumentRoot_kopieren|Inhalte des Verzeichnisses Web in DocumentRoot kopieren]] | # [[TYPO3_Neos_installieren#Inhalte_des_Verzeichnisses_Web_in_DocumentRoot_kopieren|Inhalte des Verzeichnisses Web in DocumentRoot kopieren]] | ||
Zeile 81: | Zeile 88: | ||
# [[TYPO3_Neos_installieren#TYPO3_Flow_Konfiguration:_PHP-Umgebung|FLOW Konfiguration: PHP-Umgebung]] | # [[TYPO3_Neos_installieren#TYPO3_Flow_Konfiguration:_PHP-Umgebung|FLOW Konfiguration: PHP-Umgebung]] | ||
# [[TYPO3_Neos_installieren#TYPO3_Neos_Setup|TYPO3 Neos Setup]] | # [[TYPO3_Neos_installieren#TYPO3_Neos_Setup|TYPO3 Neos Setup]] | ||
== TYPO3 Neos und Abhängigkeiten herunterladen und installieren == | == TYPO3 Neos und Abhängigkeiten herunterladen und installieren == | ||
Zeile 104: | Zeile 93: | ||
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): | 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): | ||
<syntaxhighlight lang="bash"> | |||
composer create-project typo3/neos-base-distribution /home/doms/example.org/TYPO3-Neos | |||
</syntaxhighlight> | |||
Während der Installation erscheinen mehrere dieser Warnungen: | Während der Installation erscheinen mehrere dieser Warnungen: | ||
<syntaxhighlight lang="output"> | |||
Class TYPO3\Flow\Composer\InstallerScripts is not autoloadable, can not call post-package-install script | |||
</syntaxhighlight> | |||
'''Diese Warnungen können ignoriert werden''', siehe http://forum.typo3.org/index.php/t/200300/ | '''Diese Warnungen können ignoriert werden''', siehe http://forum.typo3.org/index.php/t/200300/ | ||
Zeile 115: | Zeile 108: | ||
Wird die VCS-Historie (Version Control System, Versionsverwaltung) nicht benötigt, kann man die folgende Frage mit "Y" bestätigen: | Wird die VCS-Historie (Version Control System, Versionsverwaltung) nicht benötigt, kann man die folgende Frage mit "Y" bestätigen: | ||
<syntaxhighlight lang="output"> | |||
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? | |||
</syntaxhighlight> | |||
Nun existiert ein Verzeichnis TYPO3-Neos (etwa 200 MB) im Webroot unter | Nun existiert ein Verzeichnis TYPO3-Neos (etwa 200 MB) im Webroot unter | ||
<syntaxhighlight lang="bash"> | |||
/home/doms/example.org/TYPO3-Neos | |||
</syntaxhighlight> | |||
Dieses Verzeichnis enthält alle Dateien von TYPO3 Neos. | Dieses Verzeichnis enthält alle Dateien von TYPO3 Neos. | ||
Zeile 125: | Zeile 122: | ||
Anschließend sollte composer alle Pakete nochmal auf verfügbare Updates prüfen und diese dann auch installieren: | Anschließend sollte composer alle Pakete nochmal auf verfügbare Updates prüfen und diese dann auch installieren: | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
composer update | |||
</syntaxhighlight> | |||
=== Inhalte des Verzeichnisses Web in DocumentRoot kopieren === | === Inhalte des Verzeichnisses Web in DocumentRoot kopieren === | ||
Zeile 133: | Zeile 131: | ||
Der Installationsordner TYPO3-Neos liegt oberhalb des DocumentRoot. Damit der Webserver dennoch auf die Installation zugreifen kann, muss man nun den Inhalt des Verzeichnisses /home/doms/example.org/TYPO3-Neos/Web in das Verzeichnis /home/doms/example.org/htdocs kopieren: | Der Installationsordner TYPO3-Neos liegt oberhalb des DocumentRoot. Damit der Webserver dennoch auf die Installation zugreifen kann, muss man nun den Inhalt des Verzeichnisses /home/doms/example.org/TYPO3-Neos/Web in das Verzeichnis /home/doms/example.org/htdocs kopieren: | ||
<syntaxhighlight lang="bash"> | |||
cp /home/doms/example.org/TYPO3-Neos/Web * /home/doms/example.org/htdocs | |||
</syntaxhighlight> | |||
=== Anpassen der .htaccess-Datei === | === Anpassen der .htaccess-Datei === | ||
Zeile 140: | Zeile 139: | ||
Die .htaccess-Datei im Pfad | Die .htaccess-Datei im Pfad | ||
<syntaxhighlight lang="bash"> | |||
/home/doms/example.org/htdocs | |||
</syntaxhighlight> | |||
muss im folgenden Absatz für die Umgebungsvariable '''FLOW_ROOTPATH''' mit dem Pfad zu TYPO3 Flow versehen werden: | muss im folgenden Absatz für die Umgebungsvariable '''FLOW_ROOTPATH''' mit dem Pfad zu TYPO3 Flow versehen werden: | ||
<syntaxhighlight lang="apache"> | |||
# 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/ | |||
</syntaxhighlight> | |||
Weiterhin ist die Anpassung dieses Absatzes nötig | Weiterhin ist die Anpassung dieses Absatzes nötig | ||
<syntaxhighlight lang="apache"> | |||
# 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 / | |||
</syntaxhighlight> | |||
Bei Hostsharing ist die Webserver-Option "MultiViews" per default ausgeschaltet. Im Shared Hosting kann man zudem - abgesehen von [https://wiki.hostsharing.net/index.php?title=Hsadmin/Domainoptionen 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: | Bei Hostsharing ist die Webserver-Option "MultiViews" per default ausgeschaltet. Im Shared Hosting kann man zudem - abgesehen von [https://wiki.hostsharing.net/index.php?title=Hsadmin/Domainoptionen 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: | ||
<syntaxhighlight lang="apache"> | |||
# prevents Apache's automatic file negotiation, it breaks resource URLs | |||
#Options -MultiViews | |||
</syntaxhighlight> | |||
=== Anpassen der index.php-Datei === | === Anpassen der index.php-Datei === | ||
Zeile 169: | Zeile 173: | ||
Die Datei index.php im Pfad | Die Datei index.php im Pfad | ||
<syntaxhighlight lang="bash"> | |||
/home/doms/example.org/htdocs | |||
</syntaxhighlight> | |||
muss zu Beginn (Zeilen 2 und 3 direkt nach Zeile "<?php") mit den Umgebungsvariablen '''FLOW_REWRITEURLS''' und '''FLOW_CONTEXT''' versehen werden: | muss zu Beginn (Zeilen 2 und 3 direkt nach Zeile "<?php") mit den Umgebungsvariablen '''FLOW_REWRITEURLS''' und '''FLOW_CONTEXT''' versehen werden: | ||
<syntaxhighlight lang="php"> | |||
<?php | |||
putenv ("FLOW_REWRITEURLS=1"); | |||
putenv ("FLOW_CONTEXT=Production"); | |||
/* | |||
* This script belongs to the TYPO3 Flow framework. */ | |||
</syntaxhighlight> | |||
'''Anmerkung:''' | '''Anmerkung:''' | ||
Zeile 192: | Zeile 199: | ||
Das browserbasierte Setup bricht mit einem Fehler ab, sofern nicht die Datenbankeinstellungen in der Datei Settings.yaml angepasst wurden: | Das browserbasierte Setup bricht mit einem Fehler ab, sofern nicht die Datenbankeinstellungen in der Datei Settings.yaml angepasst wurden: | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/Configuration | |||
cp Settings.yaml.example Settings.yaml | |||
nano Settings.yaml | |||
</syntaxhighlight> | |||
Folgende Einstellungen müssen vorgenommen werden | Folgende Einstellungen müssen vorgenommen werden | ||
<syntaxhighlight lang="yaml" line> | |||
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' # Datenbanktyp (DB-Treiber) | |||
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) | |||
</syntaxhighlight> | |||
'''Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch:''' [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html#database-setup Details zum DB-Setup für Flow] | '''Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch:''' [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html#database-setup Details zum DB-Setup für Flow] | ||
Zeile 221: | Zeile 232: | ||
Die Datei Settings.yaml muss erneut angepasst werden: | Die Datei Settings.yaml muss erneut angepasst werden: | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/Configuration | |||
cp Settings.yaml.example Settings.yaml | |||
nano Settings.yaml | |||
</syntaxhighlight> | |||
Folgende Einstellungen müssen vorgenommen werden | Folgende Einstellungen müssen vorgenommen werden | ||
<syntaxhighlight lang="yaml"> | |||
TYPO3: | |||
Flow: | |||
core: | |||
# Path and filename of the PHP binary | |||
# The constant PHP_BINDIR usually contains the path, but on Windows this doesn't work reliably | |||
phpBinaryPathAndFilename: '/usr/bin/php' | |||
###################################################################################### | |||
# Set which php.ini file should be used for the CLI sub requests. | |||
# If not set (that is value equals NULL) the php.ini file of the executing process (usually the web server's) is used. | |||
# If set to a path and filename, the specified php.ini file is loaded. | |||
# If set to boolean FALSE, Flow does not try to specify any php.ini file to the sub process. | |||
subRequestPhpIniPathAndFilename: '/home/doms/example.org/php-cli.ini' | |||
</syntaxhighlight> | |||
'''Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch:''' [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html#database-setup Details zum DB-Setup für Flow] | '''Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch:''' [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html#database-setup Details zum DB-Setup für Flow] | ||
Zeile 246: | Zeile 261: | ||
Die Setup-Routine von TYPO3 Neos läuft menügeführt über einen Browser ab. Der URL zum Aufruf lautet: | Die Setup-Routine von TYPO3 Neos läuft menügeführt über einen Browser ab. Der URL zum Aufruf lautet: | ||
<syntaxhighlight lang="output"> | |||
http://example.org/setup/ | |||
</syntaxhighlight> | |||
=== Setup-Passwort === | === 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: | 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: | ||
<syntaxhighlight lang="output"> | |||
Initial Password: The initial password for accessing the setup can be found in the file | |||
/home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/Data/SetupPassword.txt | |||
</syntaxhighlight> | |||
==== Wiederherstellung des Setup-Passwortes ==== | ==== Wiederherstellung des Setup-Passwortes ==== | ||
Zeile 261: | Zeile 278: | ||
Hat man das Passwort vergessen, muss man für ein weiteres Aufrufen des Setups die Datei SetupKey löschen: | Hat man das Passwort vergessen, muss man für ein weiteres Aufrufen des Setups die Datei SetupKey löschen: | ||
<syntaxhighlight lang="bash"> | |||
rm /home/doms/example.org/TYPO3-Neos/Data/Persistent/FileBasedSimpleKeyService/SetupKey | |||
</syntaxhighlight> | |||
und anschließend die Setup-Routine wie oben beschrieben erneut aufrufen. | und anschließend die Setup-Routine wie oben beschrieben erneut aufrufen. | ||
Zeile 274: | Zeile 293: | ||
Alternativ lassen sich User auch in der Konsole anlegen per: | Alternativ lassen sich User auch in der Konsole anlegen per: | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
./flow typo3.neos:user:create <Username> <Passwort> <Vorname> <Nachname> | |||
</syntaxhighlight> | |||
(Achtung: Das so eingegebene Passwort könnte im Freitext lesbar in der Prozessliste und logdateien auftauchen! '''''TODO: Prüfen!''''') | (Achtung: Das so eingegebene Passwort könnte im Freitext lesbar in der Prozessliste und logdateien auftauchen! '''''TODO: Prüfen!''''') | ||
Zeile 281: | Zeile 302: | ||
Die Adminrolle lässt sich einem User ebenfalls in der Konsole vergeben: | Die Adminrolle lässt sich einem User ebenfalls in der Konsole vergeben: | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
./flow typo3.neos:user:addrole <Username> Administrator | |||
</syntaxhighlight> | |||
=== Abschluss des Setups === | === Abschluss des Setups === | ||
Zeile 306: | Zeile 329: | ||
Das URI-Suffix ist standardmäßig auf ".html" eingestellt. Man kann dieses Suffix zentral ändern und auch ganz entfernen: | Das URI-Suffix ist standardmäßig auf ".html" eingestellt. Man kann dieses Suffix zentral ändern und auch ganz entfernen: | ||
<syntaxhighlight lang="bash"> | |||
nano /home/doms/example.org/TYPO3-Neos/Configuration/Routes.yaml | |||
</syntaxhighlight> | |||
Der Eintrag für defaultUriSuffix kann hierzu geändert werden: | Der Eintrag für defaultUriSuffix kann hierzu geändert werden: | ||
<syntaxhighlight lang="yaml" line> | |||
# TYPO3 Neos subroutes | |||
- | |||
name: 'TYPO3 Neos' | |||
uriPattern: '<TYPO3NeosSubroutes>' | |||
subRoutes: | |||
'TYPO3NeosSubroutes': | |||
package: 'TYPO3.Neos' | |||
variables: | |||
'defaultUriSuffix': <nowiki>''</nowiki> | |||
</syntaxhighlight> | |||
'''Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch:''' [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html#database-setup Details zum DB-Setup für Flow] | |||
Anschließend müssen die [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Cache_eines_TYPO3_Flow-Kontextes_l.C3.B6schen Caches der Flow-Kontexte gelöscht werden]. | |||
Quelle: https://review.typo3.org/#/c/25746 | |||
== Zugang zur Installation == | == Zugang zur Installation == | ||
Zeile 340: | Zeile 373: | ||
| Configuration/Settings.yaml | | Configuration/Settings.yaml | ||
| '''Konfigurationsdatei für TYPO3 Flow''' (u.a. für Datenbank-Zugangsdaten) | | '''Konfigurationsdatei für TYPO3 Flow''' (u.a. für Datenbank-Zugangsdaten) | ||
|- | |||
| Data/Logs/Security_Development.log | |||
| Logdatei analog zu '''Security.log''' (s.u.), allerdings für den '''Development-Kontext'''. | |||
|- | |||
| Data/Logs/Security.log | |||
| Logdatei, die '''Loginversuche im Production-Kontext''' protokolliert. | |||
|- | |||
| Data/Logs/System_Development.log | |||
| Logdatei analog zu '''System.log''' (s.u.), allerdings für den '''Development-Kontext'''. | |||
|- | |||
| Data/Logs/Sytem.log | |||
| '''System-Logdatei im Production-Kontext''' (enthält auch Hinweise auf Fehler oder Exceptions, siehe "CRITICAL"). | |||
|- | |||
| Data/Logs/Exceptions/ | |||
| Zu jeder '''Fehlermeldung (Exception)''' liegt hier eine *.txt-Datei, die Tag und Uhrzeit im Dateinamen trägt. In den Textdateien findet man die Fehlermeldung und einen Trace. | |||
|- | |- | ||
| Data/Persistent/FileBasedSimpleKeyService/SetupKey | | Data/Persistent/FileBasedSimpleKeyService/SetupKey | ||
Zeile 377: | Zeile 425: | ||
Es kann entweder auf eine bestimmte Version aktualisiert werden oder auf die neueste Version (= "Development Master"). | Es kann entweder auf eine bestimmte Version aktualisiert werden oder auf die neueste Version (= "Development Master"). | ||
'''In beiden Fällen''' müssen anschließend die [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Cache_eines_TYPO3_Flow-Kontextes_l.C3.B6schen Caches der Flow-Kontexte gelöscht werden] | '''In beiden Fällen''' müssen anschließend die [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Cache_eines_TYPO3_Flow-Kontextes_l.C3.B6schen Caches der Flow-Kontexte gelöscht werden] und eine [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Migration_der_Doctrine-Datenbank Migration der Doctrine-Datenbank] durchgeführt werden. | ||
Vor jedem Update sollte man prüfen, ob composer selbst ein Update benötigt: | |||
<syntaxhighlight lang="bash"> | |||
composer self-update | |||
</syntaxhighlight> | |||
=== ...auf eine bestimmte TYPO3 Neos Version === | === ...auf eine bestimmte TYPO3 Neos Version === | ||
(Statt <version> z.B. 1.0.*) | |||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
composer require "typo3/neos:<version>" | |||
composer require "typo3/neos-nodetypes:<version>" | |||
composer require "typo3/neosdemotypo3org:<version>" | |||
composer require "typo3/sitekickstarter:<version>" | |||
</syntaxhighlight> | |||
=== ...auf den Development Master (neueste Version) === | === ...auf den Development Master (neueste Version) === | ||
'''Einmalig''' ist zuvor in der composer.json (siehe TYPO3-Neos Rootverzeichnis) statt "1.0.*" der Eintrag "dev-master" zu hinterlegen: | |||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
nano composer.json | |||
</syntaxhighlight> | |||
dort sind die vorhandenen Einträge wiefolgt zu ändern (Die Leerzeichen zu Beginn sind wichtig, da sie zum Syntax gehören!): | |||
<syntaxhighlight lang="json"> | |||
"require": { | |||
"typo3/neos": "dev-master", | |||
"typo3/neos-nodetypes": "dev-master", | |||
"typo3/neosdemotypo3org": "dev-master", | |||
"typo3/neos-kickstarter": "dev-master", | |||
"doctrine/migrations": "@dev" | |||
} | |||
</syntaxhighlight> | |||
Anschließend kann das Update jedes Mal durch composer angestoßen werden: | |||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
composer update | |||
</syntaxhighlight> | |||
=== Cache eines TYPO3 Flow-Kontextes löschen === | === Cache eines TYPO3 Flow-Kontextes löschen === | ||
Zeile 400: | Zeile 479: | ||
Löschen des Standard-Flow-CLI-Kontextes "Development": | Löschen des Standard-Flow-CLI-Kontextes "Development": | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos/ | |||
./flow flow:cache:flush --force | |||
</syntaxhighlight> | |||
Ein anderer Kontext muss dem Kommandozeilentool flow explizit mitgegeben werden [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Setzen_eines_Flow-Kontextes Setzen eines Flow Kontextes] (s.u.). | Ein anderer Kontext muss dem Kommandozeilentool flow explizit mitgegeben werden [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Setzen_eines_Flow-Kontextes Setzen eines Flow Kontextes] (s.u.). | ||
Zeile 409: | Zeile 489: | ||
Es ist ein [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Workaround_falls_Einstellungen_einer_eigenen_php-cli.ini_nicht_von_Flow_ber.C3.BCcksichtigt_werden Workaround] (s.u.) nötig, falls beim Löschen des Caches Fehlermeldungen wie diese auftreten: | Es ist ein [https://wiki.hostsharing.net/index.php?title=TYPO3_Neos_installieren#Workaround_falls_Einstellungen_einer_eigenen_php-cli.ini_nicht_von_Flow_ber.C3.BCcksichtigt_werden Workaround] (s.u.) nötig, falls beim Löschen des Caches Fehlermeldungen wie diese auftreten: | ||
<syntaxhighlight lang="output"> | |||
Flow requires the PHP setting "magic_quotes_gpc" set to Off. (Error #1224003190) | |||
</syntaxhighlight> | |||
=== Migration der Doctrine-Datenbank === | === Migration der Doctrine-Datenbank === | ||
<syntaxhighlight lang="bash"> | |||
./flow core:migrate | |||
./flow doctrine:migrationgenerate | |||
./flow doctrine:migrate | |||
</syntaxhighlight> | |||
=== Setzen eines Flow-Kontextes === | === Setzen eines Flow-Kontextes === | ||
Zeile 422: | Zeile 507: | ||
Ein anderer Kontext muss dem Kommandozeilentool flow explizit mitgegeben werden (z.B. "Production"): | Ein anderer Kontext muss dem Kommandozeilentool flow explizit mitgegeben werden (z.B. "Production"): | ||
<syntaxhighlight lang="bash"> | |||
FLOW_CONTEXT=Production ./flow ''...weitere Parameter...'' | |||
</syntaxhighlight> | |||
Alternativ kann man den Kontext auch über '''Umgebungsvariablen der Kommandozeile''' definieren: | Alternativ kann man den Kontext auch über '''Umgebungsvariablen der Kommandozeile''' definieren: | ||
Zeile 430: | Zeile 516: | ||
Bei einem '''eigenen Apache-Server''' wird der Production-Kontext normalerweise wiefolgt konfiguriert: | Bei einem '''eigenen Apache-Server''' wird der Production-Kontext normalerweise wiefolgt konfiguriert: | ||
<syntaxhighlight lang="apache"> | |||
SetEnv FLOW_CONTEXT Production | |||
</syntaxhighlight> | |||
Im '''Shared Hosting''' ist dies nicht möglich. Stattdessen wird der Kontext über den '''putenv-Befehl''' in einem PHP-Skript gesetzt: | Im '''Shared Hosting''' ist dies nicht möglich. Stattdessen wird der Kontext über den '''putenv-Befehl''' in einem PHP-Skript gesetzt: | ||
<syntaxhighlight lang="php"> | |||
putenv ("FLOW_CONTEXT=Production"); | |||
</syntaxhighlight> | |||
=== Workaround falls Einstellungen einer eigenen php-cli.ini nicht von Flow berücksichtigt werden === | === 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: | Abändern der Shebang-Zeile des Skriptes "flow" innerhalb des Verzeichnisses "TYPO3-Neos" in: | ||
<syntaxhighlight lang="bash"> | |||
#!/usr/bin/php -c/home/doms/example.org/php-cli.ini | |||
</syntaxhighlight> | |||
'''Detaillierte Erklärung:''' Bei Debian darf die Shebang Zeile nur 127 Zeichen (byte) lang sein und maximal 1 Leerzeichen enthalten. Es hängt dann vom Binary ab, ob es das darüber hinaus "am Stück" und ohne weitere Leerzeichen Übergebene versteht. PHP kann es offensichtlich nicht. | '''Detaillierte Erklärung:''' Bei Debian darf die Shebang Zeile nur 127 Zeichen (byte) lang sein und maximal 1 Leerzeichen enthalten. Es hängt dann vom Binary ab, ob es das darüber hinaus "am Stück" und ohne weitere Leerzeichen Übergebene versteht. PHP kann es offensichtlich nicht. | ||
Zeile 454: | Zeile 544: | ||
Mit composer kann man auf der Kommandozeile prüfen, welchen Versionsstand die installierten Pakete haben: | Mit composer kann man auf der Kommandozeile prüfen, welchen Versionsstand die installierten Pakete haben: | ||
<syntaxhighlight lang="bash"> | |||
composer show -i | |||
</syntaxhighlight> | |||
Mehr Details unter http://getcomposer.org/doc/03-cli.md#show | Mehr Details unter http://getcomposer.org/doc/03-cli.md#show | ||
Zeile 465: | Zeile 557: | ||
Nach dem Aufruf des URL | Nach dem Aufruf des URL | ||
<syntaxhighlight lang="output"> | |||
http://www.example.org/ | |||
</syntaxhighlight> | |||
erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung | erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung | ||
<syntaxhighlight lang="output"> | |||
File does not exist: /home/doms/example.org/htdocs/icons, referer [...] | |||
</syntaxhighlight> | |||
==== Lösung ==== | ==== Lösung ==== | ||
Zeile 481: | Zeile 576: | ||
Nach dem Aufruf des URL | Nach dem Aufruf des URL | ||
<syntaxhighlight lang="output"> | |||
http://www.example.org/ | |||
</syntaxhighlight> | |||
erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung | erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung | ||
<syntaxhighlight lang="output"> | |||
File does not exist: /home/doms/example.org/htdocs/favicon.ico, referer [...] | |||
</syntaxhighlight> | |||
==== Lösung ==== | ==== Lösung ==== | ||
Es muss eine Datei namens favicon.ico in das Webroot der Neos-Installation gelegt werden. | Es muss eine Datei namens favicon.ico in das Webroot der Neos-Installation gelegt werden. | ||
=== Fehlermeldung im Webserverlog - Options not allowed here === | === Fehlermeldung im Webserverlog - Options not allowed here === | ||
Zeile 498: | Zeile 594: | ||
Nach dem Aufruf des URL | Nach dem Aufruf des URL | ||
<syntaxhighlight lang="output"> | |||
http://www.example.org/ | |||
</syntaxhighlight> | |||
erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung | erscheint im Weblog des Apachen (siehe Datei des Paketadmins /home/pacs/xyz00/var/web.err) diese Fehlermeldung | ||
<syntaxhighlight lang="output"> | |||
/home/doms/example.org/htdocs/TYPO3-Neos/Web/.htaccess: Options not allowed here, referer [...] | |||
</syntaxhighlight> | |||
==== Lösung ==== | ==== Lösung ==== | ||
Siehe Konfigurationsschritt '''''TODO: Referenz verankern''''' | Siehe Konfigurationsschritt '''''TODO: Referenz verankern''''' | ||
=== Fehlermeldung bei Aufruf von example.org (ohne vorangestelltes www) === | === 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 | Ruft man den URL http://example.org (= ohne vorangestelltes "www") auf, so erhält man folgende Fehlermeldung im Browser | ||
<syntaxhighlight lang="output"> | |||
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. | |||
</syntaxhighlight> | |||
==== Lösung ==== | ==== Lösung ==== | ||
Zeile 531: | Zeile 631: | ||
Ruft man den URL http://www.example.org auf, so erhält man folgende Fehlermeldung im Browser | Ruft man den URL http://www.example.org auf, so erhält man folgende Fehlermeldung im Browser | ||
<syntaxhighlight lang="output"> | |||
Exception while rendering | |||
landingPage: | |||
No "landingPage" TypoScript object found. Please make sure to define one in your TypoScript configuration. (20131223204230d197e0) | |||
</syntaxhighlight> | |||
==== Lösung ==== | ==== Lösung ==== | ||
Zeile 578: | Zeile 679: | ||
Template des Virtual Hosts so wie es beim Apachen über PHP via FastCGI bei HS betrieben wird: | Template des Virtual Hosts so wie es beim Apachen über PHP via FastCGI bei HS betrieben wird: | ||
<syntaxhighlight lang="output"> | |||
TODO: Hier Template des Virtual Hosts einfügen | |||
</syntaxhighlight> | |||
=== Dateirechte für TYPO3 Flow setzen === | === Dateirechte für TYPO3 Flow setzen === | ||
Zeile 585: | Zeile 687: | ||
Zum Setzen der benötigten Dateirechte gibt man diese Befehlsfolge in die Konsole ein: | Zum Setzen der benötigten Dateirechte gibt man diese Befehlsfolge in die Konsole ein: | ||
<syntaxhighlight lang="bash"> | |||
cd /home/doms/example.org/TYPO3-Neos | |||
sudo ./flow flow:core:setfilepermissions <shelluser> <wwwuser> <wwwgroup> | |||
</syntaxhighlight> | |||
'''wobei:''' | '''wobei:''' | ||
Zeile 599: | Zeile 703: | ||
'''''TODO: Hier entsprechende Ergänzungen für "non-Shared Hosting" machen...''''' | '''''TODO: Hier entsprechende Ergänzungen für "non-Shared Hosting" machen...''''' | ||
== Weiterführende Links == | |||
http://neos.typo3.org/ | |||
http://docs.typo3.org/neos/TYPO3NeosDocumentation/Appendixes/ChangeLogs/101.html | |||
https://twitter.com/TYPO3Neos | |||
Zeile 604: | Zeile 717: | ||
[[Kategorie:Installationsanleitungen]] | [[Kategorie:Installationsanleitungen]] | ||
[[Kategorie:Software]] | [[Kategorie:Software]] | ||
[[Kategorie:CMS]] |
Aktuelle Version vom 17. Juni 2024, 11:35 Uhr
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!Teile der 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()
- proc_open()
- exec()
- 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
Die PHP-Kommandozeilenversion (PHP-CLI) erfüllt die geforderte Versionsnummer von 5.3.7: Installiert ist PHP 5.4.4-14+deb7u11 (cli)
Die Versionsnummer von PHP-CLI kann mit dem folgenden Befehl in der Kommandozeile überprüft werden:
php --version
Umsetzung der Einstellungen für php.ini
Die php.ini für PHP via FastCGI muss in diesem Verzeichnis liegen:
/home/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:
- TYPO3 Neos und Abhängigkeiten herunterladen, installieren
- Inhalte des Verzeichnisses Web in DocumentRoot kopieren
- Anpassen der .htaccess-Datei
- Anpassen der index.php-Datei
- FLOW Konfiguration: Datenbank-Setup
- FLOW Konfiguration: PHP-Umgebung
- TYPO3 Neos Setup
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):
composer create-project typo3/neos-base-distribution /home/doms/example.org/TYPO3-Neos
Während der Installation erscheinen mehrere dieser Warnungen:
Class TYPO3\Flow\Composer\InstallerScripts is not autoloadable, can not call post-package-install script
Diese Warnungen können ignoriert werden, siehe http://forum.typo3.org/index.php/t/200300/
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/doms/example.org/TYPO3-Neos
Dieses Verzeichnis enthält alle Dateien von TYPO3 Neos.
Anschließend sollte composer alle Pakete nochmal auf verfügbare Updates prüfen und diese dann auch installieren:
cd /home/doms/example.org/TYPO3-Neos/
composer update
Inhalte des Verzeichnisses Web in DocumentRoot kopieren
Der Installationsordner TYPO3-Neos liegt oberhalb des DocumentRoot. Damit der Webserver dennoch auf die Installation zugreifen kann, muss man nun den Inhalt des Verzeichnisses /home/doms/example.org/TYPO3-Neos/Web in das Verzeichnis /home/doms/example.org/htdocs kopieren:
cp /home/doms/example.org/TYPO3-Neos/Web * /home/doms/example.org/htdocs
Anpassen der .htaccess-Datei
Die .htaccess-Datei im Pfad
/home/doms/example.org/htdocs
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/doms/example.org/htdocs
muss zu Beginn (Zeilen 2 und 3 direkt nach Zeile "<?php") mit den Umgebungsvariablen FLOW_REWRITEURLS und FLOW_CONTEXT versehen werden:
<?php
putenv ("FLOW_REWRITEURLS=1");
putenv ("FLOW_CONTEXT=Production");
/*
* This script belongs to the TYPO3 Flow framework. */
Anmerkung:
Die Verwendung der Umgebungsvariable FLOW_REWRITEURLS=1 ist nötig, da es sonst zu einem Problem führt, dass bei Hostsharing Apache mit SuExec betrieben wird. (TODO: Nicht 100% sicher, ob dies bei Hostsharing nötig ist...)
Genauere Beschreibung: http://forge.typo3.org/issues/54451
TYPO3 Flow Konfiguration: Datenbank-Setup
Eine Datenbank (z.B. MySQL) und einen entsprechenden user sollte man sich zuvor schon per HSAdmin leer angelegt haben.
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' # Datenbanktyp (DB-Treiber)
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
TYPO3 Flow Konfiguration: PHP-Umgebung
Die Datei Settings.yaml muss erneut angepasst werden:
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:
core:
# Path and filename of the PHP binary
# The constant PHP_BINDIR usually contains the path, but on Windows this doesn't work reliably
phpBinaryPathAndFilename: '/usr/bin/php'
######################################################################################
# Set which php.ini file should be used for the CLI sub requests.
# If not set (that is value equals NULL) the php.ini file of the executing process (usually the web server's) is used.
# If set to a path and filename, the specified php.ini file is loaded.
# If set to boolean FALSE, Flow does not try to specify any php.ini file to the sub process.
subRequestPhpIniPathAndFilename: '/home/doms/example.org/php-cli.ini'
Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch: Details zum DB-Setup für Flow
TYPO3 Neos Setup
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:
Initial Password: The initial password for accessing the setup can be found in the file
/home/pacs/xyz00/users/username/doms/example.org/TYPO3-Neos/Data/SetupPassword.txt
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/doms/example.org/TYPO3-Neos/Data/Persistent/FileBasedSimpleKeyService/SetupKey
und anschließend die Setup-Routine wie oben beschrieben erneut aufrufen.
Administrator anlegen
Das Anlegen des Administrators wird per GUI-Backend erledigt.
Weitere User lassen sich nach der Installation in der Userverwaltung des GUI-Backends ergänzen.
Alternativ lassen sich User auch in der Konsole anlegen per:
cd /home/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 lässt sich einem User ebenfalls in der Konsole vergeben:
cd /home/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.
Site mit Domain verknüpfen
Im TYPO3 Neos Backend sollte zunächst die neu angelegte Site mit einer Domain verknüpft werden. Dies wird im "Sites Management" erledigt:
Klickpfad dorthin: 3 waagerechte weiße Streifen (oben links) -> "Sites Management"
In der Zeile mit der Site das Bleistift-Symbol anklicken -> rechte Seite "Add domain" (hellblauer Button) anklicken -> Domainname eintragen -> Radiobutton "Active" anklicken -> "Create" (hellblauer Button) anklicken
Save (hellblauer Button) anklicken
Weitere Einstellungen
URI Suffix ändern
Das URI-Suffix ist standardmäßig auf ".html" eingestellt. Man kann dieses Suffix zentral ändern und auch ganz entfernen:
nano /home/doms/example.org/TYPO3-Neos/Configuration/Routes.yaml
Der Eintrag für defaultUriSuffix kann hierzu geändert werden:
# TYPO3 Neos subroutes
-
name: 'TYPO3 Neos'
uriPattern: '<TYPO3NeosSubroutes>'
subRoutes:
'TYPO3NeosSubroutes':
package: 'TYPO3.Neos'
variables:
'defaultUriSuffix': <nowiki>''</nowiki>
Die Einzüge von exakt 2 Leerzeichen pro Ebene gehören zum Syntax! Siehe auch: Details zum DB-Setup für Flow
Anschließend müssen die Caches der Flow-Kontexte gelöscht werden.
Quelle: https://review.typo3.org/#/c/25746
Zugang zur Installation
Nach erfolgreichem Abschluss des Setups sind die zentralen Elemente von TYPO3 Neos über einen Browser erreichbar:
Setup: http://example.org/setup/
Frontend: http://example.org/
Backend: http://example.org/neos/
Wichtige Pfade und Dateien
Pfad (mit Präfix /home/doms/example.org/TYPO3-Neos/) | Beschreibung des Inhalts |
Configuration/Settings.yaml | Konfigurationsdatei für TYPO3 Flow (u.a. für Datenbank-Zugangsdaten) |
Data/Logs/Security_Development.log | Logdatei analog zu Security.log (s.u.), allerdings für den Development-Kontext. |
Data/Logs/Security.log | Logdatei, die Loginversuche im Production-Kontext protokolliert. |
Data/Logs/System_Development.log | Logdatei analog zu System.log (s.u.), allerdings für den Development-Kontext. |
Data/Logs/Sytem.log | System-Logdatei im Production-Kontext (enthält auch Hinweise auf Fehler oder Exceptions, siehe "CRITICAL"). |
Data/Logs/Exceptions/ | Zu jeder Fehlermeldung (Exception) liegt hier eine *.txt-Datei, die Tag und Uhrzeit im Dateinamen trägt. In den Textdateien findet man die Fehlermeldung und einen Trace. |
Data/Persistent/FileBasedSimpleKeyService/SetupKey | Datei, die gelöscht werden muss, falls man sein Setup-Passwort vergessen hat. |
Packages/Application/TYPO3.Neos/Resources/Private/Templates/TypoScriptObjects/ | Ablageort für Fluid-Templates von TYPO3 Neos im Auslieferungszustand |
Packages/Sites/Abc.Xyz/Configuration/ | Konfigurationsdateien des Paketes (= der Site) |
Packages/Sites/Abc.Xyz/Configuration/NodeTypes.yaml | Ablageort für eigene TYPO3-Flow Inhaltselemente |
Packages/Sites/Abc.Xyz/Resources/Public | Ablageort für alle öffentlich zugänglichen Dateien wie z.B. CSS- oder JS-Dateien |
Packages/Sites/Abc.Xyz/Resources/Private | Ablageort für alle internen Dateien |
Packages/Sites/Abc.Xyz/Resources/Private/Templates/Page/Default.html | Fluid-Template mit dem Default-Layout der Webseite; an den durch f:section-ViewHelper markierten Stellen rendert Neos Seiteninhalte in die Webseite hinein |
Packages/Sites/Abc.Xyz/Resources/Private/Templates/TypoScriptObjects/ | Ablageort für alle eigenen TypoScript-Objekte |
Packages/Sites/Abc.Xyz/Resources/Private/TypoScripts/Library/ | Ablageort für alle TypoScript-Dateien |
Packages/Sites/Abc.Xyz/Resources/Private/TypoScripts/Library/Root.ts2 | Root-Template der gesamten Site; auch "main typoscript configuration"; Wird durch den site-kickstarter angelegt |
Upgrade von TYPO3 Neos...
Es kann entweder auf eine bestimmte Version aktualisiert werden oder auf die neueste Version (= "Development Master").
In beiden Fällen müssen anschließend die Caches der Flow-Kontexte gelöscht werden und eine Migration der Doctrine-Datenbank durchgeführt werden.
Vor jedem Update sollte man prüfen, ob composer selbst ein Update benötigt:
composer self-update
...auf eine bestimmte TYPO3 Neos Version
(Statt <version> z.B. 1.0.*)
cd /home/doms/example.org/TYPO3-Neos/
composer require "typo3/neos:<version>"
composer require "typo3/neos-nodetypes:<version>"
composer require "typo3/neosdemotypo3org:<version>"
composer require "typo3/sitekickstarter:<version>"
...auf den Development Master (neueste Version)
Einmalig ist zuvor in der composer.json (siehe TYPO3-Neos Rootverzeichnis) statt "1.0.*" der Eintrag "dev-master" zu hinterlegen:
cd /home/doms/example.org/TYPO3-Neos/
nano composer.json
dort sind die vorhandenen Einträge wiefolgt zu ändern (Die Leerzeichen zu Beginn sind wichtig, da sie zum Syntax gehören!):
"require": {
"typo3/neos": "dev-master",
"typo3/neos-nodetypes": "dev-master",
"typo3/neosdemotypo3org": "dev-master",
"typo3/neos-kickstarter": "dev-master",
"doctrine/migrations": "@dev"
}
Anschließend kann das Update jedes Mal durch composer angestoßen werden:
cd /home/doms/example.org/TYPO3-Neos/
composer update
Cache eines TYPO3 Flow-Kontextes löschen
Jeder der drei Flow-Kontexte (Development, Testing und Production) besitzt einen eigenen Cache, der separat gelöscht werden kann.
Löschen des Standard-Flow-CLI-Kontextes "Development":
cd /home/doms/example.org/TYPO3-Neos/
./flow flow:cache:flush --force
Ein anderer Kontext muss dem Kommandozeilentool flow explizit mitgegeben werden Setzen eines Flow Kontextes (s.u.).
Es ist ein Workaround (s.u.) nötig, falls beim Löschen des Caches Fehlermeldungen wie diese auftreten:
Flow requires the PHP setting "magic_quotes_gpc" set to Off. (Error #1224003190)
Migration der Doctrine-Datenbank
./flow core:migrate
./flow doctrine:migrationgenerate
./flow doctrine:migrate
Setzen eines Flow-Kontextes
Das Kommandozeilentool flow arbeitet ohne weitere Angabe standardmäßig im Development-Kontext.
Ein anderer Kontext muss dem Kommandozeilentool flow explizit mitgegeben werden (z.B. "Production"):
FLOW_CONTEXT=Production ./flow ''...weitere Parameter...''
Alternativ kann man den Kontext auch über Umgebungsvariablen der Kommandozeile definieren:
Bei einem eigenen Apache-Server wird der Production-Kontext normalerweise wiefolgt konfiguriert:
SetEnv FLOW_CONTEXT Production
Im Shared Hosting ist dies nicht möglich. Stattdessen wird der Kontext über den putenv-Befehl in einem PHP-Skript gesetzt:
putenv ("FLOW_CONTEXT=Production");
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 -c/home/doms/example.org/php-cli.ini
Detaillierte Erklärung: Bei Debian darf die Shebang Zeile nur 127 Zeichen (byte) lang sein und maximal 1 Leerzeichen enthalten. Es hängt dann vom Binary ab, ob es das darüber hinaus "am Stück" und ohne weitere Leerzeichen Übergebene versteht. PHP kann es offensichtlich nicht. Die Lösung besteht darin, die nötigen PHP-Direktiven in einer eigenen php-cli.ini abzulegen und diese durch Anhängen des Parameters -c an die Shebang-Zeile dem PHP-CLI-binary mitzugeben.
Die besondere Feinheit ist dabei allerdings, zwischen -c und dem Pfad kein Leerzeichen zu lassen und den Pfad auch nicht in Anführungszeichen einzuschließen, sondern direkt mit /pfad/zur/php-cli.ini anzuschließen!
Eine entsprechende php-cli.ini muss natürlich angelegt worden sein. Dies könnte beispielsweise eine Kopie der php.ini sein oder ein Symlink dorthin.
Prüfen, welche Paketversionen installiert sind
Mit composer kann man auf der Kommandozeile prüfen, welchen Versionsstand die installierten Pakete haben:
composer show -i
Mehr Details unter 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/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...
Weiterführende Links
http://docs.typo3.org/neos/TYPO3NeosDocumentation/Appendixes/ChangeLogs/101.html