Im folgenden kurz zusammengefasst wie man auf einem frisch aufgesetzten Lubuntu (alternativ geht auch Ubuntu und jedes andere Derivat) einen „LAMP-Stack“ installiert und auf selbigem TYPO3 Flow zum laufen bekommt.
Basics im Umgang mit Linux setze ich hierbei voraus. Im speziellen den Umgang mit der Konsole und dem Kommandozeileneditor „nano„. Ob die folgenden Operationen direkt auf dem Gerät oder remote per SSH durchgeführt werden ist hierbei egal. Zeilen die mit „#“ beginnen sind lediglich Kommentare und sollen nur dem Verständnis dienen.
LAMP installieren
Als erstes werden die Softwarequellen aktualisiert und dann die benötigten Softwareteile installiert:
sudo apt-get update && sudo apt-get upgrade sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-gd php5-curl libssh2-php phpmyadmin git
Nun aktivieren wir benötigte Module des Apache2 Webservers und hinterlegen unsere Daten in GIT.
#Modul mcrypt für phpmyadmin aktivieren sudo php5enmod mcrypt #Modul mod_rewrite aktivieren sudo a2enmod rewrite # Namen und E-Mail global in GIT hinterlegen git config --global user.name "Max Mustermann" git config --global user.email "max@mustermann.de"
Wenn es sich bei dem Rechner nicht gerade um einen dedizierten Webserver handelt, möchte man eventuell nicht, dass der Apache- und MySQL-Server beim booten starten. Dies erreicht man für den Apache mit sudo update-rc.d -f apache2 remove .
Für den MySQL Server müssen wir die „mysql.conf“ öffnen (sudo nano /etc/init/mysql.conf ) und die „start on“ -Zeile auskommentieren. (start on runlevel [2345] ändern in #start on runlevel [2345] ).
Jetzt fügen wir noch unseren Benutzer der Gruppe „www-data“ hinzu, um Rechteprobleme zu umgehen:
sudo usermod -a -G www-data meinuser # Prüfen ob erfolgreich mit: id meinuser groups meinuser
Zusätzlich musste ich bei mir noch folgende Anpassungen machen:
- Das Wurzelverzeichnis des Webservers von „/var/www/html/“ auf „/var/www/“ ändern. (Nicht ändern, wenn man Sourcen in /var/www und damit außerhalb des Webroot halten will)
sudo nano /etc/apache2/sites-available/000-defualt.conf # Dort: DocumentRoot "/var/www/html/" # in: DocumentRoot "/var/www/" # ändern
- In der „apache2.conf“ den „ServerName“ (am Ende der Datei) setzen, damit beim starten und laden keine Warnung mehr kommt.
sudo nano /etc/apache2/apache2.conf # Am Ende: ServerName localhost # hinzufügen
Zum aktivieren müssen wir uns jetzt noch ein mal neu anmelden oder den Rechner neu starten. Wenn wir neu starten, nicht vergessen den Apache- und MySql-Server mit sudo service apache2 start und sudo service mysql start zu starten.
FLOW installieren
Hierbei ist der erste Schritt via PhpMyAdmin eine neue Datenabnk anzulegen. Wichtig: unter „Optionen“ die „Kollation“ auf „utf8_general_ci“ setzen! Wer in so etwas noch nicht so sicher ist wird z.B. bei opensourcefan.org fündig.
Kommen wir zur eigentlichen Installation: Hierfür sind die Artikel hier und hier hilfreich. Zusammengefasst ergibt das:
cd /var/www curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer composer create-project --dev --keep-vcs typo3/flow-base-distribution flow 2.3 # Wenn dabei "Class TYPO3\Flow\Composer\InstallerScripts is not autoloadable, # can not call post-package-install script" (mit gelbem Hintergrund) erscheint, # ist das in Ordnung und kann ignoriert werden. cd flow/ sudo ./flow core:setfilepermissions meinuser www-data www-data
Jetzt legen wir uns noch einen Virtual Host an, um Flow im Browser unter „flow.local“ erreichen zu können, anstatt immer IP und Pfad eingeben zu müssen. Was es mit Virtual Hosts auf sich hat erklärt die Apache2 Doku.
#Neue VHost Datei anlegen sudo nano /etc/apache2/sites-available/flow.conf
Dort folgendes einfügen
<VirtualHost *:80> DocumentRoot "/var/www/flow/Web/" # skip the following line for development # SetEnv FLOW_CONTEXT Production ServerName flow.local <Directory /var/www/flow/> AllowOverride FileInfo Options=MultiViews </Directory> </VirtualHost>
und im Anschluss dann den neu erstellten Host aktivieren sowie dem Server durch neu laden der Konfiguration bekannt machen.
sudo a2ensite flow service apache2 reload #ODER service apache2 restart
Wer wie ich auch gleichzeitig auf dem Rechner entwickelt auf dem wir uns bisher bewegt haben, möchte nun auch lokal komfortabel auf den Webserver zugreifen können. Dazu passen wir nun die hosts-Datei an und hinterlegen dort, wo (unter welcher IP) das System und dessen Software „flow.local“ findet.
#Hosts anpassen: sudo nano /etc/hosts #Dort am Ende einfügen 127.0.0.1 flow.local
Analog sollte dieser Schritt auf allen Rechnern durchgeführt werden die auf unsere Installation zugreifen wollen. Für Windows PCs findet Ihr z.B. hier eine Anleitung dazu.
Kommen wir nun zum letzten Schritt, bevor wir uns die Willkommensseite von Flow ansehen können. Hierfür muss noch die Zeitzone in der php.ini gesetzt werden (normale und cli).
sudo nano /etc/php5/apache2/php.ini # mit Strg+W nach date.timezone suchen date.timezone = Europe/Berlin # und nun noch fürs CLI sudo nano /etc/php5/cli/php.ini # mit Strg+W nach date.timezone suchen date.timezone = Europe/Berlin
Geschafft! Nun sollten wir im Browser unter http://flow.local folgendes sehen.
Um nun auch die Verbindung zur zuvor erstellten Datenbank zu testen, halten wir uns an die entsprechende Stelle in der Flow Dokumentation und die dortige Beispielanwendung „Acme.Demo“
cd /var/www/flow # copy the file Configuration/Settings.yaml.example to Configuration/Settings.yaml # cp Configuration/Settings.yaml.example Configuration/Settings.yaml nano Configuration/Settings.yaml # hier nun die Daten der Datenbankverbindung ersetzen # Datenbank migrieren ./flow doctrine:migrate # Package kickstarten ./flow kickstart:actioncontroller --generate-actions --generate-related Acme.Demo CoffeeBean # Datenbank updaten ./flow doctrine:update
Nun kann das ganze im Browser unter http://flow.local/acme.demo/coffeebean/ ausgiebig getestet werden.
Viel Spaß