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");
?>
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 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.
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.
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 .
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.
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).
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 .
php7:
Sudo a2enmod proxy_fcgi setenvif
Sudo a2enconf php7.0-fpm
Sudo service Apache2 restart
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.
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>
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.
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.
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.
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) ..
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.
Ich habe dieses Problem gelöst, indem ich XAMPP deinstalliert und WAMP installiert habe. Danke für die Hilfe.
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
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:
Kommentieren Sie diese Zeile aus
LoadModule php7_module libexec/Apache2/libphp7.so
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>
Ü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.
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
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
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.
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>
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.
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.
Die Neuinstallation des Moduls mcrypt
hat bei mir funktioniert.
$Sudo apt-get install php5-mcrypt
$Sudo php5enmod mcrypt
Fügen Sie Ihrer httpd.conf-Datei AddType application/x-httpd-php .php
hinzu, wenn Sie Apache 2.4 verwenden
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.
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
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
die Datei, die Sie in/var/www/html/ablegen, sollte beispielsweise .php haben.