Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的php标签会转换成html注释?_Php_Apache_.htaccess_Configuration_Lamp - Fatal编程技术网

为什么我的php标签会转换成html注释?

为什么我的php标签会转换成html注释?,php,apache,.htaccess,configuration,lamp,Php,Apache,.htaccess,Configuration,Lamp,朋友的灯主机似乎配置错误。我尝试执行php,但它似乎不起作用 在Chrome的检查元件中: <?php echo 'test'; ?> 听起来您的PHP没有正确配置或安装在lamp配置中。您使用的是什么分发?这可能很简单,只需运行命令重新安装PHP,否则您可能需要使用PHP支持编译apache。听起来您使用的编辑器正在更改输入内容。确保文件中所需的内容与文件中实际的内容相同。使用FTP上载php文件应确保这一点。正确配置php操作的地方是httpd.conf文件,它位于Apach

朋友的灯主机似乎配置错误。我尝试执行php,但它似乎不起作用

在Chrome的检查元件中:

<?php echo 'test'; ?> 

听起来您的PHP没有正确配置或安装在lamp配置中。您使用的是什么分发?这可能很简单,只需运行命令重新安装PHP,否则您可能需要使用PHP支持编译apache。

听起来您使用的编辑器正在更改输入内容。确保文件中所需的内容与文件中实际的内容相同。使用FTP上载php文件应确保这一点。

正确配置php操作的地方是
httpd.conf
文件,它位于Apache安装目录的
conf
子目录中

在这里,您将要查找模块加载部分,这将是一组以
LoadModule
开头的行。在其中的某个地方,您应该有以下内容(或非常类似的内容):

我对Linux不太熟悉,但在Windows(WAMP)安装中,这些内容大致如下:

LoadModule php5_module "c:/program files/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/program files/php"
我机器上的
httpd.conf
文件位于
C:\Program Files\Apache Group\Apache2\conf\httpd.conf

也可能是PHP根本没有安装在您的机器上,在这种情况下,您必须下载并安装它。Brad已经在他的一条评论中发布了相关链接,(+1,顺便说一句,Brad),但是为了把所有东西都放在一个位置:


你的Chrome在骗你

您的PHP源文件是
。由于未执行PHP,因此将此文件发送到浏览器。如果浏览器应该解释此文本,它将偶然发现
标记。它们有一个含义——它们是“XML处理指令”,开头角度后的文本定义了目标

显然,浏览器不知道名为“PHP”的目标,因此忽略此文本

然后element inspector试图显示DOM并对原始源代码撒谎,因为他正在处理解析后的源代码-这很好,因为您通常想知道浏览器对哪些数据进行操作,这包括浏览器如何解释源代码

但是,如果出现任何错误,浏览器将尝试修复该错误,并且该修复将包含在图元检查器中


显然,修复未知XML处理指令的方法是通过注释将其禁用。

当我不小心试图通过
文件://
协议而不是通过安装的站点在服务器上的浏览器中测试本地php文件时,我遇到了完全相同的问题

所以答案是:“PHP先生离开了大楼”。我们需要检查配置、文件位置或访问权限


浏览器只是试图修复网页并帮助我们。

我刚刚解决了同样的问题。 您需要从WAMP打开文件,而不是从硬盘直接打开文件

在浏览器中,放入:
localhost/…../yourfile.php

否则,您的浏览器将替换所有

中,这件事正好发生在我身上。事实证明,我忘记了将文件类型从.html更改为.php

如果您将代码放在标准目录之外(在我的例子中是开发场景),那么您应该在php5.conf(对于ubuntu)中检查/etc/apache2/mod enabled或/etc/apache2/mod,并注释注释中指出的行:

# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_value engine Off
    </Directory>
</IfModule>
#要在用户目录中重新启用PHP,请注释以下几行
#(从到)不要将其设置为打开,因为
#防止.htaccess文件禁用它。
php_管理_值引擎关闭

似乎您必须明确指示apache将html文件作为php文件处理,我也遇到了同样的问题,但将文件重命名为.php为我解决了这个问题

这个答案不适用于OP这个问题的具体变体,但我有一个基本的相同问题——
被转换成
——我可以通过在Ubuntu系统上启用
short\u open\u tag
来解决这个问题。

在Ubuntu系统上安装apache php5插件对我来说很有效:

sudo apt-get install libapache2-mod-php5
sudo service apache2 restart

我有时也会遇到同样的问题,可能你文件的扩展名是“html”。
将其更改为“php”就可以了。

为什么您可以首先在chrome中检查
(如果php正在运行的话)?如果不查看配置的相关部分,很难为您提供帮助。您在哪里加载PHP模块,或者通过CGI执行它?那么,如果php没有读取.php文件,那么为什么要强制php读取.php文件呢?它可能还没有安装。我添加的最后一个类型和AddHandler for php,服务器不理解它下载了文件,这就是原因。@Matthew,他的问题的关键是php没有运行。好吧,我可以这么做。不过,老实说,为什么PHP不运行你的脚本呢?嗯,老实说,我不知道这个问题的答案。我从来没有做过这样的事情。我想应该有更多的探索/学习。“使用PHP支持编译Apache”。。。什么?我会完全删除AddHandler,它们听起来不必要,可能是导致问题的原因。有没有。。。只是把它放在问题里,让人们看到我在尝试,而不是建议我已经做过的事情tried@brad取决于Linux主机。。。例如:gentoo在编译apache时需要添加php支持。(他确实说过LAMP,不是吗?):P.扎克:如果你想在windows平台上玩PHP/Apache,你可以下载一个WAMP版本。此时,您当前的服务器配置似乎不知道是否安装了PHP。不,服务器上的文件已上载。我想也许我只是这么做了,这不是我的经验。也可以尝试“查看页面源代码”。嗯,代码在“查看源代码”中看起来“正确”。什么伊迪托
LoadModule php5_module "c:/program files/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/program files/php"
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_value engine Off
    </Directory>
</IfModule>
sudo apt-get install libapache2-mod-php5
sudo service apache2 restart