10

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

在 Chrome 的检查元素中:

<?php echo 'test'; ?> 

变成:

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

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

我在一个.htaccess文件中尝试了各种代码,但似乎没有任何效果:

AddType x-mapp-php5 .php
AddType application/x-httpd-php .php
AddHandler x-mapp-php5 .php
4

12 回答 12

9

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

在那里,您需要查找模块加载部分,这将是一堆以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,在这种情况下,您必须下载并安装它。布拉德已经在他的一条评论中发布了相关链接(+1,顺便说一句,布拉德),但为了将所有内容集中在一个地方:

PHP:安装和配置 - 手册

于 2012-10-10T22:38:48.413 回答
7

你的 Chrome 在骗你。

您的 PHP 源文件是<?php echo 'test'; ?>. 因为 PHP 没有被执行,所以这个文件被发送到浏览器。如果浏览器应该解释这个文本,它会偶然发现这些<? ?>标记。它们有一个含义——它们是“XML 处理指令”,打开角度之后的文本定义了目标。

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

然后元素检查器尝试显示 DOM 并在原始源代码上撒谎,因为他正在处理 PARSED 源代码 - 这很好,因为您通常想知道浏览器对哪些数据进行操作,这包括浏览器如何解释了你的来源。

但是如果你犯了任何错误,浏览器会尝试修复它,并且修复包含在元素检查器中。

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

于 2012-10-11T19:26:58.890 回答
6

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

于 2013-09-30T16:48:41.357 回答
2

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

于 2012-10-10T20:56:41.327 回答
2

此答案不适用于 OP 的此问题的特定变体,但我遇到了基本相同的问题——<? var_dump($test); ?>被转换为<!--? var_dump($test); ?-->——我可以通过short_open_tagphp.ini中启用来解决。

于 2015-01-25T09:59:52.763 回答
1

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

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

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

于 2013-01-12T13:48:27.180 回答
1

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

# 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>
于 2014-03-25T19:47:06.380 回答
0

听起来您正在使用正在更改您输入的内容的编辑器。确保文件中的内容是文件中的实际内容。使用 FTP 上传 php 文件应该可以确保这一点。

于 2012-10-10T20:57:48.807 回答
0

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

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

否则,您的浏览器将全部替换<?php ?><!-- ?php ?-->

于 2013-03-23T21:24:15.310 回答
0

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

于 2014-04-10T07:46:09.237 回答
0

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

sudo apt-get install libapache2-mod-php5
sudo service apache2 restart
于 2015-07-12T13:14:41.727 回答
0

我有时也有同样的问题,可能你的文件的扩展名是“html”。把它改成“php”就OK了。

于 2019-03-11T09:38:04.283 回答