Blue Flower

Pakete die installiert werden:
- Apache (Webserver)
- MariaDB (MySQL-Datenbank)
  PHP (Script-Sprache für Webprogrammierung. Wird für Joomla etc. benötigt)

- phpMyAdmin (PHP-basierter Web-MySQL-Datenbankeditor)
Optionale Verwaltungs-Tools:
- Remote-Desktop & SSH-Freigabe
- ProFTP (FTP-Pogramm)
- Webmin (HTML-Admin-Tool)
Optionale Pakete:
- Joomla (CMS Contentmanagementsystem)
- Wordpress (Blog)
- Drupal (CMS)
- Piwigo (Foto-Album)
- OXID (Web-Shop)


Vorwort:
Ganz entscheidend für die Performance des Raspberry Pi ist tatsächlich die Schreib-Lese-Geschwindigkeit der microSD-Karte.
Bei einer schnellen microSD-Karte kann das Raspbian OS auch als 32Bit System flüssig verwendet werden.

Als Betriebssystem wird für diese Installation die 'Rasperian mit Desktop' Version verwendet da die Befehle einfach per Copy/Paste aus dieser Info-Seite verwendet werden können. Zum Schuß wird noch aufgezeigt wie der Desktop deaktiviert werden kann.


Folgende Schritte müssen durchaufen werden:

Rasparien als Betriebssystem installieren.

Hinweis: Ab dem Raspberry Pi 4 ist die Firmeware auf dem Board gespeichert und wird nicht wie in den Vorgänger-Versionen von der SD-Karte geladen.
*   Raspbian Buster Lite  (Nur Konsolenversion ohne grafische Oberfläche. Ideal als Webserver da schon von Haus aus schlank gehalten)
      oder
    Raspbian Buster with desktop  (Desktop zur einfacheren Orientierung)
    herunterladen.
* Auf eine microSD-Karte kopieren. z.B. mit Rufus portable.
* Raspberry Pi mit Raspbian starten.
* Im Desktop durch den selbsterklärenden Dialog gehen (Es kann ein neues Passwort vergeben werden).
Am Ende sollte der Reboot durchgeführt werden.


Weiter geht's in einem Terminal-Fenster  >_ 

Alles "in einem Rutsch" installieren 
Es wird von alant.de ein Script heruntergeladen und in den Home-Ordner des users pi abgelegt. Mit dem 2. Befehl wird das Bash-Script mit allen Befehlen ausgeführt.
Während der Script-Ausführung muss angegeben werden:
- Apache2 auswählen (Leerzeichen, Enter)
- phpmyadmin Passwort für User phpmyadmin (Enter, 'Passwort', Enter, 'Passwort', Enter)
MariaDB:
- root Passwort ('Passwort', Enter, 'Passwort', Enter)
Joomla (CMS) & Wordpress (Blog) & Drupal & (CMS) Piwigo (Foto-Gallerie) & OXID (eShop) & Webmin (HTML-Admin-Tool)
- Installieren ? (j [wenn installiert werden soll], Enter)

wget https://alant.de/rpi.php -O rpi.sh
sh rpi.sh
Hinweis: Wurde die Lite-Version installiert ist im Terminal das englische Tastaturlayout aktiv.
Somit muss der : (Doppelpunkt) -> Ö (großes Ö), - (Minus) -> ß (oder - im Zahlenfeld) und / (Slash) -> ?? bzw. (oder ÷ im Zahlenfeld) ersetzt werden.
wget httpsÖ//alant.de/rpi.rpi.sh ßO rpi.sh

Die einzelnen Komponenten nacheinander installieren (Apache, MySQL, PhpMyAdmin)
zusätzlich
, Webmin*, Remotedesktopverbindung*, SSH-Zgang*, ProFTP*, Joomla,* Wordpress*, Drupal*)

* optional

Apache Server installieren (Dies ist der Webserver)
(Apache2 incl.PHP)

