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/

Dienste in Linux beim Hochfahren starten lassen

Will man unter Linux einen Dienst selbständig starten, hilft ein schlaues Tool: update-rc.d. Das nimmt einem die Arbeit ab, den Dienst passend in die passenden Start- und Stopscripts aller Runlevel einzutragen. Ich nutze zum Beispiel zwei paralle installierte Webserver, natürlich nur einen als Standard – der andere schläft.

Beispiel

Nacheinder „Umschalten“ zweier installierter Webserver:

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

schaltet den Webserver ngingx künftig an, den Apache aus. Das kann man natürlich auch in 1 Script packen un dieses mit gksu oder sudo aufrufen:

#!/bin/sh
update-rc.d nginx defaults
update-rc.d apache2 remove

Quelle: Dienste und Programme in Ubuntu beim Hochfahren starten lassen