2013-07-22 38 views
5

Ich habe PHP auf meinem CENTOS-Server installiert. Wenn ich jedoch ein phpinfo() innerhalb meines Skripts zum Testen ausführe, erhalte ich den HTML-Code und nicht die interpretierte Information. Ich kann die Ordner für PHP sehen. Ich kann sogar die php.ini im Ordner etc sehen. Aber php selbst scheint nicht zu funktionieren. Ich meine meine test.php Datei sieht wie folgt aus:phpinfo() funktioniert nicht

<?php 
phpinfo(); 
?> 

Und die Antwort sieht wie folgt aus:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> 
<html><head> 
<style type="text/css"> 
body {background-color: #ffffff; color: #000000;} 
body, td, th, h1, h2 {font-family: sans-serif;} 
pre {margin: 0px; font-family: monospace;} 
a:link {color: #000099; text-decoration: none; background-color: #ffffff;} 
... 

und so weiter.

Was scheint das Problem zu sein und wie löse ich es? Wenn ich den HTML-Code kopieren, ihn in eine HTML-Datei einfügen und von dort aus ausführen, kann ich das formatierte Ergebnis sehen, aber nicht, indem ich die test.php ausführe. Ich gehe davon aus php nicht irgendwie geladen ist ... auch wenn im HTML interpretierte ich das sehen kann:

**Server API Apache 2.0 Handler 
Virtual Directory Support disabled 
Configuration File (php.ini) Path /etc/php.ini 
Scan this dir for additional .ini files /etc/php.d 
additional .ini files parsed /etc/php.d/dbase.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini 
PHP API 20041225 
PHP Extension 20050922 
Zend Extension 220051025 
Debug Build no 
Thread Safety disabled 
Zend Memory Manager enabled 
IPv6 Support enabled 
Registered PHP Streams php, file, http, ftp, compress.bzip2, compress.zlib, https, ftps** 

und so weiter ...

Auf diesem System gibt es 3 Websites gehostet werden. Hat das etwas mit diesem Problem zu tun?

+0

Es klingt wie PHP läuft, und 'phpinfo()' gibt das richtige Ergebnis aus. Sie haben vielleicht einige Vorlagen oder etwas im Weg und werfen das Ergebnis weg. – cHao

+0

Der HTML-Code, den Sie sehen, ist das gleiche, was ich sehe, wenn ich "Quelle anzeigen" auf einer Seite sehe, die nichts anderes als " drin. Es ist der HTML-Header der PHP-Infoseite. – cHao

+0

Ja. Es ist der HTML-Code, der normalerweise auf einer normalen phpinfo-Rückgabeseite zurückgegeben wird. Aber es wird nicht interpretiert. Ich sehe es, ohne auf "Quelle anzeigen" zu klicken. Was soll ich machen? – user1137313

Antwort

5

haben Sie die Seite gespeichert, die

<?php 
phpinfo(); 
?> 

mit Endung .php enthält? etwas wie info.php nicht info.html ...

+2

yup. Wie ich oben sagte: '... ich meine meine test.php Datei sieht so aus: 'So, ich denke, es ist offensichtlich, mein Dateiname ist test.php – user1137313

6

Sie müssen Ihre Apache-Konfiguration aktualisieren, um sicherzustellen, dass es PHP als Typ Text/HTML ausgibt, sollte der folgende Code funktionieren, aber einige Konfigurationen sind anders.

AddHandler php5-script .php 
AddType text/html .php 
+1

wo sollte ich diesen Code ausführen? Oder sollte ich diese Zeilen zu einer Konfigurationsdatei hinzufügen? – user1137313

+0

Sie können es zu einer .htaccess-Datei hinzufügen oder Ihre Haupt-Apache-Konfiguration – cmorrissey

+0

Ich fügte den Code der httpd.conf-Datei hinzu, startete den httpd neu, aber nichts änderte sich – user1137313

3

Gerade hatte das gleiche Problem und fand, dass ein Kunde diese Funktion aus ihrer php.ini

; This directive allows you to disable certain functions for security reasons. 
; It receives a comma-delimited list of function names. This directive is 
; *NOT* affected by whether Safe Mode is turned On or Off. 
disable_functions = phpinfo; 

Mehr Infos deaktiviert hatte: Enabling and disabling phpinfo() for security reasons

0

Ich hatte das gleiche Problem. Die Lösung in meinem Fall war default_mimetype = "text/html" innerhalb php.ini Datei zu setzen.

+0

Bereits vorhanden in default php.Ini von PHP5 auf Debian Jessie. –

1

versuchen, eine php.ini-Datei im root zu erstellen und den folgenden Befehl in und speichern Sie es.

mit diesem Code aktiviert phpinfo() -Funktion für Sie, wenn es durch globale PHP-Konfiguration deaktiviert ist.

11

Das ist mir auch passiert. Der Fix hat es in HTML-Tags verpackt. Dann speicherte ich die Datei als /var/www/html/info.php und lief http://localhost/info.php im Browser. Das ist es.

<html> 
<body> 

<?php 
phpinfo(); 
?> 

</body> 
</html> 
+2

Nun, das hat auch für mich funktioniert. lol –

+0

Verwenden von phpinfo(); zeigt keine Informationen an. Um die Konfigurationsinformationen auszudrucken, müssen Sie sie wiederholen. Also wird der Code

4

Das hat es für mich (die zweite Antwort): why are my php files showing as plain text?

einfach das Hinzufügen, sonst nichts funktioniert.

apt-get install libapache2-mod-php5 
+0

Mine konnte 'php5' nicht finden, also benutzte ich' php7.0' stattdessen: 'apt-get install libapache2-mod-php7.0'. Ich betreibe Linux Mint 18 –

+0

Es funktioniert für mich. – Tung

1

Seien Sie sicher, dass der Tag "php" im Code-Stick ist wie dieser

php phpinfo(); ?>

Nicht wie diese

? php phpinfo(); ?>

oder der Server es als (normal Wort) behandelt so wird Server versteht nicht die Sprache, die Sie mit ihm schreiben Deal, so dass es leer sein wird.

Ich weiß, es ist ein dummer Fehler ... aber es passiert^_^

0

auch mir passiert ist. In einem neu bereitgestellten REDHAT 7 Server.

Wenn ich eine PHP-Seite, dh info.php laufen könnte ich Klartext PHP-Skripte sehen statt Ausführen dieser

gerade PHP installiert

[[email protected] ~]# yum install php 

Dann starten Sie Apache

[[email protected] ~]# systemctl restart httpd 
0

Es funktioniert möglicherweise nicht, wenn Sie localhost/info.php verwenden. Möglicherweise können Sie den Hinweis aus dem Fehler finden. Suchen Sie die Portnummer in der Fehlermeldung. Zu mir war es 80. Ich habe die Adresse als http://localhost:80/info.php geändert, dann hat es mir funktioniert.