So richten Sie Ihren eigenen Apache-Server ein (2023)

Je nach Erhebung bringt es Linux bei Webservern auf einen Marktanteil von mindestens 40 Prozent. Einer der beliebtesten Webserver ist Apache . Daher lohnt es sich, sich mit der Technik zu beschäftigen – egal ob für private oder kommerzielle Websites. Zum Experimentieren genügt der heimische Linux-PC, für den wir die Installation in diesem Artikel hauptsächlich beschreiben. Wer mehr will, mietet einen Linux-Server im Rechenzentrum ab etwa 30 Euro monatlich. Virtuelle Server, deren Rechenleistung sich mehrere Nutzer teilen, gibt es ab circa fünf Euro monatlich. Die Konfiguration verläuft hier ähnlich wie auf dem eigenen PC.

1. Vorbereitungen: Pakete installieren

Der Webserver Apache wird meist in Kombination mit PHP und MySQL installiert. Apache selbst liefert nur statische HTML-Seiten aus. Dynamische HTML-Seiten werden dagegen über ein Script-Sprache wie PHP (PHP Hypertext Preprocessor) aus Datenbankinhalten generiert. Die meisten Content-Management-Systeme (CMS) wie WordPress oder Joomla benötigen daher auch PHP und die Datenbank MySQL. PHP gilt übrigens als nicht besonders sicher. Webadmins sollten darum einige Pflichtmaßnahmen d urchführen, um die Sicherheit zu erhöhen. Die erforderlichen Software-Pakete sind für alle verbreiteten Linux-Distributionen über das jeweilige Paketmanagement verfügbar. Die meisten Web-Hoster bieten als Betriebssystem Cent-OS , Open Suse , Debian oder Ubuntu an. Die folgenden Beschreibungen gelten für Ubuntu 14.04 LTS und Verwandte. Bei anderen Distributionen heißen die Pakete wahrscheinlich etwas anders, und die Installationspfade können sich unterscheiden. Öffnen Sie auf dem lokalen Linux- PC ein Terminalfenster, oder verbinden Sie sich mit dem Server über SSH:

ssh [Benutzer]@[Server]

„[Benutzer]“ ersetzen Sie durch den Anmeldenamen, „[Server]“ durch den Rechneramen oder dessen IP-Adresse. Danach bestätigen Sie den SSH-Schlüssel und melden sich mit Ihrem Passwort an. Über die folgenden zwei Zeilen aktualisieren Sie die Paketliste und installieren die nötige Software:

sudo apt-get update sudo apt-get install apache2 apa che2-doc php5 mysql-server mys ql-client php5-mysql php5-gd phpmyadmin

Das System richtet jetzt Apache, die Apache-Dokumentation, PHP und My SQL Server und My SQL Client ein. php5-mysql ermöglicht den Zugriff auf eine My-SQL-Datenbank über PHP. php5-gd ist ein häufig benötigtes Modul für den Zugriff auf Bilddateien. Phpmyadmin schließlich ist eine Webanwendung für die komfortable Administration von My SQL. Bei der Installation von My SQL Server legen Sie ein Passwort für den administrativen My-SQL-Benutzer „root“ fest und wählen „apache2“ für die automatische Konfiguration aus. Bei Phpmyadmin beantworten Sie die Frage nach „dbconfig-common“ mit „Ja“ und geben dann das zuvor gewählte My-SQL-root-Passwort ein. Danach müssen Sie ein weiteres Passwort festlegen, mit dem sich Phymyadmin in Zukunft bei My SQL anmelden soll.

(Video) So richten Sie eine Weiterleitungs-Email-Adresse mit jiij-Hosting ein.

2. Webserver Apache: Die ersten Schritte

