Je viens d'installer CentOS, Apache et PHP. Lorsque je visite mon site http://example.com/myapp/ , le message "interdit". Par défaut, cela ne charge pas le fichier index.php.
Lorsque je visite http://example.com/myapp/index.php , cela fonctionne bien.
Une idée de comment résoudre ce problème?
Apache doit être configuré pour reconnaître index.php en tant que fichier d'index.
Le moyen le plus simple d'y parvenir ..
Créez un fichier .htaccess dans votre racine Web.
Ajouter la ligne ...
DirectoryIndex index.php
Voici une ressource en la matière ...
http://www.twsc.biz/twsc_hosting_htaccess.php
Edit: Je suppose qu'Apache est configuré pour autoriser les fichiers .htaccess. Si ce n'est pas le cas, vous devrez modifier le paramètre dans le fichier de configuration d'Apache (httpd.conf).
Bien que l’ajout de 'DirectoryIndex index.php' à un fichier .htaccess puisse fonctionner,
REMARQUE:
En général, vous ne devriez jamais utiliser de fichiers .htaccess
Ceci est cité de http://httpd.Apache.org/docs/1.3/howto/htaccess.html
Bien que cela se réfère à une version plus ancienne d’Apache, je crois que le principe s’applique toujours.
Ajouter ce qui suit à votre httpd.conf (si vous y avez accès) est considéré comme une meilleure forme, entraîne moins de surcharge du serveur et a exactement le même effet:
<Directory /myapp>
DirectoryIndex index.php
</Directory>
En un mot, je dirais que l'index du répertoire est défini sur index.html, ou une variante, essayez:
DirectoryIndex index.html index.php
Cela donnera toujours à index.html la priorité sur index.php (pratique si vous devez afficher une page de maintenance)
Cela pourrait être utile à quelqu'un . Voici l'extrait de 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>
maintenant, cela cherchera le fichier index.html s'il n'est pas trouvé, il cherchera index.php.
J'ai eu le même problème avec un site sur notre site hébergé administrateur direct. J'ai ajouté
DirectoryIndex index.php
en tant qu'extension httd personnalisée (qui ajoute du code à un fichier de sites httpd
) et le site a ensuite exécuté le index.php
par défaut.
Essayez de créer un fichier .htaccess avec ce qui suit
DirectoryIndex index.php
Edit: En fait, n'y a-t-il pas un paquet 'php-Apache' ou quelque chose que vous êtes censé installer avec les deux?
J'ai eu un symptôme similaire. Dans mon cas cependant, mon idiotie avait involontairement aussi un fichier index.html vide dans le dossier racine Web. Apache servait cela plutôt que index.php quand je n'ai pas explicitement demandé index.php, car DirectoryIndex
était configuré comme suit dans mods-available/dir.conf
:
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
C'est-à-dire que "index.html" est placé devant "index.php" dans la liste des priorités. Supprimer le fichier index.html de la racine Web a naturellement résolu le problème. D'oh!
Après avoir lu tout cela et essayé d’y remédier, j’ai eu une solution simple sur le forum Ubuntu ( https://help.ubuntu.com/community/ApacheMySQLPHP ). Le problème réside dans le module libapache2-mod-php5. C'est pourquoi le navigateur télécharge le fichier index.php plutôt que d'afficher la page Web. Faites ce qui suit. Si Sudo a2enmod php5 renvoie le module n'existe pas, le problème vient de libapache2-mod-php5. Purger supprimer le module avec la commande Sudo apt-get --purge supprimer libapache2-mod-php5 Ensuite, installez-le à nouveau Sudo apt-get installer libapache2-mod-php5
Pour info: dans certains conf Apache2 vous devez ajouter la commande DirectoryIndex dans mods_enabled/dir.conf .__
Pas à pas et instructions complètes pour Ubuntu 16.04.4 LTS et Apache/2.4.18
"Sudo -s
"
"cd /etc/Apache2/mods-enabled
"
"vi dir.conf
" et déplacez index.php juste après DirectoryIndex comme ci-dessous, sauvegardez le fichier puis redémarrez le serveur Apache.
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
"service Apache2 restart
"
Si vous ne voyez pas dir.conf, vous devrez le charger (google pour savoir comment faire)
Terminé.
Celui-ci fonctionne comme un charme!
Premier
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
puis après celui de
<Files ".ht*">
Require all denied
</Files>
à
<Files ".ht*">
Require all granted
</Files>
Même problème pour moi. Ma solution était que mod_dir n'était pas activé et Apache2 n'émettait pas d'erreur lors de la lecture de la directive dans mon fichier VirtualHost:
DirectoryIndex index.html
En utilisant les commandes:
Sudo a2ensite dir
Sudo sudo service Apache2 restart
Correction du problème.
Ce message est peut-être ancien, mais je le publie simplement au cas où cela aiderait une autre personne. Je ne conseillerais pas de créer un fichier .htaccess dans votre racine Web et de modifier l'index. Je pense qu'il vaut mieux suivre les étapes
Allez dans le dossier conf de votre dossier Apache. Le mien est
C:\Apache24\conf
Ouvrez le fichier nommé
httpd.conf
Aller à la section
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Ajoutez index.php comme indiqué ci-dessous
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
De cette façon, il choisit toujours index.html et index.php comme index par défaut, mais en donnant la priorité à index.html car index.html est venu avant * index.php. Je veux dire par là que vous avez index.html et index.php dans le même répertoire, index.html sera utilisé comme index par défaut sauf que vous écrivez ** index.php * avant index.hml
J'espère que ça aide quelqu'un ... Bon codage