PHP代码没有被执行,而是代码显示在页面上
我试图在项目上执行一些PHP代码(使用Dreamweaver),但代码没有运行。
当我检查源代码时,PHP代码显示为HTML标签(我可以在源代码中看到它)。 Apache运行正常(我正在使用XAMPP),PHP页面正在正确打开,但PHP代码没有被执行。
有人对发生的事情有什么build议吗?
注:该文件已被命名为filename.php
编辑:代码..:
<? include_once("/code/configs.php"); ?>
听起来你的configuration有问题,这里有几件事你可以检查:
-
确保PHP已经安装并正确运行。 这可能听起来很愚蠢,但你永远不知道。 一个简单的方法来检查是从命令行运行
php -v
,看看是否返回版本信息或任何错误。 -
确保PHP模块在Apache的httpd.conf 文件中被列出和取消注释 。这应该与文件中的
LoadModule php5_module "c:/php/php5apache2_2.dll"
类似。 searchLoadModule php
,并确保它前面没有注释(;
)。 -
确保Apache的httpd.conf文件具有PHP MIMEtypes。 这应该是像
AddType application/x-httpd-php .php
。 这告诉Apache以PHP运行.php
文件。 searchAddType,然后确保有一个用于PHP的条目, 并且取消注释 。 -
确保你的文件具有
.php
扩展名,或者在#3的MIME定义中指定的任何扩展名,否则它将不会被执行为PHP。 -
确保你没有在PHP文件中使用短标签 (
<?
),默认情况下这些标签在所有的服务器上都没有启用,并且不鼓励使用它们。 使用<?php
代替(或者在你的php.ini中使用short_open_tag=On
来启用短标签,如果你有代码依赖于它们的话)。 -
确保你通过你的networking服务器访问你的文件,使用像
http://localhost/file.php
这样的URL,而不是通过本地文件访问file://localhost/www/file.php
最后检查PHP手册以获取更多设置提示 。
我在Ubuntu上运行Apache,我的问题是/etc/apache2/mods-available/php5.conf
文件丢失了:
<FilesMatch ".+\.ph(p[345]?|t|tml)$"> SetHandler application/x-httpd-php </FilesMatch>
我加了回来,PHP正确parsingPHP文件。
我发现了另一个问题导致这个问题,并已经解决了。 我不小心将脚本保存为UTF-16
编码。 看来,PHP5默认情况下不能识别16位编码的<?php
标签。
我发布这个答案是因为我的Virtualmin / Webminpipe理界面决定禁用我的PHP引擎是一个好主意..花了一段时间find解决scheme,所以我想我会分享给你们:
此外,一定要检查你的网站configuration文件没有关系到这个特定的主机或虚拟主机有任何php_admin_value的closuresPHP,像这样:
php_admin_value engine Off
如有疑问,请发表评论…
# php_admin_value engine Off
并重新启动您的networking服务器
注意php 7用户,把它添加到你的httpd.conf文件中:
# 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>
天啊! 我刚刚看到你的张贴图像,你只是打开你的PHP文件到浏览器。 你已经打开使用本地主机的URL。 如果你直接从你的目录中打开一个文件,那么在任何情况下都不会执行php代码。
使用: http://locahost/index.php
或http:127.0.0.1/index.php
在你的情况下启用PHP短代码,你正在使用<?
这是PHP的短代码<?php
默认情况下,PHP短代码被禁用。
也可以使用: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
如果你是一个Ubuntu用户。
php7:
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.0-fpm sudo service apache2 restart
我知道这听起来很愚蠢,但很less发生。
检查你是否试图执行PHP从
**http://localhost/info.php**
而不是从
file:///var/www/info.php
ps>你可以注意到,如果你从shell写入
php info.php
它与代码的答案(这意味着PHP的function)..
我已经通过卸载XAMPP和安装WAMP来解决这个问题。 谢谢您的帮助。
我有类似的问题,但在我的情况下解决scheme是不同的。 我的文件,持有PHP代码被称为“somename.html”更改为“somename.php”工作正常
检查你已经安装了所有使用PHP的软件包:yum list installed | grep remi
安装所有相关的PHP软件包,尤其是php-devel。
在我的Ubuntu 14.04,apache 2.4,php 5.5.9安装,我尝试了/ var / www / html(默认文档根)上的sample.php,它工作正常。 所以问题出在我的虚拟服务器configuration上。 解决方法是在包含.php的Directory def上包含这一行:
php_admin_flag engine on
这只是发生在我身上,随着服务器下载HTML文件,而不是处理。 我没有在电脑上使用networking服务器apache一段时间,同时Ubuntu更新了原来安装的LTS的两个版本。 现在它是
$ cat /etc/issue Ubuntu 16.04 LTS
所以PHP的工作后,像这样:
$ sudo apt-get install lamp-server^ $ sudo a2enmod php7.0 $ sudo service apache2 restart
networking服务器现在parsingphp。 也许现在需要更新一些网站,因为现在运行php7.0运行php5之前。 好吧。
我认为它显示代码而不是结果的问题是它不会去本地主机。 重新检查你进入的地址。你是去本地文件目录还是去本地主机。
从截图你发送它是要你的电脑不到本地主机。
“file:///”应该是“localhost /”
重新安装mcrypt
模块为我工作。
$sudo apt-get install php5-mcrypt $sudo php5enmod mcrypt
我有一个情况,我不小心开始在根目录下解压我的文件目录。 它从我的文件夹添加了.htaccess文件,将阻止所有的PHP
# If we know how to do it safely, disable the PHP engine entirely. <IfModule mod_php5.c> php_flag engine off </IfModule>
底线检查根上的.htaccess文件。
这是在我的.htaccess
DirectoryIndex index.html index.htm
index.html包含PHP代码。 默认情况下,PHP不会像PHP代码那样处理扩展名为htm *的文件。
您可以通过将以下内容添加到.htaccess中来覆盖此内容:
<FilesMatch ".+\.html$"> SetHandler application/x-httpd-php </FilesMatch>
对于运行php 7的LAMP的全新设置,请编辑/etc/httpd/conf/httpd.conf文件注意:在更改任何内容之前,请确保对其进行备份。
将其粘贴在文件的最底部:
<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>
然后,searchLoadModule并粘贴以下行:
LoadModule php7_module modules/libphp7.so
这一行将简单地要求httpd加载php 7模块
然后重新启动httpd