Sie testen die Apache-Installation, indem Sie im Browser die Adresse „http://localhost/“ aufrufen. Es erscheint die Seite „Apache2 Ubuntu Default Page“ mit einigen Informationen zur Installation. Über „http://localhost/ manual“ rufen Sie die auf der Festplatte installierte Apache-Dokumentation auf. Beim Aufruf von „http://localhost“ macht Apache nichts anderes, als die Datei „index.html“ aus dem konfigurierten Verzeichnis auszuliefern. Bei Ubuntu ist das „/var/www/html“.

15 Jahre Apache Software Foundation Websites einrichten: Die Apache-Konfigurationsdateien liegen im Verzeichnis „/etc/apache2“. Das Verzeichnis „sites-available“ enthält conf-Dateien für einzelne Sites. Bei Ubuntu sind „000-default.conf“ für die Standard-Site und „default-ssl.conf“ für eine SSL-verschlüsselte Site vorhanden. Unter „/etc/apache2/sitesenabled“ sehen Sie einen Symlink auf „/etc/apache2/sites-available/00-default.conf“. Nur dieser Symlink wird von Apache berücksichtigt. Auf diese Weise ist es möglich, mehrere Websites mit unterschiedlichen Adressen in „sites-available“ abzulegen und bei Bedarf zu aktivieren oder zu deaktivieren. Um die Site-Konfiguration auszuprobieren, erstellen Sie eine Kopie von „00-default.conf“ unter dem Namen „test01.conf“. Wie auch bei allen folgenden Schritten muss das mit root-Rechten im Terminal erfolgen. Ein Dateimanager wie Midnight Commander (Paketname „mc“) ist dabei hilfreich.

So richten Sie Ihren eigenen Apache-Server ein (2)

1. Öffnen Sie „test01.conf“ in einem Editor, im Midnight Commander beispielsweise über die F4-Taste. Tragen Sie hinter „ServerName“ den Wert „test01.localhost“ ein. „Document Root“ ändern Sie auf „/var/www/ test01“, und hinter „ErrorLog“ sowie „CustomLog“ ändern Sie die Dateinamen auf „error_test01.log“ und „access_ test01.log“. 2. Im Terminal aktivieren Sie die Site mit a2ensite test01. Wie nach jeder Änderung laden Sie Apache danach mit service apache2 reload neu, damit die Konfiguration neu eingelesen wird. 3. Erstellen Sie im Verzeichnis „/var/www/test01“ eine Datei mit dem Namen „index.html“ und einem Inhalt wie

Dies ist Site test01. 4. Öffnen Sie die Datei „/etc/hosts“ im Editor, und fügen Sie folgende Zeile ein: 127.0.0.1 test01.localhost „test01.localhost“ verweist jetzt auf dieselbe interne IP-Adresse 127.0.0.1 des Rechners wie „localhost“. Durch die Angabe hinter „ServerName“ in „test01.conf“ kann Apache zwischen Anfragen an „localhost“ und „test01. localhost“ unterscheiden und die passende „index.html“ ausliefern. Bei einem Server, der im Internet über seinen Domain-Namen erreichbar ist, müssen Sie die Datei „/etc/hosts“ nicht anpassen. Hier sorgt der DNS-Server dafür, dass weitere Domains oder Subdomains erreichbar sind. Rufen Sie nun im Browser die Adresse „http://test01.localhost“ auf, um die neue Website zu sehen. Mit a2dissite test01 entfernen Sie bei Bedarf die Verknüpfung in „/etc/apache2/sitesenabled“ wieder und deaktivieren damit die Site. Module aktivieren: Apache hat mehrere Module, die den Webserver mit zusätzlichen Funktionen ausstatten, standardmäßig aktiviert. Das erkennen Sie an den Verknüpfungen unter „/etc/ apache2/mods-enabled“. Viele CMS benötigen zusätzlich „mod_rewrite“. Damit lassen sich URLs dynamisch nach bestimmten Mustern vor allem für die Suchmaschinenoptimierung ändern. Sie aktivieren das Modul mit a2enmod rewrite

