web-dev-qa-db-de.com

PHP Code wird nicht ausgeführt, stattdessen wird Code auf der Seite angezeigt

Ich versuche, PHP Code in einem Projekt auszuführen (mit Dreamweaver), aber der Code wird nicht ausgeführt.

Wenn ich den Quellcode überprüfe, erscheint der PHP Code als HTML-Tags (ich kann ihn im Quellcode sehen). Apache läuft ordnungsgemäß (ich arbeite mit XAMPP), die PHP Seiten werden ordnungsgemäß geöffnet, aber der PHP Code wird nicht ausgeführt.

Hat jemand einen Vorschlag, was passiert?

Hinweis: Die Datei hat bereits den Namen filename.php

Edit: Der Code ..:

<?
include_once("/code/configs.php");
?>

The print

291
Gui

Klingt so, als ob etwas mit Ihrer Konfiguration nicht stimmt. Hier sind einige Dinge, die Sie überprüfen können:

  1. Stellen Sie sicher, dass PHP installiert ist und ordnungsgemäß ausgeführt wird. Das mag albern klingen, aber Sie wissen es nie. Eine einfache Möglichkeit, dies zu überprüfen, besteht darin, php -v über eine Befehlszeile auszuführen und festzustellen, ob Versionsinformationen oder Fehler zurückgegeben werden.

  2. Stellen Sie sicher, dass das PHP -Modul in der httpd.conf Ihres Apache aufgeführt und unkommentiert ist. Dies sollte etwa LoadModule php5_module "c:/php/php5Apache2_2.dll" in der Datei sein . Suchen Sie nach LoadModule php und vergewissern Sie sich, dass kein Kommentar (;) davor steht.

  3. Stellen Sie sicher, dass die httpd.conf-Datei von Apache den MIME-Typ PHP enthält. Dies sollte etwa AddType application/x-httpd-php .php sein. Dies weist Apache an, .php -Dateien als PHP auszuführen. Suchen Sie nach AddType, und vergewissern Sie sich, dass ein Eintrag für PHP vorhanden ist und dass dieser nicht kommentiert ist .

  4. Stellen Sie sicher, dass Ihre Datei die Erweiterung .php oder die in der MIME-Definition unter Punkt 3 angegebene Erweiterung aufweist, da sie sonst nicht als PHP ausgeführt wird.

  5. Stellen Sie sicher, dass Sie nicht kurze Tags in der PHP-Datei (<?) verwenden. Diese sind standardmäßig nicht auf allen Servern aktiviert ​​und von ihrer Verwendung wird abgeraten . Verwenden Sie stattdessen <?php (oder aktivieren Sie kurze Tags in Ihrer php.ini mit short_open_tag=On, wenn Sie Code haben, der auf ihnen basiert).

  6. Stellen Sie sicher, dass Sie auf Ihre Datei über Ihren Webserver zugreifen, indem Sie eine URL wie http://localhost/file.php verwenden und nicht über den lokalen Dateizugriff file://localhost/www/file.php.

Und zum Schluss lesen Sie das PHP-Handbuch für weitere Setup-Tipps .

385
shmeeps

php7:

Sudo a2enmod proxy_fcgi setenvif
Sudo a2enconf php7.0-fpm
Sudo service Apache2 restart
45
sj59

Ich verwende Apache unter Ubuntu und mein Problem war, dass in der /etc/Apache2/mods-available/php5.conf -Datei Folgendes fehlt:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

Ich fügte es wieder hinzu und PHP analysierte PHP-Dateien korrekt.

32
Matt McDonald

hinweis für PHP 7-Benutzer, fügen Sie dies zu Ihrer httpd.conf-Datei hinzu:

# PHP 7 specific configuration
<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>
26
EdC

Ich habe ein anderes Problem gefunden, das dieses Problem verursacht, und es bereits behoben. Ich habe mein Skript versehentlich in der Codierung UTF-16 gespeichert. Es scheint, dass PHP5 das Tag <?php in der 16-Bit-Codierung standardmäßig nicht erkennen kann.

21
Arrvi

