Apache, MySQL und PHP

Unter Ubuntu (hier: 18.04) einen Webserver mit Apache, MySQL und PHP zu installieren ist nicht weiter schwierig. Es sollte reichen, folgendes zu tun:

Dabei natürlich eventuell die passende PHP-Version einsetzen und ggf. weitere Module installieren (Tip: php7.2-mbstring nicht vergessen, das wird gern übersehen und führt dann zu wunderlichen Fehlern!).

sudo apt install apache2 mysql php7.2 php7.2-cli

Kontrollieren kann ich das durch die Anzeige der Versionen mittels „php -v“ und „mysql -v“. Den Webserver starte ich mit

sudo systemctl enable apache2
sudo systemctl restart apache2
sudo update-rc.d apache2 defaults    # immer beim Booten starten

Üblicherweise mache ich dann eine kleine Testdatei i.php mit dem Inhalt

<?php phpinfo()

die ich im Browser aufrufe

localhost/i,php

und die mir alle relevanten Parameter des Webservers und von PHP selbst anzeigt. Anzeigen soll – denn meist geht es trotzdem nicht!? Was ist der Grund dafür?

Es hat sich herausgestellt, dass das Fehlen des gestarteten „FastCGI Process Manager (FPM)“ von PHP die Ursache ist. Also eines Werkzeuges, das eigentlich nur zum Beschleunigen der Abarbeitung von PHP dienen sollte, aber offenbar grundsätzlich für dessen Funktion in einem Webserver verantwortlich ist (wer näheres dazu weiß, kann das bitte gern unten kommentieren!). Also bitte noch zusätzlich PHP-FPM installieren und starten:

sudo apt install php7.2-fpm
sudo systemctl enable php7.2-fpm
sudo systemctl start php7.2-fpm
sudo update-rc.d php7.2-fpm defaults    # immer beim Booten starten

Jetzt sollte auch der Test im Browser klappen und das auch nach dem nächsten Reboot. Hinweis: Natürlich kann man Dienste auch meist über

sudo service <dienstname> start|stop|restart
sudo /etc/init.d/<dienstname> start|stop|restart

steuern.

Weitere Informationen:
www.webhostinghero.com/ubuntu-apache-php-fpm/

Nginx als Alternative zu Apache auf Ubuntu installieren

Der Webserver Apache ist zwar am weitesten verbreitet, aber das könnte auch eine Sache der Gewohnheit oder der Scheu vor Andersartigem sein. Dabei gibt es mindestens eine Alternative, die wesentlich performanter sein kann und dabei noch einfach zu installieren und zu handhaben ist: nginx (ausgesprochen „engine ex“).

nginx

Quelle 1: Installing Nginx with PHP 7 and MySQL 5.7 (LEMP) on Ubuntu 16.04 LTS

Quelle 2: Wie du mit nginx deinen Linuxserver in 5 Minuten auf Hochlast trimmst

Update:

Ich habe beide Webserver installiert, allerdings natürlich nur einen (nginx) laufen. So kann ich mit „service nginx stop / service apache2 start“ und umgekehrt schnell mal wechseln. Welchen von beiden ich automatisch starte, lege ich fest wie hier beschrieben. Um standardmäßig den Apache nicht zu starten und stattdessen den nginx, genügen einmalig folgende Befehle in einer Shell:

sudo update-rc.d apache2 remove
sudo update-rc.d nginx default