Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

PHP und MySQL machen einen einfachen Webserver bereits für sehr viele Webanwendungen fit, wie z.B. Forensoftware (PhpBB, MyBB), Blogsoftware (WordPress), die OwnCloud Software oder RSS-Reader (TinyTinyRSS). Aufbauend auf meiner Anleitung zur Installation des Apache Webservers und der Konfiguration der VirtualHosts wird hier gezeigt wie PHP und MySQL installiert und mit Apache verbunden werden.

PHP Installieren

PHP ist eine einfach zu erlernende Scriptsprache, die vor allem für den Einsatz im Web konzipiert wurde. Damit Apache PHP Code interpretieren und ausführen kann, muss PHP inklusive des Apache PHP-Moduls installiert werden. Das geschieht über folgende Befehle:

sudo -s
apt-get update && apt-get install php5 libapache2-mod-php5

Das war’s auch schon! :)

Während der Installation wurde Apache neu gestartet und das PHP-Modul aktiviert. Um zu testen, ob die Installation erfolgreich war, kann in das Wurzelverzeichnis des Standard-VirtualHosts eine Datei „index.php“ statt „index.html“ gelegt werden. Diese wird dann mit folgendem PHP-Befehl gefüllt:

<?php phpinfo(); ?>

Wenn ihr jetzt nochmal via Webbrowser die IP des Servers / die Domain eures VirtualHosts aufruft, solltet ihr die aktuellen PHP-Einstellungen angezeigt bekommen. Falls ihr nur den PHP-Code angezeigt bekommt, hat die Installation nicht Funktioniert. In diesem Fall lohnt es sich, den Webserver noch einmal neu zu starten:

service apache2 restart

Beachtet, dass standardmäßig nur .php Dateien vom Webserver als PHP interpretiert werden – deshalb musste die Index-Datei in index.php umbenannt werden bzw eine solche angelegt werden.

Verzeichnisrechte korrekt setzen

Das hat zwar mit der PHP-Installation an sich wenig zu tun, dennoch will ich euch hier einen kurzen Tipp geben: Wenn ihr Software wie z.B. WordPress installiert, kann es sein, dass Fehlermeldungen wie „Kein Schreibzugriff“ erscheinen. Das kommt daher, dass der Webserver keinen Schreibzugriff auf Ordner hat, die ihr über den Benutzer root oder andere Benutzer erstellt habt. Euer Verzeichnis /var/www/wordpress hat dann noch root als Eigentümer, sodass der Webserver zwar in diesem Verzeichnis Dateien lesen kann, aber keine neuen anlegen kann, wenn ein PHP Script im das befiehlt. Um das zu ändern werden für jedes Verzeichnis / jede Datei, auf die der Webserver Schreibzugriff haben soll, die Rechte neu gesetzt und der Webserver (ausführend über Nutzer „www-data“) zum Eigentümer gemacht. Z.B.:

chown -R www-data:www-data /var/www/software/config

… und schon funktioniert der Schreibzugriff wieder :)

MySQL Server installieren

Einige Webanwendungen benötigen Zugriff auf eine MySQL Datenbank und damit einen MySQL Server. Der Server kann z.B via PHP angesprochen werden und dann Nutzerdaten o.Ä. entgegennehmen und abspeichern. Der MySQL Server an sich (der nicht nur vom Webserver mit PHP genutzt werden kann, sondern auch von anderer Software) wird über den folgenden Befehl installiert:

apt-get install mysql-server

Während der Installation muss für den MySQL User „root“ ein Passwort vergeben werden. Der root-User hat vollen Zugriff auf alle Datenbanken des Servers und dient der Administration, also z.B. dem erstellen von weiteren MySQL Benutzern oder Datenbanken. Er ist nicht zu verwechseln mit dem Systemnutzer „root“!

Nach der Installation wird der MySQL Server gestartet.

Bevor dieser jedoch von PHP genutzt werden kann, muss das MySQL-PHP-Modul installiert werden. Es bildet die Schnittstelle zwischen PHP und dem MySQL Server:

apt-get install php5-mysql
service apache2 restart

Eine erste MySQL Datenbank + Benutzer einrichten

Über eine spezielle MySQL Kommendozeile können MySQL Befehle ausgeführt werden. Auf diese Weise kann manuell in den Server eingegriffen werden und wir sind in der Lage, einen neuen Datenbankbenutzer mit zugehöriger Datenbank zu erstellen. Für jede Datenbank bzw. jeden Dienst, der eine Datenbank benötigt, sollte ein extra Benutzer erstellt werden, der nur auf diese eine Datenbank Zugriff hat. Wird ein Service gehackt und MySQL Zugangsdaten wurden kopiert, ist nur eine Datenbank von dem Sicherheitsproblem betroffen, und nicht der ganze MySQL Server.