Ich poste diese Antwort, weil meine Virtualmin/Webmin-Administrationsoberfläche entschieden hat, dass es eine gute Idee ist, meine PHP -Engine zu deaktivieren. Ich habe eine Weile gebraucht, um die Lösung zu finden. d teile es mit euch:

Vergewissern Sie sich auch, dass in keiner Ihrer Website-Konfigurationsdateien, die sich auf diesen bestimmten Host oder virtuellen Host beziehen, php_admin_value enthalten sind, die PHP ausschalten.

php_admin_value engine Off

Wenn Sie Zweifel haben, kommentieren Sie es ...

# php_admin_value engine Off

Und starte deinen Webserver neu.

18
Henry van Megen

Sie öffnen einfach Ihre PHP-Datei im Browser. Sie müssen es mit localhost url öffnen. Wenn Sie eine Datei direkt aus Ihrem Verzeichnis öffnen, wird der PHP-Code in keinem Fall ausgeführt.

benutze: http://locahost/index.php oder http:127.0.0.1/index.php

Aktivieren Sie den PHP-Funktionscode. In Ihrem Fall verwenden Sie <?, einen PHP-Funktionscode für <?php. Standardmäßig sind PHP-Funktionscodes deaktiviert.

Verwenden Sie auch: Sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt, wenn Sie ein Ubuntu-Benutzer sind.

15
Hasan Baig

Ich weiß, es sollte albern klingen ... aber selten passiert es.

Überprüfen Sie, ob Sie versuchen, PHP von auszuführen

**http://localhost/info.php**

und nicht aus

file:///var/www/info.php

ps> das merkt man wenn man aus Shell schreibt

php info.php 

es antwortet mit dem Code (es bedeutet PHP-Funktionen) ..

8
user3257072

Das ist mir gerade wieder passiert, zusammen mit dem Server, der HTML-Dateien herunterlädt, anstatt sie zu verarbeiten. Ich hatte den Webserver Apache schon länger nicht mehr auf dem Computer und mittlerweile hat Ubuntu wie zwei weitere Versionen von ursprünglich installiertem LTS aktualisiert. Jetzt ist es

$ cat /etc/issue
Ubuntu 16.04 LTS

So funktionierte die PHP danach wie folgt:

$ Sudo apt-get install lamp-server^
$ Sudo a2enmod php7.0
$ Sudo service Apache2 restart 

Der Webserver analysierte jetzt das PHP. Vielleicht müssen jetzt einige Webseiten aktualisiert werden, da PHP 7.0 jetzt dort läuft, wo es war, bevor PHP 5 lief. Naja.

7
ndasusers

Ich habe dieses Problem gelöst, indem ich XAMPP deinstalliert und WAMP installiert habe. Danke für die Hilfe.

5
Gui

auf meinem ubuntu 14.04, apache 2.4, php 5.5.9 install habe ich es mit einer sample.php unter/var/www/html (default document root) versucht und es hat einwandfrei funktioniert. Das Problem lag also in meiner Konfiguration für virtuelle Server. Die Lösung bestand darin, in das Verzeichnis def, das die .php-Datei enthielt, die folgende Zeile aufzunehmen:

    php_admin_flag engine on
4
Rogelio

Ich habe dieses Problem in PHP 7.1, das mit High Sierra (OS X 10.13.5) geliefert wird, festgestellt. Die Bearbeitung von /etc/Apache2/httpd.conf mit folgenden Änderungen hat geholfen:

  1. Kommentieren Sie diese Zeile aus

    LoadModule php7_module libexec/Apache2/libphp7.so
    
  2. Fügen Sie am Ende Folgendes ein

    <IfModule php7_module>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        <IfModule dir_module>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    
4
AamirR

Überprüfen Sie alle installierten Pakete auf php mit:

yum list installed | grep remi

Installieren Sie alle relevanten php Pakete, insbesondere php-devel auf Ihrem Computer.

3

ich hatte ein ähnliches Problem, aber in meinem Fall war die Lösung anders. Meine Datei, die PHP-Code enthielt, hieß "somename.html" und wurde in "somename.php" geändert

3
Netrus

