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.

Erstellt: 03/2014| Geändert: 10/2015

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

Erstellt: 03/2014| Geändert: 10/2015