Einführung

Aktuell erarbeite ich gerade wieder ein paar Webseiten (oder pflege und aktualisiere diese) und es stehen auch (endlich) Tests mit neuen Entwicklungsumgebungen an. Allen voran muss ich mir PHP 7 genauer anschauen, da mittel- und langfristig hier die technischen Umsetzungen bei Hostern, CMS, Frameworks oder manuellen Skriptlösungen liegen werden.

Auch die nächste Ausbaustufe des "CMS Online Designer (VHS)" (CMSOD 3.0) wird PHP 7 in den Mittelpunkt rücken. Dann aber wahrscheinlich mit einer windowsbasierten XAMPP-Lösung - schauen wir mal. Die Testumgebungen für meine Website-Projekte laufen seit Jahren erfolgreich auf Debian VMs (meist unter VirtualBox oder Hyper-V).

Die folgende Kurzanleitung beschreibt einen exemplarischen Installvorgang eines Debian 9 - Codename "Stretch". Zum jetzigen Zeitpunkt stellt diese Version die Testingversion dar (immer Codename "Sid" bei Debianversionen). Stretch hat über die Standardrepositories Zugriff auf PHP 7 Installpakete.

"Disclaimer": Die hier dargestellten Umsetzungen haben nur eine lokale Entwicklungsumgebung zum Ziel. Es werden keinerlei Ansprüche an Sicherheit umgesetzt! Es existiert auch kein praxisrelevanter FTP-Zugriff mit ausgeklügelten Benutzerrechten, sondern nur eine "root-Umgebung" mit Zugriff auf die Web- und DB-Server (inkl.  PhpMyAdmin). Der Server wird nicht zum öffentlichen Internet-Hosting genutzt!

Wir starten mit einer kleinen tabellarischen Übersicht der Technik:

Technik LAMP Anmerkungen
Betriebssystem L

Debian 9 - Codename Stretch
aktuelle Testing-Version
Kernel 4.6

Installquelle:
http://cdimage.debian.org/cdimage/weekly-builds/

Webserver A Apache 2.4.23
Datenbank M MariaDB 10.0.25
kompatibel MySQL 5.5.5
Skriptsprache P PHP 7.0.8
DB-Administration   PhpMyAdmin 4.6.3

Jetzt aber zur Zusammenfassung der aktuellen Installation für meinen "Debian 9 - Stretch"-Lamp...

Betriebssystem Debian "Stretch" (L)

Eine Installation von Debian auf einer VirtualBox oder einem Hyper-V sollte keine Probleme darstellen. Ich installiere meine Debian-Server-VMs roh ohne jeglichen "Schnickschnack" außer natürlich SSH. Also wähle ich hier bei Debian im Installschritt "tasksel" einfach fast alles ab. Und natürlich reicht als "Server" auch ein ausrangiertes Notebook!

tasksel

Ansonsten alles wie gehabt: Installation von einem Netzwerkinstall-ISO und alles aktualisieren und testen.

Ich persönlich habe meine VMs gerne mit zwei Netzwerkadaptern:

  • Host-Only-Adapter (hier: 192.168.56.0 / 24)
    hier kann ich mit der VM exklusiv nur zwischen Host und VM kommunizieren
    Anm.: so kann ich auch unterwegs (beim Kunden) auf die VM zugreifen, ohne von einer Netzwerkstruktur abhängig zu sein
  • Bridged-Adapter
    für die Verbindung je nach Umgebung Internet / Intranet
    für Aktualisierungen der VM

Selbstverständlich kann man das auch beliebig anders lösen (siehe VirtualBox bzw. Hyper-V Netzwerkkonfigurationsanleitungen).

Webserver Apache (A)

Der Webserver ist schnell installiert und getestet.

View source
  1. apt-get install apache2

Und der Test einfach über einen Browser - hier auf der Host-Maschine für die VM:

apache2 index

Datenbankserver MariaDB (M)

MariaDB ist der "Community-Entwicklungszweig" (fork) von MySQL (My und Maria sind die Töchter des früheren MySQL-Haupt-Entwicklers Ulf Michael Widenius).