Für ein neues Setup von LAMP unter PHP 7 bearbeiten Sie die Datei /etc/httpd/conf/httpd.conf. Hinweis: Stellen Sie sicher, dass Sie ein Backup dafür erstellen, bevor Sie Änderungen vornehmen.

Fügen Sie dies ganz unten in die Datei ein:

<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Suchen Sie dann nach LoadModule und fügen Sie die folgende Zeile ein:

LoadModule php7_module modules/libphp7.so

Diese Zeile fordert httpd einfach auf, das PHP 7-Modul zu laden

Starten Sie anschließend httpd neu

2
Eric Libay

Stellen Sie sicher, dass das Skript enthält

<?php

vor dem Code, der ausgeführt werden soll. Es sollte kein Leerzeichen zwischen <? und php stehen.

2
Barmar

Das war in meinem .htaccess

DirectoryIndex index.html index.htm

index.html enthielt PHP Code. Standardmäßig verarbeitet PHP keine Dateien mit Erweiterungen wie htm * als PHP Code.

Sie können dies überschreiben, indem Sie .htaccess Folgendes hinzufügen:

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>
2
Jahmic

Ich hatte einen Fall, in dem ich versehentlich angefangen habe, mein Dateiverzeichnis im Stammverzeichnis zu entpacken. Es fügte die .htaccess Datei von meinem Aktenordner hinzu, der alles PHP blockieren würde

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

Fazit: Überprüfen Sie die .htaccess-Datei im Stammverzeichnis.

1
albertski

in meinem Fall (Apache/2.4.34),

nach dem Auskommentieren des spezifischen Moduls

"LoadModule php7_module libexec/Apache2/libphp7.so"

von

"/etc/Apache2/httpd.conf"

mein Problem war weg.

1
sh6210

Die Neuinstallation des Moduls mcrypt hat bei mir funktioniert.

$Sudo apt-get install php5-mcrypt
$Sudo php5enmod mcrypt
1
b.g

Fügen Sie Ihrer httpd.conf-Datei AddType application/x-httpd-php .php hinzu, wenn Sie Apache 2.4 verwenden

1
Ashahmali

Habe gerade stundenlang versucht, PHP 5 mit Apache 2.4 unter Windows 10 zum Laufen zu bringen . Schließlich war es für mich ein Tippfehler in httpd.conf LoadModule. Er lenkte die Aufmerksamkeit auf das Schreiben und den genauen Modulpfad durch die letzte Antwort in diesem apachelounge-Thread von denny2018 . Danke!

Nach zwei Nächten entdeckte ich ... Mein Verzeichnis wurde geschrieben c: (Kleinbuchstaben)

Ich hatte LoadModule php5_module "c:/php/php5Apache2.dll" aber korrekt für Apache 2.4 ist:

LoadModule php5_module "C:/php/php5Apache2_4.dll"

Also habe ich auch den _4 verpasst (für Apache 2.4 ). Das vollständige Snippet, das für mich funktioniert hat:

# PHP
LoadModule php5_module "C:/php/php5Apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Gerade ausprobiert PHP 7 . Dort liest sich die LoadModule Zeile in httpd.conf für Apache 2.4

LoadModule php7_module "C:/php/php7Apache2_4.dll"

Derzeit PHP-Handbuch wird angezeigtc:/php/php5Apache2.dll was natürlich angepasst werden muss.

1
bobble bubble

Wenn Sie eine solche Konfiguration haben:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/var/www/example.com"

    <FilesMatch "\.php$">
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
</VirtualHost>

Kommentieren Sie die nächsten Zeilen in Ihrer httpd.conf aus

LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so

Für mich geht das

1
user3890355

Ich denke, das Problem, dass es Code anstelle des Ergebnisses zeigt, ist, dass es nicht zum lokalen Host geht. Überprüfen Sie erneut, welche Adresse Sie eingeben. Wechseln Sie in ein lokales Dateiverzeichnis oder zum lokalen Host.

von dem Screenshot, den du geschickt hast, geht es zu deinem Computer und nicht zum Localhost.

"file: ///" sollte "localhost /" sein

1
Nav

die Datei, die Sie in/var/www/html/ablegen, sollte beispielsweise .php haben.

0
yasin lachini