(Video) Infrastructure as Code - Die Serverumgebung auf Knopfdruck skalieren

Über a2dismod Modulname deaktivieren Sie Module bei Bedarf wieder. Nach Änderungen der Modulkonfiguration müssen Sie service apache2 reload ausführen. Ein weiteres interessantes Modul ist „mod_userdir“, das Sie mit a2enmod userdir aktivieren. Jeder Linux-Nutzer kann dann in seinem Home-Verzeichnis das Verzeichnis „public_html“ erstellen und darin HTML-Dateien unterbringen. Über „http://localhost/~[User]“ rufen Sie die Sites auf.

So richten Sie Ihren eigenen Apache-Server ein (3)

3. PHP & Co: Dynamische HTML-Seiten

Für eine Visitenkarte im Internet genügen einige HTML-Dateien, die Sie im Prinzip mit einem beliebigen Texteditor erstellen können. Die meisten Nutzer werden jedoch ein CMS wie WordPress, Joomla oder Drupal bevorzugen. Damit verwalten Sie zahlreiche Seiten für größere Internetauftritte inklusive Bildern, Video und Downloads. Inhalte lassen sich in einem komfortablen Editor über den Webbrowser schnell erstellen und ändern. Die genannten CMS-Produkte benötigen allesamt PHP und ein Datenbanksystem wie My SQL (Punkt 4). Beides haben Sie bereits installiert, wenn Sie der Anleitung in Punkt 1 gefolgt sind. PHP ist eine schnell zu erlernende Script-Sprache. Apache interpretiert PHP-Scripts in Dateien mit der Endung „.php“ und liefert das Ergebnis als HTML-Seiten aus. Der PHP-Code ist dabei in die Tags „ eingebettet. Alles andere wird als Text oder HTML interpretiert. Eine korrekte PHP-Installation testen Sie so: Erstellen Sie unter „/var/ www/html“ die einfache Datei „info.php“ mit folgendem Inhalt:

Rufen Sie dann im Browser „http://localhost/info.php“ auf. Wenn PHP funktioniert, erhalten Sie Infos zur PHP- und Apache-Konfiguration. Unter „Configuration apache2handler“ sind die aktiven Module der Apache-Konfiguration aufgeführt, weitere Abschnitte zeigen die in PHP aktiven Module, etwa „gd“ (Paket: php5-gd) für die Unterstützung von Grafikformaten. Sie können so schnell ermitteln, welche PHP-Module für ein bestimmtes CMS noch fehlen, und diese dann über das Paketmanagement der Distribution nachinstallieren. Häufig werden zusätzlich die Pakete php5-imagick, php5-curl, php5-xmlrpc benötigt. Wenn Sie eine andere Datenbank als My SQL einsetzen, sind statt phpmysql beispielsweise php5-pgsql für Postgre SQL oder php-sqlite für SQlite-Datenbanken erforderlich.

So richten Sie Ihren eigenen Apache-Server ein (4)

Damit PHP auch für das Verzeichnis „public_html“ (siehe Punkt 2) in den Home-Verzeichnissen aktiv ist, müssen Sie die Datei „/etc/apache2/mods_ available/php.conf“ in einem Editor öffnen und den Block „“ ganz unten in der Datei auskommentieren. PHP konfigurieren: Die Konfigurationsdatei für PHP lautet „/etc/php5/apache2/php.ini“. Sie enthält Variablen in der Form „Direktive = Wert“ und Beschreibungen zu deren Funktion. Die Installationsanleitungen der CMS enthalten häufig Anweisungen, welche Werte zu ändern oder zu ergänzen sind. Sie können beispielsweise die Werte hinter „post_max_size“ und „upload_max_filesize“ jeweils auf „20M“ setzen, um Datei-Uploads über den Browser bis zu einer Größe von 20 MB zu erlauben. Für speicherintensive Webanwendungen kann es erforderlich sein, den Wert hinter „memory_limit“ zu erhöhen. Änderungen der „php.ini“ gelten erst nach einem Neustart des Apache-Servers (service apache2 reload). Weitere Script-Sprachen: Neben PHP kommen für CMS und Webapplikationen auch Perl, Python, Ruby oder Java zum Einsatz. Mit libapache2-mod-perl2 und libapache-mod-python gibt es Apache-Module für Perl und Python, die ähnlich wie das PHP-Modul funktionieren. libapache2-modwsgi (Web Server Gateway Interface) wird zusammen mit Python-Webanwendungen wie dem Django -CMS eingesetzt. libapache2-mod-passenger kommt bei Ruby-on-Rails-Anwendungen zum Einsatz. Java-CMS und Web-Applikationen mit Java Server Pages (JSP) erfordern in der Regel einen eigenen Server wie Tomcat, der aber auch hinter einem Apache-Server laufen kann.

