83 votes

500 Internal Server Error pour le fichier php et non pour le html

Mon site ne comporte que 4-5 pages statiques. index.html & index.php index.html fonctionne correctement. Si je passe à index.php, cela donne 500 Internal Server Error . Je ne sais pas où est mon erreur ?

Remarque : Si j'utilise .htaccess avec php_flag display_errors 1 ,

Il montre Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Si j'utilise .htaccess avec empty ,

Il montre Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Et si je donne ../contact-us.php il s'affiche correctement.

Merci...

168voto

Hast Points 3409

500 Internal Server Error s'affiche si votre code php contient des erreurs fatales mais que l'affichage des erreurs est désactivé. Vous pouvez essayer ceci pour voir l'erreur elle-même au lieu de la page d'erreur 500 :

Dans votre fichier php :

ini_set('display_errors', 1);

Dans le fichier .htaccess :

php_flag display_errors 1

88voto

David Valenza Points 1039

Les permissions d'un fichier PHP doivent être fixées à 644. Tout dossier contenant des fichiers PHP et un accès PHP (pour télécharger des fichiers, par exemple) doit avoir des permissions de 755. PHP affichera une erreur 500 lorsqu'il traitera un fichier ou un dossier dont les permissions sont définies à 777 !

3voto

TheRookierLearner Points 552

J'avais ce problème parce que j'essayais de me connecter à MySQL mais je n'avais pas le paquetage requis. J'ai compris grâce au commentaire d'@Amadan de vérifier le journal des erreurs. Dans mon cas, j'avais l'erreur suivante : Call to undefined function mysql_connect()

Si votre fichier PHP contient du code pour se connecter à une base de données My-SQL, vous devrez peut-être installer les éléments suivants php5-mysql d'abord. J'obtenais cette erreur parce que je ne l'avais pas installé. Toutes mes permissions de fichiers étaient bonnes. Dans Ubuntu, vous pouvez l'installer par la commande suivante :

sudo apt-get install php5-mysql

3voto

Saran Points 1186

Il modifiait les fins de ligne (de Windows CRLF à Unix LF) dans le fichier .htaccess qui a réglé le problème pour moi.

2voto

Winter Points 364

Je sais que cette question est ancienne, cependant j'ai rencontré ce problème sur Windows 8.1 en essayant d'utiliser les fichiers .htaccess pour la réécriture. Ma solution était simple, j'ai oublié de modifier la ligne suivante dans httpd.conf

#LoadModule rewrite_module modules/mod_rewrite.so

à

LoadModule rewrite_module modules/mod_rewrite.so

J'ai redémarré le moniteur apache et tout fonctionne bien. J'ai juste posté cette réponse car quelqu'un dans le futur pourrait rencontrer le même problème avec une solution simple.

Bonne chance !

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