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/

Fix für logrotate errors für mySQL in Ubuntu

In seinem Blog beschreibt Shahar Evron eine Methode, mit einem Einzeiler den Fehler zu beseitigen, der bisher bei mir täglich in den Mails an root gemeldet wurde. Hier ist der Fehler:

/etc/cron.daily/logrotate:
error: error running shared postrotate script for 
'/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log 
/var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1

Hier ist der Einzeiler:

echo "SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('`sudo cat /etc/mysql/debian.cnf | grep password | head -n 1 |</code></div>
<div class="line number2 index1 alt1"><code class="plain plain">awk -F= '{ gsub(/[ \t]+/, "", $2); print $2 }'`');" | mysql -u root -p

Verwirrend? Verstehen muss ich das ja nicht…

Quelle: arr.gr/blog/2014/06/fixing-logrotate-errors-and-other-mysql-issues…

Ich habe es ausprobiert und es funktioniert. Der Fehler war unbewusst entstanden – wie im Blog beschrieben -, weil ich das Betriebssystem neu aufgespielt und dann die alte DB-Sicherung zurückgeholt habe. Dabei bekommt der Systemuser “debian-sys-maint” von mySQL das falsche (zufällig generierte) Passwort. Das wird mit dem obigen Einzeiler korrigiert.

Danke, Shahar Evron!

2008

  • Dr. Höher Innovationsmanagement, Altlandsberg
  • Intranet-Projekt kommunale Software, Berlin,
    Umstellung von ursprünglich in Clipper erzeugtem Code
  • *** Browseranwendung für Messdaten- und Produktverwaltung, BGF Berlin
    (ständige Pflege und Weiterentwicklung)
    starke Anwendung von Ajax mit dem xajax-Framework

2006

Das war das erste große Projekt, bei dem intensiv mit einer aufwändigen relationalen Datenbank-Struktur gearbeitet wurde. Ajax kam hier noch nicht zum Einsatz, da üblicherweise noch vor JavaScript “gewarnt” wurde. Rogarema ist ein vielsprachiges Suchportal für Wirtschaftseinträge.

  • ** Rogarema-Projekt, Sindelfingen, inzwischen nicht mehr verfügbar