为什么我的php文件显示为纯文本?

iam*_*esy 72 php apache

我一直在使用php编写php应用程序一段时间.现在我在我的工作PC上分别安装PHP和apache.我已经安装了PHP 5和最新的apache.我去localhost看看它有效!现在我添加一个名为test.php的文件,显示:

<?php
    phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

但在浏览器中它只显示纯文本.有没有我明确告诉它使用PHP5的地方?

非常感谢

dav*_*dav 76

你应该为apache安装php5 lib

对于debian和ubuntu: __CODE__

并重新启动apache __CODE__

  • 对于php7 apt-get install libapache2-mod-php7.0 (21认同)
  • 现在还有适用于7.2.3的apt-get install libapache2-mod-php7.2 (4认同)
  • libapache2-mod-php将安装libapache2-mod-php7.0.我们不需要为php7明确指定版本 (3认同)
  • sudo apt-get install libapache2-mod-php *用于php7种版本,无需5即可自动安装 (2认同)

Kri*_*ris 72

您需要将其添加到服务器配置中:

AddType application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)

假设您已经正确安装了php,这可能不是这种情况,因为它在安装后通常不会立即生效.

完全有可能你还必须使用php指令(通常在LoadModule)将php so/dll添加到你的apache配置中


Pis*_*3.0 13

您需要配置Apache(Web服务器)以PHP脚本的形式处理PHP脚本.检查Apache的配置,您需要加载模块(系统上的路径可能不同):

LoadModule php5_module "c:/php/php5apache.dll"
Run Code Online (Sandbox Code Playgroud)

你还需要告诉Apache使用PHP处理什么:

AddType application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档.


Rom*_*iev 13

另一个原因(不是这种情况,但可能会为某些人节省一些神经)是在PHP 5.5 <? phpinfo(); ?>默认情况下禁用短开标签.所以php解释器会将短标签中的代码作为纯文本处理.在以前的版本中,php默认启用此功能.所以新行为可能有点神秘.


小智 6

您可能也像我一样在安装Apache之前安装了php-cgi,当这样做时它没有正确设置Apache来运行PHP,完全删除PHP并重新安装似乎解决了我的问题.


小智 6

您需要在 Apache 中添加处理程序来处理 php 代码。

通过命令 sudo vi /etc/httpd/conf/httpd.conf 编辑

添加这两个处理程序

  AddType application/x-httpd-php .php
  AddType application/x-httpd-php .php3
Run Code Online (Sandbox Code Playgroud)

在下面指定的位置

<IfModule mime_module>

 AddType application/x-compress .Z
 AddType application/x-gzip .gz .tgz

--Add Here--


</IfModule>
Run Code Online (Sandbox Code Playgroud)

有关 AddType 处理程序的更多详细信息

http://httpd.apache.org/docs/2.2/mod/mod_mime.html