Meine Gründe für den Einsatz von MariaDB statt MySQL:

  • Testen der Kompatibilität (meine Hoster nutzen MySQL - manche denken über einen Wechsel nach)
  • mehr Storage Engines
  • Geschwindigkeitsvorteile

Auch hier ist die reine Technik -  inklusiver aller Abhängigkeiten - schnell installiert.

View source
  1. apt-get install mariadb-server mariadb-client
  2. mysql_secure_installation

Der Aufruf mysql_secure_installation ruft ein Skript zum Erstellen und Absichern des DB-Servers auf (Passwort für DB-root). Ob man das Remote-Login ausschalten möchte ("Disallow root login remotely") als auch das Entfenen von Testdatenbank oder Anonymous-Users kann jeder für sich entscheiden.

Serverseitige Skriptsprache PHP (P)

Das eigentliche Ziel dieser Installation: die aktuellste und modernste PHP-Version 7.0.
Anm.: meine aktuellen CMS Joomla 3.6 und TYPO3 7.6 laufen auch unter PHP 7 und für den neuen Entwicklerzweig TYPO3 Version 8 (aktuell 8.2) ist PHP 7 sogar Voraussetzung!

Los geht's - wir brauchen einen Haufen Zeug und ich lasse auch gleich ein paar Pakete mitinstallieren, die ich für eine empfohlene TYPO3-Umgebung benötige:

View source
  1. apt-get install php7.0 php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-gd libapache2-mod-php7.0 php7.0-mbstring php7.0-xml php7.0-soap curl php-gettext php-pear

Die installierte PHP-CLI-Version lässt sich schnell in der Konsole testen:

View source
  1. root@debian-stretch:~# cat /etc/debian_version
  2. stretch/sid
  3. root@debian-stretch:~# php --version
  4. PHP 7.0.8-5 (cli) ( NTS )
  5. Copyright (c) 1997-2016 The PHP Group
  6. Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
  7. with Zend OPcache v7.0.8-5, Copyright (c) 1999-2016, by Zend Technologies
  8. root@debian-stretch:~#

Der Browser-Test findet natürlich über ein kleines klassisches phpinfo() Skript statt:

phpinfo

 

Das weitere Feintuning orientiert sich an der Install-Anleitung von TYPO3 und dem sogenannten "Recommended TYPO3 7.6 und 8.x Environment"

Der Apache Webserver soll mit Modulen mod_expires und mod_rewrite betrieben werden: (Befehl a2enmod)

View source
  1. root@debian-stretch:/var/www/html# a2enmod expires
  2. Enabling module expires.
  3. To activate the new configuration, you need to run:
  4. service apache2 restart
  5. root@debian-stretch:/var/www/html# service apache2 restart
  6. root@debian-stretch:/var/www/html# a2enmod rewrite
  7. Enabling module rewrite.
  8. To activate the new configuration, you need to run:
  9. service apache2 restart
  10. root@debian-stretch:/var/www/html# service apache2 restart

Selbstverständlich sollte man die beiden Module auch über die PHP-Infos ausgeben lassen und checken:

apache2 module

GraphicsMagick (oder alternativ ImageMagick v6+) müssen für TYPO3 installiert werden:

View source
  1. apt-get install graphicsmagick

Ich mag anscheinend das etwas "modernere" GM.

PHP Konfigurationsdatei /etc/php/7.0/apache2/php.ini

Es sollten einige kleine Anpassungen für TYPO3 vorgenommen werden

  • memory_limit = 256M
  • max_execution_time = 300
  • max_input_vars = 1500

Selbstverständlich kann man noch andere Anpassungen vornehmen.

php ini

PhpMyAdmin

Eine komfortable Nutzung / Verwaltung mittels der klassischen Verwaltungsoberfläche

View source
  1. apt-get install phpmyadmin

Wenn man jetzt über den Browser nicht mittels DB-root + Passwort Zugang bekommt, dann liegt das wahrscheinlich an einer Grundkonfiguration des MariaDB-Users root:
der User root hat in Feld "plugin" den Eintrag "unix_socket" - das bedeutet, dass der User sich nach Anmeldungen am Linux-Server-System automatisch per root am MySQL/MariaDB Server authentifizieren kann. Sehr gut für cron-Jobs und Sicherheit und überhaupt ...