Zuerst loggen wir uns als root in die Kommandozeile ein:

mysql -u root -p

Eine neue Datenbank „forum“ erstellen:

create database forum;

Einen neuen Benutzer „forumuser“ mit „forumpasswort“ anlegen, der vollen Zugriff auf die forum-Datenbank hat:

grant all on forum.* to 'forumuser'@'localhost' identified by 'forumpasswort';

Danach kann die MySQL Kommendozeile durch die Eingabe von „exit“ verlassen werden.


Post published on 17. Mai 2014 | Last updated on 18. Mai 2014
Tags:                   

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

8 thoughts on “Apache2: PHP und MySQL Server installieren unter Ubuntu 14.04

  • Wilhelm Loeffler

    Hallo Thomas, ich habe versucht nach Deinen Vorgaben Apache, PHP und MySql zu installieren. Der Server startet, ich kann auch die Willkommenseite über 127.0.1.1 aufrufen. Nun habe ich gedacht in den /var/www/html Ordner meine vorhandene index.php mit all den zugehörigen Ordnern zu speichern, dann sollte meine Seite über den Aufruf 127.0.1.1 angezeigt werden. Auch habe ich die index.php mit chmod auf 777 eingestellt. Aber es hustet mir was.
    Ich hatte die Webseite über Xampp über window7 betrieben gehabt. nun das ständige update und ausbremsen von Window7 hat mich dazu veranlasst das ganze mit Ubuntu zu realisieren.
    Sollte es Dir die wertvolle Zeit erlauben mir ein Hinweis, oder Leitfaden zukommen zu lassen, dann währe ich natürlich zu einem vorher vereinbarten Gegenzug verpflichtet. = Also lasse es mich wissen, was ich entlohnen muss, um die Webseite zu Anzeige zu bringen.
    Gruß
    Willi

    • Hi Willi,

      eine Fehlermeldung wäre nicht schlecht (wenn das Problem nich aktuell ist).
      Spontan würde ich fragen:
      – funktioniert der WebServer grundsätzlich? (kann eine html-Seite im Server-Root-Verzeichnis angezeigt werden?)
      – funktioniert der WebServer in Unterverzeichnissen?
      – funktioniert die PHP-Seite im WebServer-Root-Verzeichnis? (Beispiel: siehe phpinfo-Beispiel)

      Grüße,
      POli

  • Hallo Thomas,
    hätte eine Frage:
    Habe den Apache2 auf Kali – Linux installiert. Im internen Netzwerk funktioniert alles sauber und meine Homepage ist erreichbar, nur mit öffentlicher IP bekomme ich keine Antwort, es kommt nur ein Timeout.
    Portmapping ist freigeschaltet und funktioniert auch, da ich über die gleiche Netzwerkadresse ( no-ip ) noch Netzwerkkameras am laufen haben, die sind von „außen“ erreichbar.
    Port 80 ist auch freigeschaltet, trotdem antwortet der Server nicht! Was mache ich falsch?
    Gruß Ralf F.

    • Hi Ralf,

      sofern dein Problem noch aktuell ist:
      wo betreibst du den WebServer? So wie es sich anhört, hinter deinem Router auf einem Linux-Recher/Server.
      und der „interne“ Zugriff funktioniert nur innerhalb deines Servers?
      oder auch innerhalb deines Heim-Netzwerks (evtl. testbar mit zweitem Rechner, Handy, …)?
      Läuft eine Firewall auf diesem?
      Falls ja, kannst du dann diese kurz ausschalten?
      Funktioniert der Zugriff von extern, wenn du deine externe IP angibst (also anstatt no-ip)?

      Grüße,
      POli

  • Hallo Thomas, wenn ich alles installiert habe und den Raspbarry runterfahre geht die rote LED nicht mehr aus. Beim Neustart kann ich nicht mehr über Remotedesktop verbinden. Kannst Du mir helfen. Danke im Voraus.

    Viele Grüße
    Dirk

  • Vielen Dank für diese kleine Anleitung :)

  • … kann in das Wurzelverzeichnis des Standard-VirtualHosts eine Datei „index.php“ statt „index.html“ gelegt werden.
    Ja und wie lautet das Wurzelverzeichnis?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.