Waarom worden mijn PHP-bestanden als platte tekst weergegeven?

Ik schrijf al een tijdje PHP-applicaties met PHP in WAMP. Nu installeer ik PHP en Apache HTTP Server afzonderlijk op mijn werk-pc. Ik heb PHP 5 en de nieuwste Apache geïnstalleerd. Ik ga naar localhost en zie dat het werkt!

Nu voeg ik een bestand toe met de naam test.phpmet het volgende:

<?php
    phpinfo();
?>

Maar in de browser wordt alleen platte tekst weergegeven. Is er ergens waar ik expliciet heb gezegd dat het PHP 5 moet gebruiken?


Antwoord 1, autoriteit 100%

Je moet de PHP 5-bibliotheek voor Apache installeren.

Voor Debian en Ubuntu:

apt-get install libapache2-mod-php5

En herstart de Apache:

service apache2 restart

Antwoord 2, autoriteit 77%

Je moet dit toevoegen aan je serverconfiguratie:

AddType application/x-httpd-php .php

Dat veronderstelt dat je PHP correct hebt geïnstalleerd, wat misschien niet het geval is omdat het niet werkt waar het normaal gesproken onmiddellijk na de installatie zou werken.

Het is heel goed mogelijk dat u ook het php.so/.dll-bestand aan uw Apache-configuratie moet toevoegen met behulp van een LoadModule-instructie (meestal in httpd.conf).


Antwoord 3, autoriteit 14%

Je moet Apache (de webserver) configureren om PHP-scripts als PHP te verwerken. Controleer de configuratie van Apache. U moet de module laden (het pad kan verschillen op uw systeem):

LoadModule php5_module "c:/php/php5apache.dll"

En je moet Apache ook vertellen wat het moet verwerken met PHP:

AddType application/x-httpd-php .php

Zie de documentatie voor meer informatie details.


Antwoord 4, autoriteit 14%

Nog een andere reden (niet voor dit geval, maar misschien bespaart het iemand wat zenuwen) is dat in PHP 5.5 korte open tags <? phpinfo(); ?>zijn standaard uitgeschakeld.

Dus de PHP-interpreter zou code binnen korte tags als platte tekst verwerken. In eerdere versies van PHP was deze functie standaard ingeschakeld. Het nieuwe gedrag kan dus een beetje mysterieus zijn.


Antwoord 5, autoriteit 9%

Misschien heb je, net als ik, php-cgi geïnstalleerd voordat je Apache installeerde en als je dat doet, wordt Apache niet correct ingesteld om PHP uit te voeren, PHP volledig verwijderen en opnieuw installeren leek mijn probleem op te lossen.


Antwoord 6, autoriteit 6%

Je moet handlers toevoegen in Apache om php-code te verwerken.

Bewerken met het commando sudo vi /etc/httpd/conf/httpd.conf

Voeg deze twee handlers toe

 AddType application/x-httpd-php .php
  AddType application/x-httpd-php .php3

op de hieronder gespecificeerde positie

<IfModule mime_module>
 AddType application/x-compress .Z
 AddType application/x-gzip .gz .tgz
--Add Here--
</IfModule>

voor meer details over AddType-handlers

http://httpd.apache.org/docs/2.2/mod/mod_mime.html


Antwoord 7, autoriteit 4%

Gebruik je de userdir-mod?

In dat geval is het zo dat PHP5 het uitvoeren van scripts vanaf die locatie standaard lijkt uit te schakelen en dat je de volgende regels moet uitschrijven:

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

in /etc/apache2/mods-enabled/php5.conf(op een ubuntu-systeem)

Other episodes