sudo apt install apache2 php libapache2-mod-php -y
Danach ist der Apache-Server unter verschiedenen Adressen erreichbar
Im eigenen Netzwerk: http://raspberrypi/ bzw. unter der IP-Adresse des Raspberry Pi's. Kann mittels ifconfig (Linux) oder ping -4 raspberrypi (Windows PC) ausgelesen werden.
Auf dem Raspberry Pi selbst auch unter http://localhost/ oder http://127.0.0.1/
 

MariaDB installieren (MySQL Datenbank)

sudo apt install mariadb-server mariadb-client -y

phpMyAdmin installieren (MySQL-Datenbank-Editor)

sudo apt install phpmyadmin -y

Während der Installation muss der Webserver ausgewählt (apache2) und ein Passwort z.B. 'Passwort' für den user phpmyadmin eingegeben und eine Datenbank angelegt werden.


Tasten-Steuerung:
Leerzeichen (um apache2 zu markieren)
Enter (Beendet das Eingabefenster)
 
Nach erfolgreicher installation ist phpMyAdmin über die Web-Oberfläche erreichbar. http://raspberrypi/phpmyadmin/
Ein login ist möglich, mit beschränkten Rechten.
User: phpmyadmin
PW: 'Passwort'


Passwort eintippen 'Passwort'
Enter (Beendet das Eingabefenster)
(Wiederholen)


 

Enter
 

PhpMyAdmin Fehler anpassen
Anmerkung Stand 07.03.2020 Version 4.6.6deb5

Es gibt in der sql.lib.php vom phpMyAdmin in der Funktionen PMA_isRememberSortingOrder einen Fehler.  (siehe Bug-Report)
Per sed den falschen Eintrag ersetzten. (Sollte der Fehler inzwischen korrigiert werden findet sed nichts und verändert auch nichts)

sudo sed -i "s/count(\$analyzed_sql_results\['select_expr'\] == 1)/count(\$analyzed_sql_results\['select_expr'\]) == 1/g" /usr/share/phpmyadmin/libraries/sql.lib.php

Apache anpassen

Die Apache Konfiguration sollte angepasst werden damit per .htaccess in den einzelnen CMS-installationen Veränderungen am Verhalten des Webserver möglich ist.

# Conf sichern
sudo mv /etc/apache2/apache2.conf /etc/apache2/apache2.conf.org
sudo Nano etc/apache2/apache2.conf

Runterscrollen bis Zeile ~178 und dort ändern.
Mit STRG-x, j Enter das Ganze ändern-

<Directory /var/www/>
Options Indexes FollowSymLinks
  AllowOverride None
AllowOverride All
Require all granted
</Directory>

PHP anpassen
- Tmp-Ordner für PHP-Uploads anlegen

sudo mkdir /var/www/html/phptmp

php.ini anpassen
Der Unterordner der PHP-Version muss ggf. angepasst werden.
- Dateiupload-Größe: 2M -> 20M
- Dateigröße per POST übermittelt: 8M -> 20M
- max. Zeit zum ausführen: 30Sek. -> 120Se2 Min.
- Speicherlimit:  128M -> 500M (je nach RAM Größe kann auf 1G eingesetzt werden)
- Module Rewrite aktivieren damit die Anweisugnen in .htaccess Wirkung zeigen

# Stand April 2020. Zu einem späteren Zeitpunkt kann sich die Version ändern (Einfach vorab checken Pfas /etc). 
phpversion
="
7.3"
# ini sichern
sudo mv /etc/php/$phpversion/apache2/php.ini /etc/php/$phpversion/apache2/php.ini.org

# Wenn diese Eintrag angepasst wird muss ggf. auch in den Einstellungen der CMS dieser Pfad eingetragen werden!
sudo
sed -i "s/;upload_tmp_dir = /;upload_tmp_dir = /var/www/phptmp/g" /etc/php/
$phpversion/apache2/php.ini
sudo sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/g" /etc/php/$phpversion/apache2/php.ini
sudo sed -i "s/post_max_size = 8M/post_max_size = 20M/g" /etc/php/$phpversion/apache2/php.ini
sudo sed -i "s/max_execution_time = 30/max_execution_time = 120/g" /etc/php/$phpversion/apache2/php.ini
sudo sed -i "s/memory_limit = 128M/memory_limit = 500M/g" /etc/php/$phpversion/apache2/php.ini
# prüfen ob rewrite schon aktiv ist sonst eintragen
if [ $(apache2ctl -M | grep -c -i rewrite_module) -eq 0 ]; then sudo a2enmod rewrite; fi

