PHP代码没有被执行,而是代码显示在页面上

我试图在项目上执行一些PHP代码(使用Dreamweaver),但代码没有运行。

当我检查源代码时,PHP代码显示为HTML标签(我可以在源代码中看到它)。 Apache运行正常(我正在使用XAMPP),PHP页面正在正确打开,但PHP代码没有被执行。

有人对发生的事情有什么build议吗?

注:该文件已被命名为filename.php

编辑:代码..:

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

打印

听起来你的configuration有问题,这里有几件事你可以检查:

  1. 确保PHP已经安装并正确运行。 这可能听起来很愚蠢,但你永远不知道。 一个简单的方法来检查是从命令行运行php -v ,看看是否返回版本信息或任何错误。

  2. 确保PHP模块在Apache的httpd.conf 文件中被列出和取消注释 。这应该与文件中的LoadModule php5_module "c:/php/php5apache2_2.dll"类似。 searchLoadModule php ,并确保它前面没有注释( ; )。

  3. 确保Apache的httpd.conf文件具有PHP MIMEtypes。 这应该是像AddType application/x-httpd-php .php 。 这告诉Apache以PHP运行.php文件。 searchAddType,然后确保有一个用于PHP的条目, 并且取消注释

  4. 确保你的文件具有.php扩展名,或者在#3的MIME定义中指定的任何扩展名,否则它将不会被执行为PHP。

  5. 确保你没有在PHP文件中使用短标签 ( <? ),默认情况下这些标签在所有的服务器上没有启用,并且不鼓励使用它们。 使用<?php代替(或者在你的php.ini中使用short_open_tag=On来启用短标签,如果你有代码依赖于它们的话)。

  6. 确保你通过你的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.phphttp: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