(Video) AI Unveiled: ChatGPT and Deepfake - Hear this Critical Warning!

So richten Sie sich Ihren eigenen Mail-Webserver ein

So richten Sie Ihren eigenen Apache-Server ein (5)

4. My SQL: Datenbanken erstellen und verwalten

Content-Management-Systeme speichern einen Großteil ihrer Konfiguration und Inhalte in einer Datenbank. PHP-Scripts stellen die Verbindung zur Datenbank her, rufen Datensätze ab, und Apache liefert das Ergebnis als HTML-Seiten aus. In der Regel müssen Sie sich um die Datenbank nicht kümmern. Vor der Installation müssen Sie für einige CMS jedoch selbst eine Datenbank erstellen. Das ist aus Sicherheitsgründen sogar generell empfehlenswert, weil Sie dabei einen neuen Benutzer für eine Datenbank erstellen und Zugriffsrechte zuweisen können. Es ist sicherer, statt des automatisch angelegten My-SQL-Admins, der Zugriff auf das gesamte Datenbanksystem hat, einen eingeschränkten Benutzer zu verwenden. 1. Rufen Sie im Browser „http://localhost/phpmyadmin“ auf, und loggen Sie sich mit dem Benutzernamen „root“ und dem bei der Installation vergebenen Passwort ein. 2. Klicken Sie auf „Datenbanken“, und legen Sie unter „Neue Datenbank anlegen“ eine aussagekräftige Bezeichnung für die neue Datenbank fest, beispielsweise „wordpress“. Im Feld dahinter wählen Sie die Zeichencodierung. In der Regel geben Sie „utf8-unicode_ci“ an, wenn die Installationsanweisungen des CMS nichts anderes fordern. Klicken Sie auf „Anlegen“. 3. Klicken Sie hinter der neu angelegten Datenbank „wordpress“ auf „Rechte überprüfen“ und unter „Neu“ auf „Benutzer hinzufügen“. Tragen Sie in das Formular Benutzernamen und Passwort ein. Hinter „Host“ wählen Sie „Lokal“. Unter „Daten“, „Struktur“ und „Administration“ darf kein Häkchen gesetzt sein. Setzen Sie hingegen ein Häkchen vor „Gewähre alle Rechte auf die Datenbank ‚wordpress‘“.Klicken Sie auf „OK“, um den Benutzer anzulegen. Der neu angelegte Benutzer besitzt bei My SQL nur das Recht „Usage“, was „keinen Privilegien“ entspricht. Nur für die Datenbank „wordpress“ besitzt er in unserem Beispiel alle Rechte bis auf „Grant“. Dieser Benutzer kann daher Datenbanktabellen in „wordpress“ anlegen und verwalten, aber die Benutzerrechte nicht ändern. Kommt folglich ein Angreifer in den Besitz von Benutzername und Passwort, bleibt der mögliche Schaden auf eine Datenbank begrenzt. Datenbanken entfernen: Wenn Sie mehrere CMS ausprobiert haben, wollen Sie nicht mehr benötigte Datenbanken wahrscheinlich löschen. Dazu klicken Sie in phpmyadmin auf „Datenbanken“, setzen ein Häkchen vor der gewünschten Datenbank und klicken auf „Löschen“. Bestätigen Sie den Vorgang mit „OK“. Für eine Neuinstallation genügt es, die Tabellen zu entfernen. Klicken Sie dazu die Datenbank im Baum auf der linken Seite an, und aktivieren Sie „Alle auswählen“. Stellen Sie dahinter „Löschen“ ein, und bestätigen Sie mit „Ja“. Löschen Sie dann sämtliche Dateien der CMS-Testinstallation, und kopieren Sie die Dateien aus dem heruntergeladenen Archiv des CMS wieder in das Verzeichnis. Danach installieren Sie neu.

