Virtuelle Hosts funktionieren nicht. Bitte sehen Sie nach, was ich falsch mache (CentOS 6.0).

Virtuelle Hosts funktionieren nicht. Bitte sehen Sie nach, was ich falsch mache (CentOS 6.0).

vhost.conf , befindet sich in etc/httpd/vhost.d/

NameVirtualHost *:80

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName localhost
         ServerAlias localhost.example.com
         DocumentRoot /var/www/html/example.com/public_html/
         ErrorLog /var/www/html/example.com/logs/error.log
         CustomLog /var/www/html/example.com/logs/access.log combined
    </VirtualHost>

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName example.org
         ServerAlias www.example.org
         DocumentRoot /var/www/html/example.org/public_html/
         ErrorLog /var/www/html/example.org/logs/error.log
         CustomLog /var/www/html/example.org/logs/access.log combined
    </VirtualHost>

httpd.conf, Einstellungen auf Standard, am Ende hinzugefügt:

Include /etc/httpd/vhosts.d/*.conf

Stammverzeichnisse:

DocumentRoot "/var/www/html"

Entsprechende Verzeichnisse für die virtuellen Hosts im obigen Ordner erstellt. Die Berechtigungen sehen alle korrekt aus. Index.php-Datei in jedem public_htmlVerzeichnis. Wenn ich jetzt jedoch localhost eingebe, gelange ich nur zur Standardseite von Apache 2. Sollte ich die Zeile „ Include /etc/httpd/vhosts.d/*.confWebserver funktioniert wie erforderlich aus dem Standardverzeichnis und stellt die Indexdatei bereit, die ich dort abgelegt habe“ entfernen?

Antwort1

Basierend auf dem, was Sie eingegeben haben, klingt es nicht so, als ob Sie Syntaxfehler hätten. Führen Sie also Folgendes in der Datei /etc/hosts aus (wenn Sie es direkt vom Server aus tun):

127.0.0.1   example.org
127.0.0.1   example.com

Oder in der Hostdatei Ihres PCs:

YOURSERVERIP  example.org
YOURSERVERIP  example.com

Und navigieren Sie zu dieser Domäne statt zu localhost.

Der Grund, warum Sie nur die Apache-Webseite sehen, liegt darin, dass Apache wissen muss, wohin es gehen soll. Da Sie noch kein DNS eingerichtet haben, wird mit dem betreffenden Hostnamen nichts an Apache gesendet, sodass standardmäßig das Dokumentstammverzeichnis verwendet wird.

Antwort2

Da die Include-Zeile nach Ihren VirtualHosts steht, würde ich vermuten, dass einer dieser eingeschlossenen virtuellen Hosts Ihre neuen überschreibt. Was sagt „httpd -S“? (Es muss nicht „httpd“ sein, sondern „apache2“ oder etwas anderes). Das Flag -S zeigt Ihnen alle virtuellen Hosts, die Sie konfiguriert haben, und hilft beim Debuggen.

Sie könnten versuchen, die Include-Zeile zu entfernen und zu sehen, ob Ihre neuen Blöcke dadurch funktionieren. Sie können auch Ihr Fehlerprotokoll überprüfen, um zu sehen, ob es Warnungen zu Ihrer Konfigurationsdatei gibt.

verwandte Informationen