Ich versuche, PHP-Code in einem Projekt auszuführen (mit Dreamweaver), aber der Code wird nicht ausgeführt.
Wenn ich den Quellcode überprüfe, wird der PHP-Code als HTML-Tags angezeigt (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 Namenfilename.php
Bearbeiten: Der Code ..:
<?
include_once("/code/configs.php");
?>
<?
anstelle von<?php
?<?
). Sie sind veraltet, arbeiten nicht wirklich an vielen Orten und sind ansonsten völlig unnötig. Das Speichern von drei Tastenanschlägen ist kein gültiger Grund dafür, dass Ihr Code möglicherweise auf wahrscheinlich der Hälfte der Server ausfällt, auf denen er möglicherweise ausgeführt wird.short_open_tag
Einstellung standardmäßig unterstützt werden .<?=
), die unter PHP 5.4+ unabhängig von den Servereinstellungen einwandfrei funktionieren sollten.Antworten:
Klingt so, als ob etwas mit Ihrer Konfiguration nicht stimmt. Hier sind einige Dinge, die Sie überprüfen können:
Stellen Sie sicher, dass PHP installiert ist und ordnungsgemäß ausgeführt wird. Das mag albern klingen, aber man weiß es nie. Eine einfache Möglichkeit zur Überprüfung besteht darin,
php -v
über eine Befehlszeile zu prüfen, ob Versionsinformationen oder Fehler zurückgegeben werden.Stellen Sie sicher, dass das PHP-Modul in der httpd.conf Ihres Apache aufgelistet und nicht kommentiert ist. Dies sollte so etwas wie
LoadModule php5_module "c:/php/php5apache2_2.dll"
in der Datei sein. Suchen Sie nachLoadModule php
und stellen Sie sicher, dass kein Kommentar (;
) davor steht.Stellen Sie sicher, dass die httpd.conf-Datei von Apache den Typ PHP MIME enthält. Das sollte so etwas sein
AddType application/x-httpd-php .php
. Dies weist Apache an,.php
Dateien als PHP auszuführen . Suchen Sie nach AddType und stellen Sie sicher, dass ein Eintrag für PHP vorhanden und nicht kommentiert ist ..php
Stellen Sie sicher, dass Ihre Datei die Erweiterung enthält oder die in der MIME-Definition in Punkt 3 angegebene Erweiterung, da sie sonst nicht als PHP ausgeführt wird.Stellen Sie sicher, dass Sie keine kurzen Tags in der PHP-Datei (
<?
) verwenden. Diese sind standardmäßig nicht auf allen Servern aktiviert und von ihrer Verwendung wird abgeraten. Verwenden Sie<?php
stattdessen (oder aktivieren Sie kurze Tags in Ihrer php.ini mit,short_open_tag=On
wenn Sie Code haben, der auf ihnen basiert ).Stellen Sie sicher, dass Sie über Ihren Webserver auf Ihre Datei zugreifen, indem Sie eine URL verwenden, die
http://localhost/file.php
nicht über den lokalen Dateizugriff erfolgtfile://localhost/www/file.php
Zuletzt finden Sie im PHP-Handbuch weitere Tipps zur Einrichtung .
quelle
AddType application/x-httpd-php .php
. Vielen Dank!!apt-get purge apache2; apt-get install apache2 libapache-mod-php5
.php
Erweiterung mit dem Inhalt hochzuladen, und prüfen Sie,<?php echo("Success"); ?>
ob der Zugriff auf die Datei über einen Webbrowser dazu führt, dass "Erfolg" ohne den zugehörigen PHP-Code angezeigt wird.php7:
quelle
sudo a2enmod proxy_fcgi setenvif
schafft drei neue Mods/mods-available/proxy.conf proxy_fcgi.load proxy.load
Ebensosudo a2enconf php7.0-fpm
erstellt eine Konfigurationsdatei/conf-available/php7.0-fpm.conf
Sobald dies geschehen ist und Apache2 kann dann das PHP7 Modul als schnell CGI - Dienst ausführen.Ich verwende Apache unter Ubuntu und mein Problem war, dass der
/etc/apache2/mods-available/php5.conf
Datei Folgendes fehlte:Ich habe es wieder hinzugefügt und PHP hat PHP-Dateien korrekt analysiert.
quelle
Hinweis für PHP 7-Benutzer, fügen Sie dies zu Ihrer httpd.conf-Datei hinzu:
quelle
httpd.conf
Datei befindet sich in/etc/apache2/httpd.conf
Wenn Sie Ubuntu verwenden, befindet sie sichapache2.conf
in demselben Verzeichnis, das für PHP7 geändert werden muss.Ich habe ein anderes Problem gefunden, das dieses Problem verursacht hat, und es bereits gelöst. Ich habe mein Skript versehentlich in
UTF-16
Codierung gespeichert . Es scheint, dass PHP5 das<?php
Tag in der 16-Bit-Codierung standardmäßig nicht erkennen kann .quelle
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, also dachte ich, ich würde sie mit euch teilen:
Stellen Sie außerdem sicher, dass in keiner Ihrer Website-Konfigurationsdateien, die sich auf diesen bestimmten Host oder virtuellen Host beziehen, php_admin_value enthalten sind, die PHP wie folgt deaktivieren:
Wenn Sie Zweifel haben, kommentieren Sie es ...
Und starten Sie Ihren Webserver neu.
quelle
/etc/apache2/mods-enabled/php7.conf
oderphp5.conf
sudo grep php_admin_value /etc/* -R
Sie öffnen nur Ihre PHP-Datei im Browser. Sie müssen es mit der 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
oderhttp:127.0.0.1/index.php
Aktivieren Sie den PHP-Funktionscode. In Ihrem Fall verwenden Sie
<?
den 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.quelle
Ich weiß, es sollte albern klingen ... aber selten passiert es.
Überprüfen Sie, ob Sie versuchen, PHP von auszuführen
und nicht von
ps> das merkt man wenn man aus der shell schreibt
es antwortet mit dem Code (es bedeutet PHP-Funktionen) ..
quelle
Dies ist mir gerade wieder passiert, zusammen mit dem Server, der HTML-Dateien herunterlädt, anstatt sie zu verarbeiten. Ich hatte den Webserver-Apache einige Zeit nicht auf dem Computer verwendet und währenddessen wurde Ubuntu wie zwei weitere Versionen von ursprünglich installiertem LTS aktualisiert. Jetzt ist es
Also hat der PHP danach so funktioniert:
Der Webserver analysierte jetzt das PHP. Vielleicht müssen jetzt einige Webseiten aktualisiert werden, da php7.0 jetzt dort läuft, wo es war, bevor php5 ausgeführt wurde. Naja.
quelle
Ich habe dieses Problem gelöst, indem ich XAMPP deinstalliert und WAMP installiert habe. Danke für die Hilfe.
quelle
Ich war mit diesem Problem in PHP 7.1 konfrontiert, das mit High Sierra (OS X 10.13.5) geliefert wurde. Die Bearbeitung
/etc/apache2/httpd.conf
mit folgenden Änderungen hat geholfen:Kommentieren Sie diese Zeile aus
Fügen Sie am Ende Folgendes ein
quelle
auf meinem ubuntu 14.04, apache 2.4, php 5.5.9 install habe ich es mit einer sample.php auf / var / www / html (standard document root) versucht und es hat ok funktioniert. Das Problem lag also in meiner Konfiguration für virtuelle Server. Die Lösung bestand darin, in das Verzeichnis def, das die .php enthält, folgende Zeile aufzunehmen:
quelle
Ich hatte ein ähnliches Problem, aber in meinem Fall war die Lösung anders. meine Datei , dass angehaltener PHP - Code genannt wurde „somename.html“ geändert , es zu „somename.php“ funktionieren gut
quelle
Für eine neue Einrichtung 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:
Suchen Sie dann nach LoadModule und fügen Sie die folgende Zeile ein:
Diese Zeile fordert einfach httpd auf, das PHP 7-Modul zu laden
Starten Sie dann httpd neu
quelle
Überprüfen Sie alle Pakete, die Sie für PHP installiert haben, mit:
Installieren Sie alle relevanten PHP- Pakete, insbesondere PHP-Entwickler, auf Ihrem Computer.
quelle
Stellen Sie sicher, dass das Skript enthält
vor dem Code, der ausgeführt werden soll. Es sollte kein Leerzeichen zwischen
<?
undphp
in diesem sein.quelle
Dies war in meinem .htaccess
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:
quelle
Ich denke, das Problem, dass es Code anstelle des Ergebnisses anzeigt, ist, dass es nicht zum lokalen Host geht. Überprüfen Sie erneut, welche Adresse Sie eingeben. Gehen Sie zu einem lokalen Dateiverzeichnis oder zum lokalen Host.
Von dem Screenshot, den du gesendet hast, wird dein Computer nicht an den lokalen Host gesendet.
"file: ///" sollte "localhost /" sein
quelle
Die Neuinstallation des
mcrypt
Moduls hat bei mir funktioniert.quelle
Ich hatte den Fall, dass ich versehentlich angefangen habe, mein Dateiverzeichnis im Stammverzeichnis zu entpacken. Es fügte die .htaccess-Datei aus meinem Dateiordner hinzu, die alle PHP blockieren würde
Fazit: Überprüfen Sie die .htaccess-Datei im Stammverzeichnis.
quelle
Wenn Sie eine Konfiguration wie diese haben:
Kommentieren Sie die nächsten Zeilen in Ihrer httpd.conf aus
Für mich geht das
quelle
Fügen Sie
AddType application/x-httpd-php .php
Ihrer httpd.conf-Datei hinzu, wenn Sie Apache 2.4 verwendenquelle
Ich habe nur 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
. Die Aufmerksamkeit auf das Schreiben und den genauen Modulpfad durch die letzte Antwort in diesem apachelounge-Thread von denny2018 gelenkt . Vielen Dank!Ich hatte
LoadModule php5_module "c:/php/php5apache2.dll"
aber richtig für Apache 2.4 ist:Also habe ich auch das
_4
vorher verpasst (für Apache 2.4 ). Das vollständige Snippet, das für mich funktioniert hat:Habe gerade PHP 7 ausprobiert . Dort lautet die
LoadModule
Zeile in httpd.conf für Apache 2.4Derzeit zeigt
c:/php/php5apache2.dll
das PHP-Handbuch, was natürlich angepasst werden muss.quelle
in meinem Fall (Apache / 2.4.34),
nach dem Auskommentieren des spezifischen Moduls
von
Mein Problem war weg.
quelle
Falls wir uns auf derselben Seite befinden, gehen Sie wie folgt vor
sudo apt-get install php -y
sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y
So aktivieren Sie PHP 7.2 FPM in Apache2:
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
Update 2: Apache lädt die .php-Datei herunter, anstatt sie zu rendern
Danach stand ich vor dem obigen Problem. Es gibt ähnliche Fragen wie diese .
Ich weiß nicht warum, aber es ist nur für meine .php-Dateien im
/var/www/html/
Stammordner passiert . Für Unterverzeichnisse war alles in Ordnung. (Zum Beispiel WordPress und PHpmyadmin funktionierten gut)Hier ist meine Lösung. Ich entschied mich, PHP-Modul zu aktivieren. Also habe ich diesen Befehl ausgeführt:
a2enmod php7.2
aber ich habe diese Fehler bekommen:
Deshalb habe ich beschlossen, mpm durch Ausführen der folgenden Befehle zu deaktivieren:
Starten Sie dann Apache neu:
systemctl restart apache2
dann aktiviere php7.2 (meine installierte version):
sudo a2enmod php7.2
und im Moment funktioniert alles gut.
quelle
Eine andere mögliche Ursache für dieses Problem könnte sein, dass Sie versuchen, das Skript in einem "Benutzerverzeichnis" vom
UserDir
Modul aus auszuführen . Das Ausführen von PHP-Skripten in Benutzerverzeichnissen ist standardmäßig deaktiviert. Dieses Problem tritt auf, wenn sich das Skript impublic_html
Verzeichnis in Ihrem Basisordner befindet und Sie versuchen, von dort aus darauf zuzugreifenhttp://localhost/~your_username
.Um dies zu beheben, öffnen Sie
/etc/apache2/mods-enabled/php7.2.conf
. Sie müssen den Tag-Block unten, der lautet, kommentieren oder löschenquelle
Die Datei, die Sie in / var / www / html / ablegen, sollte .php haben, zum Beispiel example.php. Wenn es sich um ein Beispiel handelt, funktioniert es nicht, aber wenn Sie es in example.php ändern, funktioniert es.
quelle