1942453

Apache: So richten Sie eigene Webserver ein

17.06.2014 | 12:17 Uhr |

Linux dominiert das Web. Einen großen Anteil an dieser Erfolgsgeschichte hat der Webserver Apache, dessen Einrichtung mit My-SQL-Backend und PHP unter Debian und Ubuntu mit wenigen Befehlen klappt.

Nicht nur im Linux-Umfeld ist „Apache“ zum Synonym für Webserver geworden. Dabei hatte die heute dominierende Server-Software bescheidene Anfänge: Apache startete 1995 als namenloses Nachfolgeprojekt zum HTTPd des National Center For Supercomputing Applications (NCSA-HTTPd) und wurde von den Entwicklern zunächst als „a patchy server“ bezeichnet (Flickwerk-Server). Daraus ergab sich bald das phonetisch ähnliche, aber weit charmantere „Apache“. Seinen Siegeszug trat Apache mit Version 2.0 an – mit konkurrenzloser Performance, Funktionsvielfalt und relativ einfacher Konfiguration.

Der modulare Aufbau dieses Webservers erlaubt den Ausbau mit weiteren Bausteinen. So wird etwa SSL bei Bedarf von Apache als Modul geladen und ebenso der PHP-Interpreter. Ebenso gibt es Perl und Python zum Nachrüsten, falls man dynamische Webseiten lieber damit baut. Trotz schneller und effizienter Alternativen wie NGINX hält sich Apache aufgrund seiner einfachen Struktur und Konfiguration weiterhin als Marktführer. Populäre PHP-Projekte wie Wordpress, Magento und Drupal laufen ohne große Anpassungen auf Apache mit PHP-Modulen.

Dieser Artikel stammt aus der LinuxWelt 3/2014

So klappt der Umstieg von XP zu Linux, Videoüberwachung mit Raspberry Pi einrichten, das beste Linux für jeden PC - das und mehr finden Sie in der neuen LinuxWelt 3/2014 .

Apache und PHP einrichten

Natürlich ist Apache 2.x in jeder Linux-Distribution in den Standard-Paketquellen vorhanden, und meist gibt es den Webserver mit einer vorkonfigurierten Beispielseite. Bei der Einrichtung gibt es aber Unterschiede. Die nächsten Punkte zeigen im Überblick, wie sich Apache, My SQL und PHP auf den für Server-Zwecke bestens geeigneten Linux-Distributionen Debian 7 und Ubuntu 12.04 LTS installieren lassen, um den Server fit für PHP-basierte Blogs wie Wordpress, Shops, Content-Management-Systeme und private Clouds zu machen.

Debian: Das aktuelle Debian 7 (Wheezy) bietet in den Paketquellen des Stable-Zweigs Apache 2.2.22 und PHP 5.4.4, jeweils mit Sicherheitspatches des Debian-Security-Teams. Die Installation aller Pakete ist in der Kommandozeile mit apt-get am einfachsten:

sudo apt-get install apache2 php5 libapache2-mod-php5

Apache wird als Dienst automatisch eingerichtet und gestartet. Es liegt zum Test auch schon eine Beispielkonfiguration für eine Standard-Domain in der Datei Verzeichnis „ /etc/apache2/sites-available/default “ vor, um Apache gleich auf http://localhost auszuprobieren. Die zugehörigen Dokumente, die Apache unter Debian auf der vorkonfigurierten Standard-Domain serviert, liegen unter „ /var/www “.

Ubuntu 12.04 LTS: Debian ist das technische Vorbild von Ubuntu, und die gesamte Einrichtung und Konfiguration ist in Ubuntu deshalb ähnlich. Die Distribution mit Langzeit-Support bis April 2017 liefert wie Debian Apache 2.2.22, aber ein etwas neueres PHP 5.5.3. Mit

sudo apt-get install apache2 php5 libapache2-mod-php5 

erfolgt wie bei Debian die Installation, und auch der Speicherort der Default-Konfiguration und das Web-Wurzelverzeichnis (Document Root) sind identisch. Auch bei der nächsten LTS-Ausgabe mit der Versionsnummer 14.04 im April 2014 wird sich an Paketnamen und Konfiguration nichts ändern.

Nginx - Die robuste Alternative zu Apache

My-SQL-Datenbank und PHP-Modul einrichten