In MariaDB einloggen und Befehle ausführen

* In die MariaDB Shell einloggen.

 sudo mysql

Anmerkung: ist schon ein Passwort vergeben dann: sudo mysql -u root -p"Passwort"

* Passwort 'Passwort' für Benutzer 'root' erstellen. (Passwort kann natürlich frei gewählt werden ;-). Einstellungen aktivieren und mysql verlassen.

MariaDB [(none)]> GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'Passwort' WITH GRANT OPTION;FLUSH PRIVILEGES;CREATE DATABASE joomla;exit

Als Ergebnis soll diese Rückmeldungen erfolgen "Query OK, 0 rows affected (0.001 sec)"


phpInfo erzeugen (damit die PHP-Einstellungen ausgelesen werden können).

sudo echo '<?php' > /var/www/html/phpinfo.php && sudo echo "phpinfo()" >> /var/www/html/phpinfo.php && sudo echo '?>' >> /var/www/html/phpinfo.php

Via http://raspberrypi/phpinfo.php kann jetzt aktuelle PHP Version und die Einstellungen abgerufen werden.


FTP-Server installieren (Nicht zwingend notwendig)
Hier der ProFTP-Server installiert.

sudo apt install proftpd-basic -y -qq


* FTP-Server konfigurieren

IP6 deaktivieren

sudo sed -i "s/UseIPv6 on/UseIPv6 off/g" /etc/proftpd/proftpd.conf

  FTP-Server starten

sudo /etc/init.d/proftpd restart

Remote Desktop Zugriff installieren (Nicht zwingend notwendig)

Es wird nur ein Paket benötigt

sudo apt install xrdp -y -qq

Jetzt kann unter Windows einfach die Remotedesktopverbindung aufgerufen werden.
Computer: raspeberrypi
User: pi
Passwort: (das neu vergebene Passwort) sonst: raspberry

  xrdp login xrdp login windows 

SSH Zugang aktivieren (Nicht zwingend notwendig)
Es kann durch den Menüpunkt Einstellungen -> RaspberrPi-Konfiguration Register Schnittstellen der SSH auf Aktiviert gesetzt werden oder im Terminal mit folgenden Befehlen:

sudo systemctl enable ssh && sudo systemctl start ssh

Danach kann von jedem PC aus per z.B. PuTTY auf den Raspberry Pi zugegriffen werden.
User: pi
Passwort: (das neu vergebene Passwort) sonst: raspberry


CMS / Blog installieren

Joomla download
Hinweis: Da sich die Joomla-Version nach Erstellung des Artikels sicherlich wieder verändert hat, wird hier wird über eine Weiterleitung z.Zt. auf  'Joomla_3.9.16-Stable-Full_Package_German.tar.bz2' verwiesen. Die Datenbank für Joomla muss "von Hand"  in phpMyAdmin angelegt werden.

wget https://alant.de/download/raspberry_pi/joomla_de.php -O joomla_de.tar.bz2

Web-Ordner joomla erstellen

sudo mkdir /var/www/html/joomla

 Entpacken in den Web-Ordner joomla

sudo tar -xf /home/pi/joomla_de.tar.bz2 -C /var/www/html/joomla

Ab jetzt ist Joomla über http://raspberrypi/joomla erreichbar.


WordPress download
Die Datenbank für Wordpress muss "von Hand"  in phpMyAdmin angelgt werden.

wget https://de.wordpress.org/latest-de_DE.tar.gz

Entpacken in den HTML-Ordner

sudo tar -xvzf /home/pi/latest-de_DE.tar.gz -C /var/www/html

Ab jetzt ist Wordpress über http://raspberrypi/wordpress erreichbar.


Drupal download
Die Datenbank für muss "von Hand"  in phpMyAdmin angelgt werden.

wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

Entpacken in den HTML-Ordner
Dem Drupal-Ordner muss noch die Version entfernt werden dtrupal6.2 ->drupal

sudo tar -xvzf /home/pi/drupal.tar.gz -C /var/www/html
sudo cp /var/www/html/drupal/default.settings.php /var/www/html/drupal/settings.php
sudo mkdir /var/www/html/drupal/files
sudo mkdir /var/www/html/drupal/files/translations

Ab jetzt ist Drupal über http://raspberrypi/drupal erreichbar.


 

Piwigo download
Die Datenbank für Wordpress muss "von Hand"  in phpMyAdmin angelgt werden.

wget https://de.piwigo.org/download/dlcounter.php?code=latest -O piwigo.zip

Entpacken in den HTML-Ordner

sudo unzip /home/pi/piwigo.zip -d $html -d /var/www/html

Ab jetzt ist Piwigo über http://raspberrypi/piwigo erreichbar.

OXID eShop download
OXID wird via Compser installiert. dieser muss vorab installiert werden. Ebenfalls werden noch 2 PHP-Erweiterungen benötigt

sudo sudo apt install composer -y
sudo apt install php-bcmath -y
sudo apt install php-soap -y

Jetzt den Shop herunterladen und installieren. In diesem Bsb. wird die Comunity Edition Version 6.2 installiert
Anmerkung: Es wird hier mit sudo OXID installiert (ggf. für eine produktive Umgebung erst auf ein Testsystem installieren und dann die Dateien kopieren)

sudo composer create-project --no-dev oxid-esales/oxideshop-project oxid dev-b-6.2-ce

Ab jetzt ist OXID über http://raspberrypi/oxid erreichbar.


 

WordPress download
Die Datenbank für Wordpress muss "von Hand"  in phpMyAdmin angelgt werden.

wget https://de.wordpress.org/latest-de_DE.tar.gz

Entpacken in den HTML-Ordner

sudo tar -xvzf /home/pi/latest-de_DE.tar.gz -C /var/www/html

Ab jetzt ist Wordpress über http://raspberrypi/wordpress erreichbar.


 

Schreibrechte anpassen

Schreibrechte für den HTML-Ordner des Apache HTTP Servers für alle user freigeben. Sonst hätte nur root Schreibrechte und kein Script könnte dort Änderungen vornehmen oder dort etwas speichern.

sudo chmod -R 777 /var/www/html

 Symbolischen Link auf den Apache-Ordner ins Homeverzeichnis von pi setzen

ln -s /var/www/html/ ./html

Die graphische Oberfläche abschalten (Nicht zwingend notwendig)
Diese wird bei einem Betrieb als Webserver nicht benötigt. Per RDP ist es weiterhin möglich die grafische Oberläsche aufzurufen

sudo systemctl set-default multi-user.target

 Wieder einschalten geht so:-) sudo systemctl set-default graphical.target



Problemecke:

Testen ob MariaDB läuft

sudo systemctl status mariadb

Tip: Mit STRG-C kann das Statusfenster verlassen werden.

Sollte nicht in der Zeile Acitve: active (running) stehen folgenden Befehl ausführen um den Dienst zu starten: sudo systemctl start mariadb


Bootloader Firmare checken. (Nicht zwingend notwendig)

rpi-eeprom-update

 

Remote Desktop Verbindungsprobleme

 Sonnte es zu einer Fehlermeldung kommen „error – problem connecting“ dann die VNC-Version aktualisieren.

sudo apt-get remove xrdp vnc4server tightvncserver -y &&
sudo apt-get install tightvncserver -y &&
sudo apt-get install xrdp -y

Alles wieder entfernen

sudo apt --purge remove phpmyadmin -y -qq &&
sudo apt --purge remove mariadb-server mariadb-client -y -qq &&
sudo apt remove --purge apache2 php libapache2-mod-php -y -qq &&
sudo rm -r /var/www/html/* &&
sudo apt remove --purge proftpd-basic -y -qq &&
sudo apt remove --purge xrdp -y -qq &&
sudo rm /home/pi/html