Virtuelle Apache2-Hosts, auf die über das lokale Netzwerk zugegriffen werden kann. Arbeiten mit virtuellen Hosts Apache2 erkennt den virtuellen Host nicht

In dieser Notiz werden wir darüber sprechen Einrichten virtueller Apache-Hosts unter Windows. Ich erkläre Ihnen, was virtuelle Hosts sind und wofür sie verwendet werden. Detaillierte Abbildungen sind enthalten.

Virtuelles Hosting. Grundlegendes Konzept.

Zunächst müssen Sie also verstehen, was virtuelles Hosting ist:

Virtueller Hosting ist eine Technologie, die es einem Webserver ermöglicht, mehrere Domänennamen auf einem Computer zu verwenden.

Diese. Möglicherweise befinden sich auf Ihrem Computer mehrere Websites, auf die unter unterschiedlichen Namen zugegriffen werden kann.

Virtuelle Hosts Es gibt 2 Typen:

  • virtuelle Hosts basierend auf dem Namen ( Namensbasiert);
  • virtuelle Hosts basierend auf der IP-Adresse des Computers ( IP-basiert).

Wir werden die erste Option verwenden – namensbasierte virtuelle Hosts.

Konfigurieren von virtuellen Apache-Hosts.

Um virtuelle Hosts zu konfigurieren, müssen wir der Apache-Konfigurationsdatei einige Textzeilen hinzufügen. Wo Sie diese Datei finden und eine Beschreibung ihrer Syntax finden Sie im Hinweis zum Einrichten von PHP als Apache-Modul.

Öffnen Sie diese Datei im Editor. Wir suchen und entfernen den Kommentar am Anfang der Zeile, wie unten gezeigt:

#Virtuelle Hosts
Fügen Sie conf/extra/httpd-vhosts.conf ein

Diese Zeile enthält die Einstellungen, die in der Datei beschrieben sind conf/extra/httpd-vhosts.conf.

Zu erstellende Syntax Namensbasierter virtueller Host:


DocumentRoot-Pfad zur Site
ServerName-Site-Name

Die vhosts-Datei enthält Beispiele. Wir brauchen sie nicht. Wir entfernen sie einfach und ersetzen den Test durch Folgendes:

#
# Virtuelle Hosts
#
# Hier können Sie mehr über die Feinabstimmung virtueller Hosts lesen
#
#

#
# Verwenden Sie namensbasiertes virtuelles Hosting.
#
NameVirtualHost *:80

# Hier schreiben wir den Pfad zu den Site-Dateien (DocumentRoot) und den Hostnamen (ServerName)

DocumentRoot von:/www/test
ServerName-Test

Erstellen Sie nun einen Ordner auf Laufwerk C: www und darin ein Ordner prüfen. Bitte beachten Sie, dass Windows Backslashes verwendet, während die Konfigurationsdatei Forward / verwendet.

Sie müssen Apache nun neu starten, damit die Einstellungen wirksam werden.

Der nächste Schritt besteht darin, Windows über die erstellten virtuellen Hosts zu benachrichtigen. Suchen Sie dazu die Datei C:/Windows/system32/drivers/etc/hosts. Öffnen Sie es mit einem normalen Notizblock und fügen Sie dort die folgende Zeile hinzu:

127.0.0.1 ist die IP-Adresse Ihres Computers. Mit dieser Zeile teilen wir Windows mit, dass sich die Site unter dieser IP-Adresse befindet prüfen.

Wenn Sie beispielsweise einen weiteren virtuellen Host erstellen, fügen Sie eine weitere Zeile hinzu:

127.0.0.1 Ihr virtueller Hostname

Jetzt müssen Sie überprüfen, ob die Einstellungen korrekt sind. Erstellen Sie dazu im Ordner von:/www/test Datei index.php und schreibe dort folgenden Code:

Schreiben Sie die URL in den Browser http://test. Wenn Sie alles richtig gemacht haben, sehen Sie etwa Folgendes:

Wenn Sie das noch nicht gesehen haben, verzweifeln Sie nicht – schreiben Sie es in die Kommentare. Gemeinsam können wir jedes Problem lösen 😉

