web-dev-qa-db-fra.com

500 Erreur de serveur interne pour le fichier php pas pour le HTML

Mon site a 4-5 pages statiques seulement. index.html & index.php les deux sont présents. index.html fonctionne bien. Si je change pour index.php, cela donne 500 Internal Server Error. Je ne sais pas où est ma faute?

Remarque: Si j'utilise le fichier . Htaccess avec php_flag display_errors 1,

C'est montrer Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Si j'utilise le fichier .htaccess avec empty,

C'est montrer 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...

65
KarSho

500 Internal Server Error est affiché 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
134
Hast

Les autorisations d'un fichier PHP doivent être définies sur 644. Tout dossier contenant des fichiers PHP et un accès PHP (pour télécharger des fichiers, par exemple) doit être défini sur 755. . PHP exécutera une erreur 500 lorsqu’il s’agit d’un fichier ou d’un dossier dont les autorisations sont définies sur 777!

66
David Valenza

Je sais que cette question est ancienne, mais j'ai rencontré ce problème sous Windows 8.1 en essayant d'utiliser des 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

Redémarrage du moniteur Apache, maintenant tout fonctionne bien. Il suffit de poster ceci comme réponse, car il est possible que, dans le futur, un simple correctif rencontre le même problème.

Bonne chance!

2
Winter

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

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

Sudo apt-get install php5-mysql

2
TheRookierLearner

Il changeait les fins de ligne (de Windows CRLF à Unix LF) dans le fichier .htaccess qui l’a corrigé.

2
Saran

Google m’a guidé ici mais il n’a pas résolu le mien. C’est une question très générale et les causes sont diverses. Je publie donc ici mon problème et sa solution au cas où quelqu'un le lirait plus tard.

Une autre cause possible d'erreur 500 est une erreur de syntaxe dans la fonction header(...), comme celle-ci:

header($_SERVER['SERVER_PROTOCOL'] . '200 OK');

Sachez qu’il devrait y avoir un espace entre le protocole du serveur et le code d’état, il devrait donc être:

header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');

Je suggère donc de vérifier votre appel en-tête http si vous l'avez dans votre code.

0
Lin