Installation
Voraussetzungen
Sass
Ist zwar nicht zwingend erforderlich, aber sinnvoll. Siehe dazu Sass einrichten.
composer
wget getcomposer.org/installer
php installer
mv composer.phar /usr/local/bin/
In shared Hosting Umgebungen kann auch einfach die composer.phar Datei kopiert werden.
NEOS
Ausführliche Anleitung zur Installation auf typo3.org: Installation. Hier die Kurzfassung:
Projekt anlegen
cd /your/htdocs/
composer.phar create-project typo3/neos-base-distribution default-site-developer-neos
Virtual Host
<VirtualHost *:80>
ServerAdmin ek@rootsystem.de
DocumentRoot /Users/erwin/iPool/htdocs/developer/default-site-developer-neos/Web/
ServerName default-site-developer-neos.local
SetEnv FLOW3_CONTEXT Development
</VirtualHost>
# neos prod
<VirtualHost *:80>
ServerAdmin ek@rootsystem.de
DocumentRoot /Users/erwin/iPool/htdocs/developer/default-site-developer-neos/Web/
ServerName prod.default-site-developer-neos.local
SetEnv FLOW3_CONTEXT Production
</VirtualHost>
# neos test
<VirtualHost *:80>
ServerAdmin ek@rootsystem.de
DocumentRoot /Users/erwin/iPool/htdocs/developer/default-site-developer-neos/Web/
ServerName test.default-site-developer-neos.local
SetEnv FLOW3_CONTEXT Testing
</VirtualHost>
# neos dev
<VirtualHost *:80>
ServerAdmin ek@rootsystem.de
DocumentRoot /Users/erwin/iPool/htdocs/developer/default-site-developer-neos/Web/
ServerName dev.default-site-developer-neos.local
SetEnv FLOW3_CONTEXT Development
</VirtualHost>
Und natürlich die hosts Datei /etc/hosts
127.0.0.1 default-site-developer-neos.local test.default-site-developer-neos.local dev.default-site-developer-neos.local
fe80::1%lo0 default-site-developer-neos.local test.default-site-developer-neos.local dev.default-site-developer-neos.local
Berechtigungen
./flow core:setfilepermissions erwin www www
Setup
Aufruf von default-site-developer-neos.local/setup - ist soweit alles selbsterklärend.
Installation auf Shared Hosting Server
Es kann einige Probleme geben bei der Installation bei einem Shared Hosting Provider. Auch bei Mittwald, wo mit dem "alten" TYPO3 alles immer problemlos funktionierte.Bei Mittwald ist derzeit nicht die neueste Neos Version verfügbar und die 1.01 hat massive Bugs, die immer wieder zu kompletten Datenverlust führen. Also habe ich versucht von Hand die neueste Version zu installieren.
Dabei gibt es folgende Probleme:
- Die Konfiguration muss von Hand angepasst werden
- Composer lässt sich nicht installieren
- Symlinks nach ausserhalb des Webverzeichnisses funktionieren nicht
- Mangels "sudo" Kommando kann man den Befehl
./flow core:setfilepermissions consoleuser user group
nicht ausführen.
Lösungen
Composer
Ich habe den Composer lokal auf OSX installiert und die Datei composer.phar per FTP übertragen. Das funktionierte. Damit er ausführbar ist noch die Berechtigungen anpassen:
chmod 750 composer.phar
Allerdings ruft dieser php in der FastCgi Version auf, was zu einem Fehler führt. Also muss man doch folgendenAufruf verwenden:
php_cli composer.phar
Installation
php_cli composer.phar create-project --no-dev typo3/neos-base-distribution /webroot
Die Frage muss mit n beantwortet werden, sonst kann man später nicht mehr aktualisieren auf neuere Versionen:
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]?
n<Enter>
Nach der Installation sind einige Anpassungen nötig.
Permissions
Beim ausführen von ./flow core:setfilepermissions kommt der Fehler id: Kommando nicht gefunden. Ich habe das Skript Packages/Framework/TYPO3.Flow/Scripts/setfilepermissions.sh angepasst, das es ohne sudo und ohne chown auskommt:
#!/bin/bash
# This is a little convenience script which sets / fixes the permissions of the Data
# and the Web directory. This script will disappear as soon as we have some proper
# installation routine in place.
#
# Make sure to set the webserver group name to the one used by your system.
echo TYPO3 Flow File Permission Script [modified by Rootsystem]
echo
if [ ! -d "Web" -o ! -d "Packages" -o ! -d "Configuration" ]; then
echo Make sure you run this from the TYPO3 Flow root directory!
echo
exit 1
fi
if [ "$#" != "3" ]; then
echo "Usage: ./flow core:setfilepermissions <commandlineuser> <webuser> <webgroup>"
echo "Run as super user."
echo
exit 1
fi
COMMANDLINE_USER="$1"
WEBSERVER_USER="$2"
WEBSERVER_GROUP="$3"
echo "Checking permissions from here upwards."
unset PARENT_PATH
PARENT_PATH_PARTS=$(pwd | awk 'BEGIN{FS="/"}{for (i=1; i < NF; i++) print $i}')
for PARENT_PATH_PART in $PARENT_PATH_PARTS ; do
PARENT_PATH="$PARENT_PATH/$PARENT_PATH_PART"
test -x "$PARENT_PATH"
if [ $? -gt 0 ]; then
echo " $PARENT_PATH seems NOT to be searchable (executable) for user $WEBSERVER_USER!"
echo " Sorry, you need to fix this yourself if it's a problem, I don't know your preferred permissions ..."
fi
done
echo "Making sure Data and Web/_Resources exist."
mkdir -p Data
mkdir -p Web/_Resources
rm -rf Data/Temporary/*
echo "Setting file permissions, trying to set ACLs via chmod ..." \
&& chmod +a "$COMMANDLINE_USER allow read,search,write,append,delete,delete_child,file_inherit,directory_inherit" Configuration Data Packages Web/_Resources >/dev/null 2>&1 \
&& chmod -R +ai "$COMMANDLINE_USER allow read,search,write,append,delete,delete_child,file_inherit,directory_inherit" Configuration Data Packages Web/_Resources >/dev/null 2>&1 \
&& chmod +a "$WEBSERVER_USER allow read,search,write,append,delete,delete_child,file_inherit,directory_inherit" Configuration Data Packages Web/_Resources >/dev/null 2>&1 \
&& chmod -R +ai "$WEBSERVER_USER allow read,search,write,append,delete,delete_child,file_inherit,directory_inherit" Configuration Data Packages Web/_Resources >/dev/null 2>&1
if [ "$?" -eq "0" ]; then echo "Done."; exit 0; fi
echo
echo "Setting file permissions per file, this might take a while ..."
find . -type d -exec chmod 2770 {} \;
find . -type f \! \( -name commit-msg -or -name '*.sh' \) -exec chmod 660 {} \;
chmod 770 flow
chmod 700 $0
chmod 770 Web/_Resources
echo "Done."
Zusätzlich noch folgendes:
chmod 755 /webroot
chmod ugo-s /webroot
chmod 755 /webroot/Web
chmod ugo-s /webroot/Web
Die .htaccess musste noch angepasst werden, ansonsten kommt Zugriff verweigert
chmod o+r Web/.htaccess
PHP
beim Aufruf von host/setup kommt der Fehler
The path to your PHP binary could not be detected. Please set it manually in Configuration/Settings.yaml.
Abhilfe wie folgt.
Configuration/Settings.yaml
Die Einstellungen müssen angepasst werden: Die Datenbank Verbindung und der PHP Pfad (ich habe die Datei von einer Mittwald Installation kopiert):
phpBinaryPathAndFilename: /usr/local/bin/php_cli
Dann kommt wieder ein Fehler:
#1355480641: Execution of subprocess failed with exit code 255 without any further output.
Ursache sind die Symlinks im Web Verzeichnis. Also muss man noch die Symlinks ändern wie folgt.
Symlinks
Die Symlinks in Web/_Resources/Static/Packages werden als absolute Pfade angelegt. Das funktioniert nicht.
# create dir
mkdir -p /webroot/Web/_Resources/Static/Packages
cd /webroot/Web/_Resources/Static/Packages/
# remove symlinks
rm TYPO3.ExtJS
rm TYPO3.Flow
rm TYPO3.Fluid
rm TYPO3.Media
rm TYPO3.Neos
rm TYPO3.NeosDemoTYPO3Org
rm TYPO3.Setup
rm TYPO3.Twitter.Bootstrap
# copy resources
cp -r ../../../../Packages/Application/TYPO3.ExtJS/Resources/Public/ TYPO3.ExtJS
cp -r ../../../../Packages/Framework/TYPO3.Flow/Resources/Public/ TYPO3.Flow
cp -r ../../../../Packages/Framework/TYPO3.Fluid/Resources/Public/ TYPO3.Fluid
cp -r ../../../../Packages/Application/TYPO3.Media/Resources/Public/ TYPO3.Media
cp -r ../../../../Packages/Application/TYPO3.Neos/Resources/Public/ TYPO3.Neos
cp -r ../../../../Packages/Sites/TYPO3.NeosDemoTYPO3Org/Resources/Public/ TYPO3.NeosDemoTYPO3Org
cp -r ../../../../Packages/Application/TYPO3.Setup/Resources/Public/ TYPO3.Setup
cp -r ../../../../Packages/Application/TYPO3.Twitter.Bootstrap/Resources/Public/ TYPO3.Twitter.Bootstrap
# permissions
cd /webroot/Web
chmod -R ugo-s ./
find . -type d -exec chmod ugo+rx {} \;
find . -type f \! \( -name commit-msg -or -name '*.sh' \) -exec chmod ugo+r {} \
Evtl. geht das auch einfacher mit folgenden Eintrag in der Settings.yaml (bevor man das Setup zum ersten mal aufruft!), aber das habe ich nicht probiert bisher:
TYPO3:
Flow:
resource:
publishing:
fileSystem:
mirrorMode: copy
Setup
Nun kann man endlich das Setup aufrufen hostname/setup