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.

{code lang:bash showtitle:false lines:true hidden:false}apt-get install apache2{/code}

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.

{code lang:bash showtitle:false lines:true hidden:false}apt-get install mariadb-server mariadb-client
mysql_secure_installation{/code}

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:

{code lang:bash showtitle:false lines:true hidden:false}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{/code}

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

{code lang:bash showtitle:false lines:true hidden:false}root@debian-stretch:~# cat /etc/debian_version
stretch/sid
root@debian-stretch:~# php --version
PHP 7.0.8-5 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.8-5, Copyright (c) 1999-2016, by Zend Technologies
root@debian-stretch:~#{/code}

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)

{code lang:bash showtitle:false lines:true hidden:false}root@debian-stretch:/var/www/html# a2enmod expires
Enabling module expires.
To activate the new configuration, you need to run:
service apache2 restart
root@debian-stretch:/var/www/html# service apache2 restart
root@debian-stretch:/var/www/html# a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
root@debian-stretch:/var/www/html# service apache2 restart{/code}

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:

{code lang:bash showtitle:false lines:true hidden:false}apt-get install graphicsmagick{/code}

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

{code lang:bash showtitle:false lines:true hidden:false}apt-get install phpmyadmin{/code}

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)

{code lang:sql showtitle:false lines:false hidden:false}root@debian-stretch:~# mysql -u root
[mysql] use mysql;
[mysql] update user set plugin='' where user='root';
[mysql] flush privileges;
quit
Bye{/code}

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    

{code lang:xml showtitle:false lines:true hidden:false}<VirtualHost *:80>
    ServerAdmin webmaster@cmsod30
    ServerName typo3-7.cmsod30
    ServerAlias www.typo3-7.cmsod30

    DocumentRoot /var/www/html/typo3/typo3-7
    <Directory />
        Options FollowSymLinks
        AllowOverride Indexes FileInfo
    </Directory>
    <Directory /var/www/html/typo3/typo3-7/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride Indexes FileInfo
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>{/code}

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

{code lang:bash showtitle:false lines:true hidden:false}a2ensite typo3-7.conf
service apache2 reload{/code}

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  

{code lang:bash showtitle:false lines:true hidden:false}# hosts
# Projekte: TYPO3
192.168.56.21 debian-stretch
192.168.56.21 typo3-7.cmsod30 www.typo3-7.cmsod30{/code}

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 25 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"

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