Bis auf wenige Ausnahmen brauchen alle populären PHP-Projekte für das Web ein Datenbank-Backend, auf das PHP zugreift, um Daten zu speichern und zu beziehen. Während einige Projekte mehrere Datenbanksysteme unterstützen, etwa Postgresql und Sqlite, ist My SQL die verbreitete Lösung. Die Installation gelingt unter Debian und Ubuntu mit dem gleichen Befehl:

sudo apt-get install mysql-server mysql-client php5-mysql 

Auch My SQL kennt einen root-User mit vollen Zugriffsrechten in der Datenbank und fragt bei der Einrichtung gleich das gewünschte Passwort ab. Dieses wird in Zukunft bei der weiteren Einrichtung von My SQL gebraucht. Es ist schon aus Sicherheitsgründen keine gute Idee, ein PHP-Projekt über das My-SQL-root-Konto auf die Datenbank zugreifen zu lassen.

Testseite für PHP: Die PHP-Funktion phpinfo() zeigt die Konfiguration der PHP-Umgebung an. Dazu genügen schon drei Zeilen in einer temporären Testdatei – etwa „index.php“ – im Web-Wurzelverzeichnis.
Vergrößern Testseite für PHP: Die PHP-Funktion phpinfo() zeigt die Konfiguration der PHP-Umgebung an. Dazu genügen schon drei Zeilen in einer temporären Testdatei – etwa „index.php“ – im Web-Wurzelverzeichnis.

Erstellen Sie deshalb eine neue Datenbanktabelle, auf die ein neues normales My-SQL-Konto Zugriff hat. Mit

mysql -u root -p 

öffnen Sie eine My-SQL-Shell mit root-Rechten und erzeugen dann dort mit diesem Befehl

CREATE DATABASE beispieldb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 

die neue Datenbanktabelle „beispieldb“. Der Name ist nur ein Beispiel und kann beliebig sein. Als nächstes erstellen Sie den neuen My-SQL-Benutzer „dbuser“ mit dem Passwort „passwort“ und geben diesem Zugriffsrechte auf die neue Datenbanktabelle:

GRANT USAGE ON *.* TO dbuser@localhost IDENTIFIED BY 'passwort'; GRANT ALL PRIVILEGES ON beispieldb.* TO dbuser@localhost; 

Dieser Benutzer-Account hat mit dem Linux-System übrigens nichts zu tun und ist nur für My SQL relevant. Die hier konsequent verwendete Großschreibung der My-SQL-Befehle gilt als guter Stil und sorgt für mehr Übersichtlichkeit. Technisch notwendig ist sie nicht. Mit der Eingabe QUIT; beenden Sie die My-SQL-Shell.

Schritt für Schritt zum Linux-Webadmin

Debian und Ubuntu: Die Speicherorte der Apache-Konfiguration und des Webverzeichnisses sind identisch. Auch das demnächst kommende Ubuntu 14.04 wird My SQL 5.5.X aus Kompatibilitätsgründen noch beibehalten.
Vergrößern Debian und Ubuntu: Die Speicherorte der Apache-Konfiguration und des Webverzeichnisses sind identisch. Auch das demnächst kommende Ubuntu 14.04 wird My SQL 5.5.X aus Kompatibilitätsgründen noch beibehalten.

Die PHP-Umgebung mit phpinfo() testen

Anstatt eine statische Testseite anzuzeigen, kann man sich im Webdokumentverzeichnis auch eine Datei mit dem Namen „info.php“ und folgenden drei Zeilen

<?php phpinfo(); ?> 

als Inhalt anlegen. Diese zeigt die PHP-Konfiguration und die vorhandenen PHP-Module im Browser übersichtlich an. Abhängig davon, welche PHP-Projekte der Webserver hosten soll, sind meist noch weitere PHP-Module nötig, die sich aus den Repositories installieren lassen. Für das verbreitete Wordpress wären dies beispielsweise die Pakete „php5-curl“ „php5-xmlrpc“ und „php5-gd“:

sudo apt-get install php5-curl php5-xmlrpc php5-gd 

Debian und Ubuntu starten dabei Apache automatisch neu. Bei manuellen Änderungen an der Apache- und PHP-Konfiguration muss man dies aber selbst tun, was bei diesen Distributionen mit

sudo apachectl restart 

ganz einfach geht.

0 Kommentare zu diesem Artikel
1942453