为什么我的php标签转换为html评论?

问题描述 投票:7回答:12

朋友的灯主机似乎配置错​​误。我尝试执行php,但它似乎没有工作。

在Chrome的inspect元素中:

<?php echo 'test'; ?> 

成为:

<!--?php echo 'test'; ?-->

此外,它一直在触发文件下载,而不是将其作为网页打开。

我在.htaccess文件中尝试了各种代码,但似乎没有任何影响:

AddType x-mapp-php5 .php
AddType application/x-httpd-php .php
AddHandler x-mapp-php5 .php
php apache .htaccess configuration lamp
12个回答
8
投票

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

在那里,你会想要寻找模块加载部分,它将是一系列以LoadModule开头的行。在那里的某个地方,你应该有以下(或类似的东西):

LoadModule php5_module "location\of\your\php\installation"
AddType application/x-httpd-php .php
PHPIniDir "location\of\your\php\configuration\file"

我不太熟悉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,在这种情况下,您必须下载并安装它。布拉德已经在他的一条评论中发布了相关链接(顺便说一句,顺便说一句,布拉德),但是为了让一切都在一个地方:

PHP: Installation and Configuration - Manual


0
投票

看来你必须明确指示apache将html文件作为php文件处理,我遇到了同样的问题但是将文件重命名为.php为我解决了这个问题。


0
投票

在Ubuntu系统上,安装apache php5插件对我有用:

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

0
投票

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


5
投票

你的Chrome对你说谎。

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

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

然后元素检查器尝试显示DOM并且对原始源代码撒谎,因为他正在处理PARSED源 - 这很好,因为您通常想知道浏览器所处理的数据,这包括浏览器的方式解释你的来源。

但是,如果您出现任何错误,浏览器将尝试修复它,并且修复程序包含在元素检查器中。

显然,对未知XML处理指令的修复是通过将其注释掉来禁用它。


3
投票

这恰好发生在我身上。原来我忘记将文件类型从.html更改为.php


2
投票

听我说您的PHP未正确配置或安装在灯泡配置中。你使用什么发行版?它可能就像运行重新安装PHP的命令一样简单,否则您可能需要使用php支持编译apache。


1
投票

如果您将代码放在标准目录之外(在我的情况下是开发方案),您应该在php5.conf中检查/ etc / apache2 / mod-enabled或/ etc / apache2 / mod-available(对于ubuntu)和评论评论指出的行:

# 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>

1
投票

这个答案不适用于OP这个问题的具体变体,但我有基本相同的问题 - <? var_dump($test); ?>被转换为<!--? var_dump($test); ?--> - 我可以通过在short_open_tag启用php.ini来解决。


0
投票

听起来你正在使用一个改变你输入内容的编辑器。确保文件中的内容与文件中的内容完全相同。使用FTP上传php文件应该确保这一点。


0
投票

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

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

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


0
投票

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

在您的浏览器中,输入:localhost/...../yourfile.php

否则,您的浏览器将用<?php ?>替换所有<!-- ?php ?-->

© www.soinside.com 2019 - 2024. All rights reserved.