Für unsere "sehr einfache" Umgebung aber nicht so schön, weil wir natürlich einfach von unserer VM-Host-Maschine PhpMyAdmin nutzen wollen!
Einfache Lösung: für den User root den Eintrag im Feld plugin löschen: (auf Server mit MySQL- bwz. natürlich auch MariaDB-Client)

View source
root@debian-stretch:~# mysql -u root
[mysql] USE mysql;
[mysql] UPDATE USER SET plugin='' WHERE USER='root';
[mysql] FLUSH privileges;
 quit
Bye

Im folgenden Screenshot ist der fragliche Datensatz "zusammengerückt" worden und man erkennt jetzt das "leere" Feld plugin für den User root:

phpmyadmin

TYPO3 Webserver Environment

Dann vervollständigen wir das Ganze mal mit einer Grundausstattung "Apache2" für eine  beispielhafte TYPO3-Umgebung gemäß Vorgaben der TYPO3-Entwicklerteams:

In /etc/apache2/sites-available mit Kopie aus bestehenden Vorlagen eine VHosts-Deklaration erstellen:
Datei: /etc/apache2/sites-available/typo3-7.conf    

View source
  1. <VirtualHost *:80>
  2.     ServerAdmin webmaster@cmsod30
  3.     ServerName typo3-7.cmsod30
  4.     ServerAlias www.typo3-7.cmsod30
  5.  
  6.     DocumentRoot /var/www/html/typo3/typo3-7
  7.     <Directory />
  8.         Options FollowSymLinks
  9.         AllowOverride Indexes FileInfo
  10.     </Directory>
  11.     <Directory /var/www/html/typo3/typo3-7/>
  12.         Options Indexes FollowSymLinks MultiViews
  13.         AllowOverride Indexes FileInfo
  14.         Order allow,deny
  15.         allow from all
  16.     </Directory>
  17.  
  18.     ErrorLog ${APACHE_LOG_DIR}/error.log
  19.  
  20.     # Possible values include: debug, info, notice, warn, error, crit,
  21.     # alert, emerg.
  22.     LogLevel warn
  23.  
  24.     CustomLog ${APACHE_LOG_DIR}/access.log combined
  25. </VirtualHost>

Diese Konfiguration mittels a2ensite aktivieren und natürlich Apache reloaden:

View source
  1. a2ensite typo3-7.conf
  2. service apache2 reload

Natürlich noch Testdomain per DNS erreichbar machen (DNS-Server Eintrag) oder bei lokalen Testsystemen einfach die hosts-Datei bearbeiten.
Windows hosts-Datei: C:\Windows\System32\Drivers\etc\hosts  

View source
  1. # hosts
  2. # Projekte: TYPO3
  3. 192.168.56.21 debian-stretch
  4. 192.168.56.21 typo3-7.cmsod30 www.typo3-7.cmsod30

Alles wieder testen und schon kann es mit einem neuen TYPO3-Projekt losgehen...

Conclusio

Die hier gezeigte exemplarische LAMP-Basisinstallation funktioniert sauber mit meinen aktuellen Joomla (Version 3.6) und TYPO3 (Versionen 7.6.x und 8.2.x).

  • joomla-36
  • typo3-76
  • typo3-82
 

Braunschweig, Sommer 2016
Ihr Joe Brandes

 

 

  Privates

... zu Joe Brandes

Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.
Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...

joe brandes 600px

Private Visitenkarte / Technik: HTML & CSS /
  joe-brandes.de

  Jobs

... IT-Trainer & Dozent

Ich erarbeite und konzipiere seit über 20 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!

becss 600px

BECSS Visitenkarte / Technik: HTML & CSS /
  becss.de

  Hobby

... Snooker & more

Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.

bsb 2011 600px

Billard Sport BS / Joomla 3.x /
  billard-bs.de

PC Systembetreuer ist J. Brandes - IT seit über 35 Jahren - Technik: Joomla 3.4+, Bootstrap 3.3.4 und "Knowledge"

© 2018 - Websitedesign und Layout seit 07/2015 - Impressum - Datenschutzerklärung
Nach oben