Ich habe gerade CentOS, Apache und PHP installiert. Wenn ich meine Website http://example.com/myapp/ besuche, wird "verboten" angezeigt. Standardmäßig wird die Datei index.php nicht geladen.
Wenn ich http://example.com/myapp/index.php besuche, funktioniert es einwandfrei.
Irgendeine Idee, wie man dieses Problem beheben kann?
Apache muss so konfiguriert sein, dass index.php als Indexdatei erkannt wird.
Der einfachste Weg dies zu erreichen ..
Erstellen Sie eine .htaccess-Datei in Ihrem Webstammverzeichnis.
Zeile hinzufügen ...
DirectoryIndex index.php
Hier ist eine Ressource bezüglich der Angelegenheit ...
http://www.twsc.biz/twsc_hosting_htaccess.php
Bearbeiten: Ich gehe davon aus, dass Apache so konfiguriert ist, dass .htaccess-Dateien zugelassen werden. Ist dies nicht der Fall, müssen Sie die Einstellung in der Konfigurationsdatei von Apache (httpd.conf) ändern.
Das Hinzufügen von 'DirectoryIndex index.php' zu einer .htaccess-Datei kann funktionieren.
HINWEIS:
Im Allgemeinen sollten Sie niemals .htaccess-Dateien verwenden
Dies wird aus http://httpd.Apache.org/docs/1.3/howto/htaccess.html zitiert.
Obwohl sich dies auf eine ältere Version von Apache bezieht, glaube ich, dass das Prinzip immer noch gilt.
Wenn Sie Folgendes zu Ihrem httpd.conf hinzufügen (wenn Sie Zugriff darauf haben), wird dies als besseres Format angesehen, verursacht weniger Server-Overhead und hat genau die gleiche Wirkung:
<Directory /myapp>
DirectoryIndex index.php
</Directory>
Ich würde sagen, der Verzeichnisindex ist auf index.html oder eine andere Variante gesetzt:
DirectoryIndex index.html index.php
Dies gibt index.html Vorrang vor index.php (praktisch, wenn Sie eine Wartungsseite aufrufen müssen).
Dies könnte für jemanden hilfreich sein. Hier ist der Ausschnitt aus httpd.conf (Apache Version 2.2 Windows).
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
jetzt wird nach der Datei index.html gesucht, wenn sie nicht gefunden wird, wird nach index.php gesucht.
Ich hatte das gleiche Problem mit einer Website auf unserer direkt von Administratoren gehosteten Website. Ich fügte hinzu
DirectoryIndex index.php
als benutzerdefinierte httd-Erweiterung (die einer httpd
-Datei der Sites Code hinzufügt) und die Site dann standardmäßig den index.php
ausgeführt hat.
Erstellen Sie eine .htaccess-Datei mit den folgenden Anweisungen
DirectoryIndex index.php
Edit: Eigentlich gibt es kein 'php-Apache'-Paket oder etwas, das Sie mit beiden installieren sollten?
Ich hatte ein ähnliches Symptom. In meinem Fall hatte meine Idiotie jedoch unabsichtlich eine leere index.html-Datei im Web-Root-Ordner. Apache stellte dies anstelle von index.php bereit, als ich index.php nicht explizit angefordert hatte, da DirectoryIndex
in mods-available/dir.conf
wie folgt konfiguriert wurde:
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
Das heißt, 'index.html' erscheint vor 'index.php' in der Prioritätenliste. Das Entfernen der Datei index.html aus dem Webstamm hat das Problem natürlich gelöst. D'oh!
Nachdem ich all das gelesen und versucht hatte, es zu beheben, erhielt ich eine einfache Lösung in Ubuntu Forum ( https://help.ubuntu.com/community/ApacheMySQLPHP ). Das Problem liegt beim Modul libapache2-mod-php5. Deshalb lädt der Browser die index.php-Datei herunter, anstatt die Webseite anzuzeigen. Mach Folgendes. Wenn das Sudo-Modul a2enmod php5 nicht vorhanden ist, liegt das Problem bei libapache2-mod-php5. Entfernen Sie das Modul mit dem Befehl Sudo apt-get --purge. Entfernen Sie libapache2-mod-php5. Installieren Sie dann erneut Sudo apt-get
Für Informationen: In einigen Apache2-Versionen müssen Sie den Befehl DirectoryIndex in mods_enabled/dir.conf Hinzufügen (er befindet sich nicht in Apache2.conf).
Schritt für Schritt und vollständige Anleitung für Ubuntu 16.04.4 LTS und Apache/2.4.18
"Sudo -s
"
"cd /etc/Apache2/mods-enabled
"
"vi dir.conf
" und verschieben Sie die index.php-Datei wie folgt in den Ordner "DirectoryIndex" und speichern Sie die Datei.
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
"service Apache2 restart
"
Wenn dir dir.conf nicht angezeigt wird, musst du es laden (google for how to)
Erledigt.
Dieses funktioniert wie ein Zauber!
Zuerst
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
dann danach von
<Files ".ht*">
Require all denied
</Files>
bis
<Files ".ht*">
Require all granted
</Files>
Gleiche Ausgabe für mich. Meine Lösung war, dass mod_dir nicht aktiviert war und Apache2 beim Lesen der Direktive in meiner VirtualHost-Datei keinen Fehler ausgegeben hat:
DirectoryIndex index.html
Verwenden der Befehle:
Sudo a2ensite dir
Sudo sudo service Apache2 restart
Problem behoben.
Dieser Post ist zwar alt, aber ich poste ihn nur, wenn er einer anderen Person hilft. Ich würde nicht raten, eine .htaccess-Datei in Ihrem Webstammverzeichnis zu erstellen und den Index zu ändern. Ich finde es besser, den Schritten zu folgen
Gehe in den conf-Ordner deines Apache-Ordners
C:\Apache24\conf
Öffnen Sie die Datei mit dem Namen
httpd.conf
Gehe zum Abschnitt
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Fügen Sie index.php hinzu, wie unten gezeigt
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Auf diese Weise werden index.html und index.php immer noch als Standardindex ausgewählt, jedoch wird index.html Vorrang eingeräumt, da index.html vor * index.php stand. Damit meine ich, dass Sie sowohl index.html als auch index.php im selben Verzeichnis haben. Die index.html wird als Standardindex verwendet, außer Sie schreiben ** index.php * vor index.hml
Ich hoffe es hilft jemandem ... Happy Coding