127 votes

index.php ne se charge pas par défaut

Je viens d'installer CentOS, Apache et PHP. Lorsque je visite mon site http://example.com/myapp/ il est dit "interdit". Par défaut, il ne charge pas le fichier index.php.

Quand je visite http://example.com/myapp/index.php il fonctionne bien.

Une idée de la façon de résoudre ce problème ?

166voto

John Himmelman Points 6672

Apache doit être configuré pour reconnaître index.php comme un fichier d'index.

La façon la plus simple d'accomplir ceci

  1. Créez un fichier .htaccess dans votre racine web.

  2. Ajoutez la ligne...

Index du répertoire index.php

Voici une ressource concernant cette question...
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).

6 votes

Il devrait probablement se trouver dans le fichier php.conf qu'apache charge.

0 votes

Je pense que vous voulez dire php.ini. Quoi qu'il en soit, son apache ne reconnaît pas index.php comme un fichier d'index de répertoire. La gestion des fichiers php est un autre problème de configuration d'Apache.

2 votes

N'oubliez pas de redémarrer apache !! comme je l'ai fait ! :/

122voto

M_M Points 447

L'ajout de "DirectoryIndex index.php" à un fichier .htaccess peut fonctionner,

NOTE :

En général, vous ne devriez jamais utiliser les fichiers .htaccess.

Cette citation est tirée de http://httpd.apache.org/docs/1.3/howto/htaccess.html
Bien que cela se réfère à une ancienne version d'apache, je pense que le principe s'applique toujours.

Ajouter les éléments suivants à votre httpd.conf (si vous y avez accès) est considéré comme une meilleure forme, entraîne moins de frais de serveur et a exactement le même effet :

<Directory /myapp>
DirectoryIndex index.php
</Directory>

Edit : Au moment de l'édition, la documentation de la v1.3 est en panne. Le site v2.4 documentation (version actuelle au moment de la rédaction) a une position similaire :

En général, l'utilisation de .htaccess doivent être évités dans la mesure du possible. Toute configuration que vous envisageriez de mettre dans un fichier .htaccess peut tout aussi bien se faire dans un fichier de type <Directory> dans le fichier de configuration de votre serveur principal.

4 votes

C'est très bien si vous avez accès à ce fichier.

1 votes

+1 pour ça. C'est la méthode à privilégier, sauf si vous n'avez pas accès à httpd.conf.

0 votes

Je crois que l'ajout de cette information au fichier de configuration default-ssl est également acceptable, si vous utilisez HTTPS.

51voto

Ben Rowe Points 15269

Je dirais que l'index du répertoire est défini comme index.html, ou une variante, essayez :

DirectoryIndex index.html index.php

Cela donnera toujours à index.html la priorité sur index.php (pratique si vous avez besoin de mettre en place une page de maintenance).

1 votes

Le mien ressemble à ça mais malheureusement il télécharge l'index.php au lieu de l'exécuter.

0 votes

@Webnet alors vous devriez envisager de changer Type et LoadModules en php pour qu'il lise php [ stackoverflow.com/questions/5121495/

3voto

animuson Points 23184

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 supposé installer avec les deux ?

1voto

Zitun Points 145

Pour info : dans certaines conf Apache2 vous devez ajouter la commande DirectoryIndex dans mods_enabled/dir.conf (elle n'est pas située dans apache2.conf)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X