500 Interne serverfout voor php-bestand niet voor html [duplicaat]

Mijn site heeft slechts 4-5 statische pagina’s. index.html & index.php beide zijn aanwezig. index.html werkt prima. Als ik verander naar index.php, krijg ik 500 Internal Server Error. Ik weet niet waar mijn fout zit?

Opmerking:
Als ik het bestand .htaccess gebruik met php_flag display_errors 1,

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

Als ik .htaccess-bestand gebruik met empty,

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

En als ik ../contact-us.php geef, wordt het correct weergegeven.

Bedankt…


Antwoord 1, autoriteit 100%

500 Internal Server Error wordt weergegeven als uw php-code fatale fouten bevat, maar het weergeven van fouten is uitgeschakeld. U kunt dit proberen om de fout zelf te zien in plaats van 500 foutpagina:

In je php-bestand:

ini_set('display_errors', 1);

In .htaccess-bestand:

php_flag display_errors 1

Antwoord 2, autoriteit 55%

Een PHP-bestand moet machtigingen hebben die zijn ingesteld op 644. Elke map die PHP-bestanden en PHP-toegang bevat (om bijvoorbeeld bestanden te uploaden) moet de machtigingen hebben ingesteld op 755. PHP zal een 500-foutmelding uitvoeren bij het omgaan met een bestand of map die heeft rechten ingesteld op 777!


Antwoord 3, autoriteit 2%

Ik had dit probleem omdat ik probeerde verbinding te maken met MySQL, maar ik had niet het vereiste pakket. Ik kwam erachter vanwege de opmerking van @Amadan om het foutenlogboek te controleren. In mijn geval had ik de fout: Call to undefined function mysql_connect()

Als uw PHP-bestand code bevat om verbinding te maken met een My-SQL-database, moet u mogelijk eerst php5-mysql installeren. Ik kreeg deze foutmelding omdat ik het niet had geïnstalleerd. Al mijn bestandsrechten waren goed. In Ubuntu kunt u het met de volgende opdracht installeren:

sudo apt-get install php5-mysql


Antwoord 4, autoriteit 2%

Het was het veranderen van de regeleindes (van Windows CRLF naar Unix LF) in het .htaccess-bestand dat het voor mij oploste.


Antwoord 5

Ik weet dat deze vraag oud is, maar ik kwam dit probleem tegen op Windows 8.1 terwijl ik .htaccess-bestanden probeerde te gebruiken voor herschrijven. Mijn oplossing was simpel, ik vergat de volgende regel in httpd.conf

. aan te passen

#LoadModule rewrite_module modules/mod_rewrite.so

naar

LoadModule rewrite_module modules/mod_rewrite.so

Herstart de apache-monitor, nu werkt alles goed. Post dit gewoon als antwoord, omdat iemand in de toekomst hetzelfde probleem kan tegenkomen met een eenvoudige oplossing.

Veel succes!


Antwoord 6

Google leidt me hierheen, maar het heeft de mijne niet opgelost. Dit is een zeer algemene vraag en er zijn verschillende oorzaken, dus ik post mijn probleem en oplossing hier ter referentie voor het geval iemand dit later zou kunnen lezen.

Een andere mogelijke oorzaak van de 500-fout is een syntaxisfout in de functie header(...), zoals deze:

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

Houd er rekening mee dat er ruimte moet zijn tussen het serverprotocol en de statuscode, dus het zou moeten zijn:

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

Dus ik raad aan om je http-headeraanroep te controleren als je die in je code hebt staan.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

12 + 1 =

Other episodes