Im vorherigen Artikel haben wir herausgefunden, wie man Apache installiert. Schauen wir uns nun an, warum ein virtueller Host auf Apache erstellt wird und wie man virtuelle Apache Windows-Hosts konfiguriert.

Lassen Sie uns also herausfinden, warum wir einen virtuellen Host brauchen. Nach der Installation von Apache können wir darauf zugreifen, indem wir „localhost“ in den Browser eingeben. Ich würde mir wünschen, dass wir mehrere Websites auf dem Server behalten und über eine separate URL darauf zugreifen könnten. Dazu müssen virtuelle Hosts auf Apache konfiguriert werden. Erstellen wir zunächst beispielsweise den Ordner „www.Zametki“ auf Laufwerk C. Im Ordner C:\Zametki erstellen wir drei Ordner: conf, htdocs, logs, Errors. Im conf-Ordner erstellen wir eine Datei zametki.conf. Öffnen wir die Datei C:\www.Zametki\conf\zametki.conf und beschreiben unseren virtuellen Host:

#Virtual host zametki <VirtualHost *:80> #Servereinstellungen ServerName www.zametki ServerAlias ​​​​zametki ServerAdmin webmaster@zametki #Serverprotokolle ErrorLog "c:/www.Zametki/logs/error.log" CustomLog "c:/www.Zametki /logs /access.log“ allgemeiner #Stammordner DocumentRoot „c:/www.Zametki/htdocs“ <Directory „c:/www.Zametki/htdocs“> Optionen Indizes FollowSymLinks AllowOverride All Reihenfolge verweigern, zulassen Von allen zulassen </Directory> </ VirtualHost>

Speichern Sie die Datei zametki.conf. Jetzt müssen wir es nur noch mit der Hauptserverkonfigurationsdatei httpd.conf verbinden. Es befindet sich unter C:\Programme\Apache Software Foundation\Apache2.2\conf. Öffnen Sie es und fügen Sie zunächst ganz unten in der Datei Folgendes hinzu:

NameVirtualHost *:80 <VirtualHost *:80> ServerName localhost ServerAdmin admin@localhost </VirtualHost>

Wir haben einen standardmäßigen virtuellen Host erstellt. Verbinden wir nun den von uns erstellten Host. Wir schreiben in die gleiche Datei ganz unten im Dokument:

# www.zametki Include „c:/www.Zametki/conf/zametki.conf“

Jetzt müssen wir nur noch einen Eintrag über unseren Host in der Hosts-Datei unter C:\WINDOWS\system32\drivers\etc erstellen. Dies wird ein Ersatz für den DNS-Server sein.

//Standardeintrag Windows 127.0.0.1 localhost //unser Eintrag 127.0.0.1 zametki www.zametki

Erstellen virtueller Apache-Ordner

Die Alias-Direktive ist für die Erstellung virtueller Ordner verantwortlich. Erstellen wir einen Ordner zum Speichern von Dateien mit Apache-Fehlern. Fügen wir der Datei zametki.conf in der Direktive <VirtualHost> ... </VirtualHost> unseres virtuellen Hosts Folgendes hinzu:

# Ordner mit Fehlermeldungen // Weisen Sie dem Ordner einen Alias ​​(Alias) zu. Alias ​​/err/ "c:/www.Zametki/Errors/" <Directory "c:/www.Zametki/Errors/"> Optionen Indizes FollowSymLinks AllowOverride Alle Bestellungen verweigern, zulassen, von allen zulassen </Directory>

Erstellen Sie Ihre eigenen Apache-Fehlerseiten

Die ErrorDocument-Direktive ist für die Meldung von Fehlern verantwortlich. Erstellen wir eine Datei im Ordner c:/www.Zametki/Errors/, zum Beispiel 404.html. Dies wird unsere HTML-Seite sein, die angezeigt wird, wenn ein 404-Serverfehler auftritt. Fügen Sie der Datei zametki.conf die folgenden Zeilen hinzu:

# Fehlermeldungen ErrorDocument 404 /err/404.html

