Warum erhalte ich die Apache2 Ubuntu-Standardseite anstelle meiner eigenen index.html-Seite?

8

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 Pageanstelle 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 errorund accessfür jede der beiden fehlerhaften Sites, aber alle sind leer. Wenn ich den apache2Dienst 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 .confDatei 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>
Fragesteller
quelle
2
Wie haben Sie die virtuellen Hosts erstellt? Haben Sie sie durch Hinzufügen von Dateien erstellt /etc/apache2/sites-available? Wenn ja, haben Sie sie aktiviert sudo 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 deaktivieren sudo a2dissite 000-default(mit der Sie sie wieder aktivieren können sudo a2ensite 000-default), funktioniert sie dann? Könnte es auch sein, dass Sie gerade vergessen haben, Apache neu zu starten?
Dan
@ Dan, danke für die Antwort. Ich habe die Websites erstellt, indem ich sie hinzugefügt habe sites-available. Das Standardfehlerprotokoll enthält nichts. Ich habe ServerAliasin der Hosts-Datei definiert. Ich habe die 000-defaultSeite deaktiviert, aber das hat nichts geändert. Ich habe Apache viele Male neu gestartet und neu geladen.
Fragender
Wenn Sie die Standardwebsite deaktiviert und Apache neu gestartet haben, wurde weiterhin die Standardseite index.html angezeigt, oder wurde eine von einem anderen virtuellen Host angezeigt? Können Sie den Inhalt einer der sich schlecht benehmenden vhost-Dateien veröffentlichen? Dies könnte es uns viel leichter machen, zu helfen.
Dan
@ Dan, danke für die Antwort. Als ich die von Ihnen vorgeschlagene Änderung vorgenommen habe, hat sich, wie bereits erwähnt, nichts geändert, was bedeutet, dass genau dieselbe Standardindexseite angezeigt wird. Ich habe .confmeiner Frage eine Datei hinzugefügt .
Frager

Antworten:

8

Versuche Folgendes

Aktivieren Sie ausführliche Protokolle

sudo nano /etc/apache2/apache2.conf

Suchen Sie die LogLevel-Variable und aktualisieren Sie sie von der Standardwarnung auf info oder debug. Das Debuggen erzeugt die größte Ausgabe.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Starten Sie Apache neu

sudo service apache2 restart

Apache enthält ein nettes kleines Tool zur Syntaxprüfung

apache2ctl -t

Überprüfen der Definitionen des virtuellen Hosts

apache2ctl -S
2707974
quelle
Vielen Dank für diesen Vorschlag. Ich habe die Protokollebene auf Debug eingestellt und erhalte immer noch absolut keine Einträge in den Fehlerprotokolldateien. Die Zugriffsprotokolle werden jetzt jedes Mal angezeigt, wenn ich die Websites geöffnet habe, aber sonst nichts.
Fragender
6

Für mich hat einer der Vorschläge von @Dan es gelöst.

sudo a2dissite 000-default.conf
service apache2 reload

Anscheinend hat die Standard-Site-Konfiguration meine vhost-Konfiguration überschrieben.

hochtrabend
quelle
Auf einem anderen Server verhielt es sich anders und index.php wurde anstelle von index.html gelesen. Sehr hinterhältige Situation
Margus Pala
2

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

Amin
quelle
1

Es stellte sich heraus, dass das Problem Berechtigungen waren.

Wenn Sie die Website in einem Verzeichnis außerhalb von /var/wwwund über symlink verbunden speichern , müssen das Quellverzeichnis und das übergeordnete Verzeichnis über die Berechtigungen verfügen 755.

Aus einem unbekannten Grund hatten die beiden Websites, die sich schlecht benahmen, unterschiedliche Berechtigungen, und die Ausführung chmod -R 755im Websiteverzeichnis und im übergeordneten Verzeichnis löste das Problem.

Fragesteller
quelle
Sie sollten nicht chmod -R 755in einem Verzeichnis ausgeführt werden, da alle darin enthaltenen Dateien als "ausführbar" markiert werden ...
Alexis Wilke
@AlexisWilke, was ist ein besserer Befehl zum Festlegen der richtigen Berechtigungen?
Fragesteller
Es ist nicht einfach, die Berechtigungen aller Verzeichnisse und nicht den Standard zu ändern ... Sie können verwenden find . So etwas wie das : find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke