Einführung
Der Apache HTTP-Server ist der weltweit am häufigsten verwendete Webserver. Es bietet viele leistungsstarke Funktionen, einschließlich dynamisch ladbarer Module, robuster Medienunterstützung und umfassender Integration in andere gängige Software.
In diesem Handbuch wird erläutert, wie Sie einen Apache-Webserver auf Ihrem Ubuntu 16.04-Server installieren.
Voraussetzungen
Bevor Sie mit diesem Handbuch beginnen, sollten Sie einen regulären Benutzer ohne Rootberechtigung mitsudo
-Berechtigungen auf Ihrem Server konfiguriert haben. Darüber hinaus müssen Sie eine grundlegende Firewall konfigurieren, um nicht unbedingt erforderliche Ports zu blockieren. Sie können lernen, wie Sie ein reguläres Benutzerkonto konfigurieren und eine Firewall für Ihren Server einrichten, indem Sie unsereninitial server setup guide for Ubuntu 16.04 folgen.
Wenn Sie über ein Konto verfügen, melden Sie sich als Benutzer ohne Rootberechtigung an, um zu beginnen.
Schritt 1: Installieren Sie Apache
Apache ist in den Standard-Software-Repositorys von Ubuntu verfügbar, daher werden wir es mit herkömmlichen Paketverwaltungstools installieren.
Wir werden zunächst den lokalen Paketindex aktualisieren, um die neuesten Upstream-Änderungen zu berücksichtigen. Anschließend können wir das Paketapache2
installieren:
sudo apt-get update
sudo apt-get install apache2
Nach Bestätigung der Installation installiertapt-get
Apache und alle erforderlichen Abhängigkeiten.
Schritt 2: Passen Sie die Firewall an
Bevor wir Apache testen können, müssen wir unsere Firewall so ändern, dass von außen auf die Standard-Webports zugegriffen werden kann. Vorausgesetzt, Sie haben die Anweisungen in den Voraussetzungen befolgt, sollte eine UFW-Firewall konfiguriert sein, um den Zugriff auf Ihren Server einzuschränken.
Während der Installation registriert sich Apache bei UFW, um einige Anwendungsprofile bereitzustellen. Wir können diese Profile verwenden, um den Prozess des Aktivierens oder Deaktivierens des Zugriffs auf Apache über unsere Firewall zu vereinfachen.
Wir können die Anwendungsprofile vonufw
auflisten, indem wir Folgendes eingeben:
sudo ufw app list
Sie sollten eine Liste der Anwendungsprofile erhalten:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
Wie Sie sehen, gibt es drei Profile für Apache:
-
Apache: Dieses Profil öffnet nur Port 80 (normaler, unverschlüsselter Webverkehr)
-
Apache Full: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (TLS / SSL-verschlüsselter Verkehr).
-
Apache Secure: Dieses Profil öffnet nur Port 443 (TLS / SSL-verschlüsselter Verkehr)
Für unsere Zwecke erlauben wir eingehenden Datenverkehr für dasApache Full-Profil, indem wir Folgendes eingeben:
sudo ufw allow 'Apache Full'
Sie können die Änderung überprüfen, indem Sie Folgendes eingeben:
sudo ufw status
In der angezeigten Ausgabe sollte HTTP-Verkehr zulässig sein:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
Wie Sie sehen, wurde das Profil aktiviert, um den Zugriff auf den Webserver zu ermöglichen.
Schritt 3: Überprüfen Sie Ihren Webserver
Am Ende des Installationsprozesses startet Ubuntu 16.04 Apache. Der Webserver sollte bereits in Betrieb sein.
Wir können mit dem Init-System vonsystemd
überprüfen, ob der Dienst ausgeführt wird, indem wir Folgendes eingeben:
sudo systemctl status apache2
Output● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago
Docs: man:systemd-sysv-generator(8)
Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 55
Memory: 2.3M
CPU: 4.094s
CGroup: /system.slice/apache2.service
├─4374 /usr/sbin/apache2 -k start
├─4377 /usr/sbin/apache2 -k start
└─4378 /usr/sbin/apache2 -k start
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server.
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: * Starting Apache httpd web server apache2
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]: *
May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.
Wie Sie oben sehen können, scheint der Dienst erfolgreich gestartet worden zu sein. Der beste Weg, dies zu testen, ist jedoch, eine Seite von Apache anzufordern.
Sie können auf die Standard-Apache-Startseite zugreifen, um zu bestätigen, dass die Software ordnungsgemäß ausgeführt wird. Sie können über den Domänennamen oder die IP-Adresse Ihres Servers darauf zugreifen.
Wenn Sie DigitalOcean verwenden und keinen Domainnamen für Ihren Server eingerichtet haben, können Sie unserem Leitfadenhow to set up a domain with DigitalOcean folgen, um einen einzurichten.
Wenn Sie keinen Domainnamen für Ihren Server einrichten möchten, können Sie die öffentliche IP-Adresse Ihres Servers verwenden. Wenn Sie die IP-Adresse Ihres Servers nicht kennen, können Sie sie auf verschiedene Arten über die Befehlszeile abrufen.
Geben Sie dies an der Eingabeaufforderung Ihres Servers ein:
hostname -I
Sie erhalten einige durch Leerzeichen getrennte Adressen zurück. Sie können jeden in Ihrem Webbrowser ausprobieren, um zu sehen, ob er funktioniert.
Eine Alternative besteht darin, Folgendes einzugeben:
sudo apt-get install curl
curl -4 icanhazip.com
Wenn Sie die IP-Adresse oder Domain Ihres Servers haben, geben Sie diese in die Adressleiste Ihres Browsers ein:
http://server_domain_or_IP
Sie sollten die Standardwebseite von Ubuntu 16.04 Apache sehen, die ungefähr so aussehen sollte:
Diese Seite ist nur enthalten, um zu zeigen, dass Apache korrekt funktioniert. Es enthält auch einige grundlegende Informationen zu wichtigen Apache-Dateien und -Verzeichnissen.
Schritt 4: Verwalten Sie den Apache-Prozess
Nachdem Sie Ihren Webserver eingerichtet haben, können wir einige grundlegende Verwaltungsbefehle durchgehen.
Um Ihren Webserver zu stoppen, können Sie Folgendes eingeben:
sudo systemctl stop apache2
Geben Sie Folgendes ein, um den Webserver nach dem Stoppen zu starten:
sudo systemctl start apache2
Geben Sie Folgendes ein, um den Dienst zu beenden und erneut zu starten:
sudo systemctl restart apache2
Wenn Sie lediglich Konfigurationsänderungen vornehmen, kann Apache häufig neu laden, ohne dass Verbindungen unterbrochen werden. Dazu können Sie diesen Befehl verwenden:
sudo systemctl reload apache2
Standardmäßig ist Apache so konfiguriert, dass es automatisch startet, wenn der Server startet. Wenn Sie dies nicht möchten, können Sie dieses Verhalten deaktivieren, indem Sie Folgendes eingeben:
sudo systemctl disable apache2
Um den Dienst wieder für den Start beim Start zu aktivieren, können Sie Folgendes eingeben:
sudo systemctl enable apache2
Apache sollte jetzt automatisch starten, wenn der Server erneut startet.
Schritt 5: Machen Sie sich mit wichtigen Apache-Dateien und -Verzeichnissen vertraut
Nachdem Sie nun wissen, wie der Dienst selbst verwaltet wird, sollten Sie sich einige Minuten Zeit nehmen, um sich mit einigen wichtigen Verzeichnissen und Dateien vertraut zu machen.
Inhalt
-
/var/www/html
: Der eigentliche Webinhalt, der standardmäßig nur aus der zuvor angezeigten Apache-Standardseite besteht, wird aus dem Verzeichnis/var/www/html
bereitgestellt. Dies kann durch Ändern der Apache-Konfigurationsdateien geändert werden.
Serverkonfiguration
-
/etc/apache2
: Das Apache-Konfigurationsverzeichnis. Alle Apache-Konfigurationsdateien befinden sich hier. -
/etc/apache2/apache2.conf
: Die Hauptkonfigurationsdatei von Apache. Dies kann geändert werden, um Änderungen an der globalen Apache-Konfiguration vorzunehmen. Diese Datei ist für das Laden vieler anderer Dateien im Konfigurationsverzeichnis verantwortlich. -
/etc/apache2/ports.conf
: Diese Datei gibt die Ports an, die Apache abhört. Standardmäßig überwacht Apache Port 80 und zusätzlich Port 443, wenn ein Modul aktiviert ist, das SSL-Funktionen bereitstellt. -
/etc/apache2/sites-available/
: Das Verzeichnis, in dem pro Standort „Virtuelle Hosts“ gespeichert werden können. Apache verwendet die in diesem Verzeichnis gefundenen Konfigurationsdateien nur, wenn sie mit dem Verzeichnissites-enabled
verknüpft sind (siehe unten). In der Regel wird die gesamte Serverblockkonfiguration in diesem Verzeichnis durchgeführt und anschließend durch Verknüpfen mit dem anderen Verzeichnis mit dem Befehla2ensite
aktiviert. -
/etc/apache2/sites-enabled/
: Das Verzeichnis, in dem pro Standort aktivierte „virtuelle Hosts“ gespeichert sind. In der Regel werden diese durch Verknüpfen mit Konfigurationsdateien im Verzeichnissites-available
mita2ensite
erstellt. Apache liest die Konfigurationsdateien und Links in diesem Verzeichnis, wenn es startet oder neu lädt, um eine vollständige Konfiguration zu kompilieren. -
/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: Diese Verzeichnisse haben dieselbe Beziehung wie die Verzeichnissesites-available
undsites-enabled
, werden jedoch zum Speichern von Konfigurationsfragmenten verwendet, die nicht zu einem virtuellen Host gehören. Dateien im Verzeichnisconf-available
können mit dem Befehla2enconf
aktiviert und mit dem Befehla2disconf
deaktiviert werden. -
/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: Diese Verzeichnisse enthalten die verfügbaren bzw. aktivierten Module. Dateien mit der Endung.load
enthalten Fragmente zum Laden bestimmter Module, während Dateien mit der Endung.conf
die Konfiguration für diese Module enthalten. Module können mit den Befehlena2enmod
unda2dismod
aktiviert und deaktiviert werden.
Server-Protokolle
-
/var/log/apache2/access.log
: Standardmäßig wird jede Anforderung an Ihren Webserver in dieser Protokolldatei aufgezeichnet, sofern Apache nicht anders konfiguriert ist. -
/var/log/apache2/error.log
: Standardmäßig werden alle Fehler in dieser Datei aufgezeichnet. Die AnweisungLogLevel
in der Apache-Konfiguration gibt an, wie detailliert die Fehlerprotokolle sein sollen.
Fazit
Nachdem Sie Ihren Webserver installiert haben, haben Sie viele Optionen für die Art des Inhalts und die Technologien, die Sie verwenden möchten, um eine umfassendere Erfahrung zu erzielen.
Lernehow to use Apache Virtual Hosts here. Wenn Sie einen vollständigeren Anwendungsstapel erstellen möchten, lesen Sie diesen Artikel zuhow to configure a LAMP stack on Ubuntu 16.04.