An mehreren Standorten bietet Apache die Möglichkeit, virtuelle Hosts für diese Zwecke zu konfigurieren. Es gibt zwei Arten von virtuellen Hosts: namensbasierte virtuelle Hosts, also an einen Domainnamen gebunden, und IP-basierte virtuelle Hosts, also an eine IP-Adresse gebunden. Der erste Typ virtueller Hosts verwendet unterschiedliche Namen für eine IP-Adresse, während der zweite Typ eine separate IP-Adresse für jede Site verwendet. Das Erstellen virtueller Hosts in Apache ist erforderlich, wenn Ihr Server über mehrere Sites verfügt und deren Konfiguration erforderlich ist, um alle Sites korrekt anzuzeigen.

Am gebräuchlichsten ist die Verwendung namensbasierter virtueller Hosts, die an eine einzelne IP-Adresse gebunden sind. Somit können Sie viele Sites auf einer IP speichern.

Der einfachste Weg, virtuelle Apache-Hosts hinzuzufügen und dann zu konfigurieren, besteht darin, die Webserver-Konfigurationsdatei zu bearbeiten, die je nach Betriebssystem unterschiedliche Namen und Speicherorte hat:

IN Roter Hut/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/Ubuntu:

/etc/apache2/apache2.conf

Die zweite Möglichkeit zur Konfiguration besteht darin, Ihre eigene zu verwenden .conf Dateien, die sich entlang des Pfads befinden sollten:

IN Roter Hut/CentOS/Fedora:

/etc/httpd/conf.d/filename.conf,

Debian/Ubuntu:

/etc/apache2/conf.d/filename.conf.

