Ich habe einen Ubuntu 14.10-Computer, der zum Testen lokaler Websites verwendet wird und nicht für das Internet bereitgestellt wird. Darauf habe ich sieben Websites eingerichtet. Wenn ich jedoch auf zwei der sieben zugreife, erhalte ich Apache2 Ubuntu Default Page
anstelle meiner eigenen Indexseite die.
Soweit ich das beurteilen kann, habe ich alle sieben nach genau demselben Verfahren eingerichtet, sodass ich nicht weiß, was diesen beiden fehlt. Außerdem habe ich in meinem Apache-Protokollverzeichnis zwei Protokolldateien error
und access
für jede der beiden fehlerhaften Sites, aber alle sind leer. Wenn ich den apache2
Dienst neu starte, treten keine Fehler auf. Ich habe meine Schritte mehrmals zurückverfolgt und kann keinen Unterschied zwischen den Arbeitsstätten und den nicht arbeitenden Stellen feststellen.
Welche Möglichkeiten habe ich, um dieses Problem zu diagnostizieren? Kann ich irgendwie ausführlichere Fehlerprotokolle erzwingen? Gibt es irgendwo ein anderes Protokoll, auf das ich verweisen kann?
Hier ist ein Beispiel für eine .conf
Datei für eine der fehlerhaften Sites:
<VirtualHost *:80>
ServerName www.local_example.com
ServerAlias local_example.com
ServerAdmin [email protected]
DocumentRoot /var/www/Websites/example.com
<Directory /var/www/Websites/example.com/>
Options Indexes FollowSymLinks MultiViews
# pcw AllowOverride None
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</Directory>
ErrorLog /home/example/Apache_Logs/local_example.com_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
ServerSignature On
</VirtualHost>
/etc/apache2/sites-available
? Wenn ja, haben Sie sie aktiviertsudo a2ensite <your_site_name>
? Enthält die Standard-Apache-Fehlerprotokolldatei etwas? Und haben Sie einen ServerAlias oder Servernamen in Ihren virtuellen Hostdateien konfiguriert? Wenn Sie die Standardwebsite deaktivierensudo a2dissite 000-default
(mit der Sie sie wieder aktivieren könnensudo a2ensite 000-default
), funktioniert sie dann? Könnte es auch sein, dass Sie gerade vergessen haben, Apache neu zu starten?sites-available
. Das Standardfehlerprotokoll enthält nichts. Ich habeServerAlias
in der Hosts-Datei definiert. Ich habe die000-default
Seite deaktiviert, aber das hat nichts geändert. Ich habe Apache viele Male neu gestartet und neu geladen..conf
meiner Frage eine Datei hinzugefügt .Antworten:
Versuche Folgendes
Aktivieren Sie ausführliche Protokolle
Suchen Sie die LogLevel-Variable und aktualisieren Sie sie von der Standardwarnung auf info oder debug. Das Debuggen erzeugt die größte Ausgabe.
Starten Sie Apache neu
Apache enthält ein nettes kleines Tool zur Syntaxprüfung
Überprüfen der Definitionen des virtuellen Hosts
quelle
Für mich hat einer der Vorschläge von @Dan es gelöst.
Anscheinend hat die Standard-Site-Konfiguration meine vhost-Konfiguration überschrieben.
quelle
Nach der Installation hat index.html eine höhere Priorität. Deshalb wird immer noch die Ubuntu-Standardseite angezeigt. Überprüfen Sie diesen Ordner var / www / html / rename oder entfernen Sie diese Seite einfach
quelle
Es stellte sich heraus, dass das Problem Berechtigungen waren.
Wenn Sie die Website in einem Verzeichnis außerhalb von
/var/www
und über symlink verbunden speichern , müssen das Quellverzeichnis und das übergeordnete Verzeichnis über die Berechtigungen verfügen755
.Aus einem unbekannten Grund hatten die beiden Websites, die sich schlecht benahmen, unterschiedliche Berechtigungen, und die Ausführung
chmod -R 755
im Websiteverzeichnis und im übergeordneten Verzeichnis löste das Problem.quelle
chmod -R 755
in einem Verzeichnis ausgeführt werden, da alle darin enthaltenen Dateien als "ausführbar" markiert werden ...find
. So etwas wie das :find top-dir-name -type d -exec chmod 755 {} \;
.