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, emacsund 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 addrSie 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 httpwird 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" commonLegt 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.confund innerhalb <Directory "/srv/http">von Optionslöschen Indexes. Nach dem Neustart gibt Apache einen "Zugriff verboten!" Fehlermeldung, es sei denn, eine Datei wie /srv/http/index.htmlexistiert.
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 httpmuss jedoch ausführbaren Bitzugriff auf das Benutzerverzeichnis und sein public_htmlVerzeichnis haben:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Darüber hinaus muss der Benutzer httpLesezugriff 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_htmlunabhä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.confjede 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.comwerden aus bearbeitet /srv/YOUR-DOMAIN-NAME.com. Beachten Sie, dass Anfragen an Apache, die nicht mit einer bestimmten ServerNameoder ServerAliasnur 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/httpist, als irgendwie zugänglich betrachten.