Normalerweise in der Konfigurationsdatei httpd.conf oder apache2.conf Der Abschnitt zur Verwaltung virtueller Hosts befindet sich ganz am Ende. Um einen virtuellen Host hinzuzufügen, müssen Sie diese Datei öffnen und das Kommentarzeichen entfernen (remove # ) Richtlinie NameVirtualHost *:80(Streit * steht für „alle Hostnamen“). Wenn Sie die Methode zum Platzieren der Konfiguration verwenden conf.d, dann muss die angegebene Direktive nicht auskommentiert werden, sondern sollte in der erstellten Datei selbst definiert werden.

Nach NameVirtualHost folgt Block VirtualHost *:80. Solche Blöcke sind die Konfiguration Ihrer virtuellen Hosts. Das Ganze sieht ungefähr so ​​aus:

NameVirtualHost *:80 AllowOverride All Options All ServerAdmin [email protected] DocumentRoot /var/www/site1.ru ServerName site1.ru ServerAlias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [email protected] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Hier werden alle Einstellungen des virtuellen Hosts vorgenommen und bestimmte Optionen aktiviert oder deaktiviert.

Schauen wir uns genauer an, wofür jede der oben genannten Richtlinien verantwortlich ist.

1. Richtlinie ServerAdmin gibt die E-Mail-Adresse des Serveradministrators an, an die alle Benachrichtigungen des Hosts bezüglich seiner Verwaltung gesendet werden.

2. Richtlinie Dokument Root gibt das Stammverzeichnis mit Site-Dateien an, die vom Webserver an den Client (Browser) ausgegeben werden.

3. Richtlinie Servername Definiert den Namen des Hosts, auf dessen Anfrage in DocumentRoot befindliche Dateien zurückgegeben werden.

4. Richtlinie ServerAlias dient dazu, alternative Hostnamen (Aliase, Aliase) anzugeben, auf die es antwortet.

5. Richtlinie Fehlerprotokoll gibt Fehlerprotokolldateien für jeden Host an und CustomLog– Protokolldateien für alles andere außer Fehlern.

Wie Sie bemerkt haben, gibt es vor den Blöcken mit virtuellen Hosts einen weiteren Eintrag:

AllowOverride All

In Tags enthält eine Liste von Anweisungen (Parametern), die auf ein bestimmtes Verzeichnis angewendet werden, das im öffnenden Tag angegeben ist. Im obigen Beispiel ist dies der Fall var/www/. Die angegebene Direktive AllowOverride Gibt an, ob Dateien verwendet werden sollen .htaccess und wenn ja, welche globalen Webserver-Anweisungen können in solchen Dateien überschrieben werden. Im obigen Beispiel der Wert AllowOverride eingebaut Alle, was die Verarbeitung von .htaccess-Dateien und allen darin angegebenen Anweisungen ermöglicht. Es gibt noch andere mögliche Bedeutungen:

AuthConfig– ermöglicht die Verwendung von Autorisierungsanweisungen (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require usw.).

Dateiinformation– ermöglicht die Verwendung von Anweisungen, die Dokumenttypen steuern (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority usw.).

Indizes- ermöglicht die Verwendung von Direktiven zur Steuerung der Verzeichnisindizierung (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName usw.).

Grenze– ermöglicht die Verwendung von Zugriffskontrollanweisungen (Zulassen, Verweigern und Anordnen).

Optionen— ermöglicht die Verwendung von Direktiven, mit denen Sie bestimmte Funktionen des Verzeichnisses steuern können (Optionen und XBitHack).

Dies ist eine von vielen möglichen Anweisungen, die Sie auf der Website der Entwickler nachlesen können.

Nachdem Sie die Änderungen an der Datei gespeichert haben, müssen Sie die neuen Einstellungen auf Fehler überprüfen. Zur Durchführung der Prüfung können Sie folgende Befehle verwenden:

Apachectl configtest apachectl -S apachectl -d

Wenn die Meldung „ Syntax OK“, bedeutet dies, dass keine Fehler vorliegen und Sie den Webserver neu starten können, damit die Änderungen wirksam werden. Sie können dies mit den folgenden Befehlen tun:

Red-Hat/CentOS/Fedora:

Dienst httpd neu starten

/etc/init.d/ httpd neu starten

Debian/Ubuntu:

Dienst Apache2 neu starten

/etc/init.d/apache2 neu starten

Als Nächstes kann das folgende Problem auftreten. Wenn eine Anfrage eingeht, durchsucht Apache die gesamte Liste der virtuellen Hosts nach einer Übereinstimmung. Wenn keine Übereinstimmung gefunden wird, gibt es den ersten Host der Reihe nach zurück. Um dieses Problem zu beseitigen, haben sich Experten einen sogenannten Leerabschnitt ausgedacht, der vor dem ersten Abschnitt eingefügt werden sollte VirtualHost echte Seite. Es sieht ungefähr so ​​aus:

ServerName default DocumentRoot /var/www/default

Auf diese Weise werden alle ungültigen Anfragen über den Pfad gesendet var/www/default, wo Sie eine Indexseite erstellen können, die eine ungültige Anfrage meldet.

Außerdem hat Apache standardmäßig keinen Zugriff auf Ihre Home-Verzeichnisse, sondern nur auf das Verzeichnis /var/www. Wenn Sie SElinux auf Ihrem Server verwenden, verwenden Sie die folgenden Befehle, um Apache Zugriff auf Ihre Home-Verzeichnisse zu gewähren:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Damit Apache beispielsweise Zugriff auf ein bestimmtes Verzeichnis hat, /home/meindir Der Befehl sollte verwendet werden:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Wenn deaktiviert SELinux Um Apache Zugriff auf ein bestimmtes Site-Home-Verzeichnis zu gewähren, müssen Sie dessen Konfigurationsdatei manuell bearbeiten ( /etc/httpd/conf/httpd.conf V CentOS/Fedora oder /etc/apache2/apache2.conf V Debian/Ubuntu).

Suchen Sie die Zeile, während die Webserver-Konfigurationsdatei zur Bearbeitung geöffnet ist Dokument Root(Wenn Sie den Nano-Editor verwenden, können Sie ihn über die Tastenkombination finden Strg+W). Ersetzen Sie den Wert in Anführungszeichen /var/www/html auf den absoluten Pfad zum Home-Verzeichnis der Site (z. B. /home/username/site.com). Speichern Sie Ihre Änderungen und verlassen Sie das Editor-Menü ( Strg+O Und Strg+X). Starten Sie Apache neu.

Wenn auf Ihrem VPS ein Betriebssystem installiert ist Debian/Ubuntu, und bearbeiten Sie dann die Zeile Dokument Root in der Datei erforderlich /etc/apache2/sites-available/default. Öffnen Sie es zum Bearbeiten und ersetzen Sie den Standardwert /var/www auf den absoluten Pfad zum Home-Verzeichnis der Site. Starten Sie den Webserver neu.

Damit ist die Grundkonfiguration virtueller Hosts abgeschlossen.

An mehreren Standorten bietet Apache die Möglichkeit, virtuelle Hosts für diese Zwecke zu konfigurieren. Es gibt zwei Arten von virtuellen Hosts: namensbasierte virtuelle Hosts, also an einen Domainnamen gebunden, und IP-basierte virtuelle Hosts, also an eine IP-Adresse gebunden. Der erste Typ virtueller Hosts verwendet unterschiedliche Namen für eine IP-Adresse, während der zweite Typ eine separate IP-Adresse für jede Site verwendet. Das Erstellen virtueller Hosts in Apache ist erforderlich, wenn Ihr Server über mehrere Sites verfügt und deren Konfiguration erforderlich ist, um alle Sites korrekt anzuzeigen.

Am gebräuchlichsten ist die Verwendung namensbasierter virtueller Hosts, die an eine einzelne IP-Adresse gebunden sind. Somit können Sie viele Sites auf einer IP speichern.

Der einfachste Weg, virtuelle Apache-Hosts hinzuzufügen und dann zu konfigurieren, besteht darin, die Webserver-Konfigurationsdatei zu bearbeiten, die je nach Betriebssystem unterschiedliche Namen und Speicherorte hat:

IN Roter Hut/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/Ubuntu:

/etc/apache2/apache2.conf

Die zweite Möglichkeit zur Konfiguration besteht darin, Ihre eigene zu verwenden .conf Dateien, die sich entlang des Pfads befinden sollten:

IN Roter Hut/CentOS/Fedora:

/etc/httpd/conf.d/filename.conf,

Debian/Ubuntu:

/etc/apache2/conf.d/filename.conf.

Normalerweise in der Konfigurationsdatei httpd.conf oder apache2.conf Der Abschnitt zur Verwaltung virtueller Hosts befindet sich ganz am Ende. Um einen virtuellen Host hinzuzufügen, müssen Sie diese Datei öffnen und das Kommentarzeichen entfernen (remove # ) Richtlinie NameVirtualHost *:80(Streit * steht für „alle Hostnamen“). Wenn Sie die Methode zum Platzieren der Konfiguration verwenden conf.d, dann muss die angegebene Direktive nicht auskommentiert werden, sondern sollte in der erstellten Datei selbst definiert werden.

Nach NameVirtualHost folgt Block VirtualHost *:80. Solche Blöcke sind die Konfiguration Ihrer virtuellen Hosts. Das Ganze sieht ungefähr so ​​aus:

NameVirtualHost *:80 AllowOverride All Options All ServerAdmin [email protected] DocumentRoot /var/www/site1.ru ServerName site1.ru ServerAlias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [email protected] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Hier werden alle Einstellungen des virtuellen Hosts vorgenommen und bestimmte Optionen aktiviert oder deaktiviert.

Schauen wir uns genauer an, wofür jede der oben genannten Richtlinien verantwortlich ist.

1. Richtlinie ServerAdmin gibt die E-Mail-Adresse des Serveradministrators an, an die alle Benachrichtigungen des Hosts bezüglich seiner Verwaltung gesendet werden.

2. Richtlinie Dokument Root gibt das Stammverzeichnis mit Site-Dateien an, die vom Webserver an den Client (Browser) ausgegeben werden.

3. Richtlinie Servername Definiert den Namen des Hosts, auf dessen Anfrage in DocumentRoot befindliche Dateien zurückgegeben werden.

4. Richtlinie ServerAlias dient dazu, alternative Hostnamen (Aliase, Aliase) anzugeben, auf die es antwortet.

5. Richtlinie Fehlerprotokoll gibt Fehlerprotokolldateien für jeden Host an und CustomLog– Protokolldateien für alles andere außer Fehlern.

Wie Sie bemerkt haben, gibt es vor den Blöcken mit virtuellen Hosts einen weiteren Eintrag:

AllowOverride All

In Tags enthält eine Liste von Anweisungen (Parametern), die auf ein bestimmtes Verzeichnis angewendet werden, das im öffnenden Tag angegeben ist. Im obigen Beispiel ist dies der Fall var/www/. Die angegebene Direktive AllowOverride Gibt an, ob Dateien verwendet werden sollen .htaccess und wenn ja, welche globalen Webserver-Anweisungen können in solchen Dateien überschrieben werden. Im obigen Beispiel der Wert AllowOverride eingebaut Alle, was die Verarbeitung von .htaccess-Dateien und allen darin angegebenen Anweisungen ermöglicht. Es gibt noch andere mögliche Bedeutungen:

AuthConfig– ermöglicht die Verwendung von Autorisierungsanweisungen (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require usw.).

Dateiinformation– ermöglicht die Verwendung von Anweisungen, die Dokumenttypen steuern (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority usw.).

Indizes- ermöglicht die Verwendung von Direktiven zur Steuerung der Verzeichnisindizierung (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName usw.).

Grenze– ermöglicht die Verwendung von Zugriffskontrollanweisungen (Zulassen, Verweigern und Anordnen).

Optionen— ermöglicht die Verwendung von Direktiven, mit denen Sie bestimmte Funktionen des Verzeichnisses steuern können (Optionen und XBitHack).

Dies ist eine von vielen möglichen Anweisungen, die Sie auf der Website der Entwickler nachlesen können.

Nachdem Sie die Änderungen an der Datei gespeichert haben, müssen Sie die neuen Einstellungen auf Fehler überprüfen. Zur Durchführung der Prüfung können Sie folgende Befehle verwenden:

Apachectl configtest apachectl -S apachectl -d

Wenn die Meldung „ Syntax OK“, bedeutet dies, dass keine Fehler vorliegen und Sie den Webserver neu starten können, damit die Änderungen wirksam werden. Sie können dies mit den folgenden Befehlen tun:

Red-Hat/CentOS/Fedora:

Dienst httpd neu starten

/etc/init.d/ httpd neu starten

Debian/Ubuntu:

Dienst Apache2 neu starten

/etc/init.d/apache2 neu starten

Als Nächstes kann das folgende Problem auftreten. Wenn eine Anfrage eingeht, durchsucht Apache die gesamte Liste der virtuellen Hosts nach einer Übereinstimmung. Wenn keine Übereinstimmung gefunden wird, gibt es den ersten Host der Reihe nach zurück. Um dieses Problem zu beseitigen, haben sich Experten einen sogenannten Leerabschnitt ausgedacht, der vor dem ersten Abschnitt eingefügt werden sollte VirtualHost echte Seite. Es sieht ungefähr so ​​aus:

ServerName default DocumentRoot /var/www/default

Auf diese Weise werden alle ungültigen Anfragen über den Pfad gesendet var/www/default, wo Sie eine Indexseite erstellen können, die eine ungültige Anfrage meldet.

Außerdem hat Apache standardmäßig keinen Zugriff auf Ihre Home-Verzeichnisse, sondern nur auf das Verzeichnis /var/www. Wenn Sie SElinux auf Ihrem Server verwenden, verwenden Sie die folgenden Befehle, um Apache Zugriff auf Ihre Home-Verzeichnisse zu gewähren:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Damit Apache beispielsweise Zugriff auf ein bestimmtes Verzeichnis hat, /home/meindir Der Befehl sollte verwendet werden:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Wenn deaktiviert SELinux Um Apache Zugriff auf ein bestimmtes Site-Home-Verzeichnis zu gewähren, müssen Sie dessen Konfigurationsdatei manuell bearbeiten ( /etc/httpd/conf/httpd.conf V CentOS/Fedora oder /etc/apache2/apache2.conf V Debian/Ubuntu).

Suchen Sie die Zeile, während die Webserver-Konfigurationsdatei zur Bearbeitung geöffnet ist Dokument Root(Wenn Sie den Nano-Editor verwenden, können Sie ihn über die Tastenkombination finden Strg+W). Ersetzen Sie den Wert in Anführungszeichen /var/www/html auf den absoluten Pfad zum Home-Verzeichnis der Site (z. B. /home/username/site.com). Speichern Sie Ihre Änderungen und verlassen Sie das Editor-Menü ( Strg+O Und Strg+X). Starten Sie Apache neu.

Wenn auf Ihrem VPS ein Betriebssystem installiert ist Debian/Ubuntu, und bearbeiten Sie dann die Zeile Dokument Root in der Datei erforderlich /etc/apache2/sites-available/default. Öffnen Sie es zum Bearbeiten und ersetzen Sie den Standardwert /var/www auf den absoluten Pfad zum Home-Verzeichnis der Site. Starten Sie den Webserver neu.

Damit ist die Grundkonfiguration virtueller Hosts abgeschlossen.

Bei der Entwicklung kommt man nicht mit nur einem Host aus. Sie können auf dem einen entwickeln, auf dem anderen testen und auf dem dritten ein weiteres Projekt.

Außerdem werden in Apache2 Site-Dateien standardmäßig in /var/www gespeichert, bei mir befinden sie sich jedoch in meinem Home-Ordner. /home/goodigy/sites.

Apache2 kann Hosts anhand von IP-Adressen, Domänennamen und Ports ermitteln.

Wir werden die zweite Option verwenden, nämlich die Identifizierung von Hosts anhand von Domänennamen.

In Apache2, installiert auf Ubuntu 16.04 und Ubuntu 14.04, ist dafür fast alles bereit.

Im Ordner /etc/apache2/Websites verfügbar Alle Konfigurationsdateien des virtuellen Hosts werden gespeichert.
Dann schalten wir es einfach nach Bedarf ein und aus.
Es gibt dort bereits eine Datei, auf deren Grundlage wir unsere eigene erstellen werden.

Lassen Sie uns unter dem Namen kopieren Beispiel(Unser Host heißt example und ist im Browser über den Link http://example erreichbar.)

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.conf

In früheren Versionen von Apache2 (vor Version 2.4) wurden die Dateierweiterungen .conf nicht verwendet. In neuen Versionen (ab Version 2.4) führt dies zu einem Fehler.

Jetzt müssen Sie die neu erstellte Datei bearbeiten

Sudo nano /etc/apache2/sites-available/example.conf

Die Datei sieht so aus:

ServerName-Beispiel DocumentRoot /home/goodigy/sites/example AllowOverride All Erfordert, dass alle gewährt werden ErrorLog /home/goodigy/sites/example/error.log CustomLog /home/goodigy/sites/example/access.log kombiniert

Erklärung der Einstellungen:

  • ServerName-Beispiel- Angabe des Domainnamens, anhand dessen der Host bestimmt wird.
  • DocumentRoot /home/goodigy/sites/example– bindet den Ordner an den Host.

  • Optionen Indizes FollowSymlinks
    AllowOverride All
    Fordern Sie alles gewährt
    - das sind die Ordnereinstellungen,
  • Optionen Indizes FollowSymlinks- Wenn keine Indexdatei (index.html, index.php) vorhanden ist, wird eine Liste der Dateien angezeigt, praktisch auf dem lokalen Server.
  • AllowOverride All- Ermöglicht das Überschreiben von Einstellungen in .htaccess.
  • Fordern Sie alles gewährt- Der Zutritt ist für jedermann gestattet.
  • Fehlerprotokoll- gibt den Speicherort der Datei mit dem Fehlerprotokoll an, ich speichere sie im Ordner mit der Site.
  • CustomLog- gibt den Speicherort der Datei mit dem Zugriffsprotokoll an, ich speichere sie im Ordner mit der Site.

Speichern.
Erstellen Sie die in der Konfigurationsdatei angegebenen Ordner

Mkdir /home/goodigy/sites mkdir /home/goodigy/sites/example

Wir schalten die Seite ein

Sudo a2ensite example.conf

Und deaktivieren Sie die Standardeinstellung

Sudo a2dissite 000-default.conf

Starten Sie Apache2 neu

Sudo nano /etc/hosts

Er sieht ungefähr so ​​aus

127.0.0.1 localhost 127.0.1.1 googidy-comp # Die folgenden Zeilen sind für IPv6-fähige Hosts wünschenswert::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Dort müssen wir einen Hinweis auf unsere Beispieldomain hinzufügen

127.0.0.1 localhost 127.0.1.1 igy-nout 127.0.0.1 Beispiel # Die folgenden Zeilen sind für IPv6-fähige Hosts wünschenswert::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02:: 1 IP6-Allnodes ff02::2 IP6-Allrouter

Speichern.
Das war's, unser neuer Host ist jetzt unter http://example verfügbar. Der Browser sollte einen Ordner mit Dateien anzeigen, da dort keine Indexdatei vorhanden ist.

gastroguru 2017