Apache Zugriffsrechte korrekt setzen

Der Apache-Webserver läuft auf einem Ubuntu-System standardmäßig unter dem Benutzerkonto „www-data“, das zur Gruppe „www-data“ gehört. Zum Ausliefern von Webseiten benötigt der Server nur Lesezugriff auf die Dateien. Wenigstens bei der Installation ist aber auch der Schreibzugriff im Installationsverzeichnis nötig. Wenn Sie in Ihr CMS auch Dateien hochladen wollen, muss der Webserver auch in weitere Verzeichnisse schreiben dürfen. Welche das sind, erfahren Sie in der Installationsanleitung zum jeweiligen CMS.

(Video) Dark Souls - Ein unsterbliches Licht

Nachdem Sie die Dateien für Ihr CMS als Benutzer „root“ beispielsweise nach „/var/www/wordpress“ kopiert haben, müssen Sie folgende Befehlszeile ausführen:

sudo chown -R www-data:www-data /var/www/wordpress

Der Webserver erhält dadurch Lese- und Schreibzugriff, und das Installations-Script kann die Konfigurationsdatei speichern. Sie selbst können Dateien aber nur ändern, wenn Sie sich vorher root-Rechte verschaffen.

Alternativ fügen Sie Ihr Benutzerkonto mit sudo useradd Benutzername www-data zur Gruppe „www-data“ hinzu und melden sich beim System ab und wieder an. Bei einem über das Internet zugänglichen Webserver sollten Sie das nach der Entwicklungsarbeit mit sudo deluser Benutzername www-data wieder rückgängig machen. Entfernen Sie außerdem die Schreibrechte für alle Dateien und Verzeichnisse, für die sie nicht nötig sind. So schützen Sie etwa die WordPress-Konfigurationsdatei mit

chmod 440 /var/www/wordpress/wp-config.php

(Video) Debian FTP Server Install - Vorstellung

Videos

1. $10 Dollar Shared Hosting - Perfect for Developers, Sites Under Construction or Just Starting Out
(SaaS Master)
2. RESTful Web Services mit Spring Boot
(Coding Club Linz)
3. "Velma" Is Wrong About Animation
(troyoboyo17)
4. Deploy & Build
(Sascha Fuchs)
5. [TUT] Venice Unleashed - Battlefield 3 Dedicated Server installation auf Windows [4K | DE]
(Hoerlis Tutorials)
6. Create Your Own Windows 10 Diskless Server with a Synology NAS
(NETVN)
Top Articles
Latest Posts
Article information

Author: Duncan Muller

Last Updated: 03/29/2023

Views: 5930

Rating: 4.9 / 5 (59 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Duncan Muller

Birthday: 1997-01-13

Address: Apt. 505 914 Phillip Crossroad, O'Konborough, NV 62411

Phone: +8555305800947

Job: Construction Agent

Hobby: Shopping, Table tennis, Snowboarding, Rafting, Motor sports, Homebrewing, Taxidermy

Introduction: My name is Duncan Muller, I am a enchanting, good, gentle, modern, tasty, nice, elegant person who loves writing and wants to share my knowledge and understanding with you.