Voraussetzungen
- Ein Vultr-Server, auf dem Arch Linux auf dem neuesten Stand ist. Weitere Informationen finden Sie in diesem Handbuch .
- Sudo Zugang.
- Befehlen, die als root ausgeführt werden müssen, wird ein Präfix vorangestellt
#
, und Befehle , die als normaler Benutzer ausgeführt werden können $
. Die empfohlene Methode zum Ausführen von Befehlen als Root besteht darin, jedem von ihnen als regulärer Benutzer ein Präfix voranzustellen sudo
.
- Haben Sie einen Text - Editor installiert ist , und sein mit ihm vertraut, wie
vi
, vim
, nano
, emacs
und so weiter.
Installieren Sie den Apache 2.4-Webserver
Wenn Sie eine Firewall verwenden, müssen Sie den eingehenden TCP-Verkehr für den Port aktivieren 80
.
Installieren Sie Apache:
# pacman -S apache
Starten Sie Apache und starten Sie es nach jedem Start:
# systemctl enable --now httpd
Testen Sie, ob Apache ausgeführt wird. Besuchen Sie http://YOUR-SERVER-WEB-ADDRESS-OR-IP
, und Sie sehen eine Seite mit "Index von /". Führen ip addr
Sie es aus, wenn Sie die IP-Adresse kennen müssen.
Die Konfigurationsdatei von Apache ist /etc/httpd/conf/httpd.conf
. Obwohl Apache vom Root-Benutzer gestartet wird, User http
wird es aus Sicherheitsgründen sofort als dieser Benutzer ausgeführt. DocumentRoot "/srv/http"
Legt fest, wo nach Webdateien gesucht wird. CustomLog "/var/log/httpd/access_log" common
Legt fest, wo erfolgreiche Zugriffe auf Apache protokolliert werden. ErrorLog "/var/log/httpd/error_log"
Legt fest, wo Zugriffe auf Apache diesen Fehler protokollieren.
Indizes deaktivieren
Wenn Apache ein Verzeichnis erhält, in dem keine Indexdatei mit einer für die Konfiguration konfigurierten Erweiterung gefunden wird, wird standardmäßig automatisch ein Index generiert, der den Inhalt des Verzeichnisses anzeigt. Dies kann als Sicherheitslücke angesehen werden. Um es zu deaktivieren, bearbeiten /etc/httpd/conf/httpd.conf
und innerhalb <Directory "/srv/http">
von Options
löschen Indexes
. Nach dem Neustart gibt Apache einen "Zugriff verboten!" Fehlermeldung, es sei denn, eine Datei wie /srv/http/index.html
existiert.
Starten Sie Apache neu:
# systemctl restart httpd
Benutzerverzeichnisse
Standardmäßig wird das ~/public_html/
Verzeichnis eines Benutzers unter angezeigt http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/
. Der Benutzer http
muss jedoch ausführbaren Bitzugriff auf das Benutzerverzeichnis und sein public_html
Verzeichnis haben:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Darüber hinaus muss der Benutzer http
Lesezugriff auf einzelne Dateien haben. Führen Sie gegebenenfalls den folgenden Befehl aus:
$ chmod o+r ~/public_html/<FILES>
Wenn Sie verhindern möchten, dass sich Benutzerverzeichnisse public_html
unabhängig von Verzeichnis- und Dateiberechtigungen auf Ihrem Webserver befinden, kommentieren Sie diese Zeile ( #
am Anfang hinzufügen ) in /etc/httpd/conf/httpd.conf
:
Include conf/extra/httpd-userdir.conf
Starten Sie Apache neu:
# systemctl restart httpd
Virtuelle Hosts
Sie können mehrere Domainnamen von demselben Apache-Server hosten und ihnen unterschiedliche Inhalte bereitstellen.
Erstellen Sie einen Ordner für Ihre virtuellen Hostkonfigurationen:
# mkdir /etc/httpd/conf/vhosts
Erstellen Sie eine Konfigurationsdatei für jeden virtuellen Host, wie /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com
:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
<Directory "/srv/YOUR-DOMAIN-NAME.com">
Require all granted
</Directory>
</VirtualHost>
Erstellen Sie das Serving-Verzeichnis für den virtuellen Host:
# mkdir /srv/YOUR-DOMAIN-NAME.com
Fügen Sie am Ende /etc/httpd/conf/httpd.conf
jede dieser Konfigurationsdateien für den virtuellen Host hinzu:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Starten Sie Apache neu:
# systemctl restart httpd
Anfragen, die Apache erhält, YOUR-DOMAIN-NAME.com
werden aus bearbeitet /srv/YOUR-DOMAIN-NAME.com
. Beachten Sie, dass Anfragen an Apache, die nicht mit einer bestimmten ServerName
oder ServerAlias
nur der IP-Adresse oder einem anderen Domainnamen übereinstimmen , der in Ihre IP aufgelöst wird, weiterhin vom ersten enthaltenen virtuellen Host zugestellt werden. Das heißt, Sie sollten immer noch alles im Allgemeinen DocumentRoot
, was standardmäßig so /srv/http
ist, als irgendwie zugänglich betrachten.