【问题标题】:Apache2 on Raspbian Jessie not executing php filesRaspbian Jessie 上的 Apache2 不执行 php 文件
【发布时间】:2017-10-21 13:14:47
【问题描述】:

我已经在我的 raspeberry pi 3 上安装了 apache2 和 php 5,使用如下:

apt-get -y install apache2
apt-get -y install php5 libapache2-mod-php5

当我通过 IP 地址将浏览器指向 pi 时,我得到“它可以工作”的 apache 页面,所以看起来一切都很好……直到我尝试通过 http://192.168.1.102/test.php 访问一个简单的 .php 文件。

测试 .php 看起来像这样:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php phpinfo(); ?> 
 </body>
</html>

如上所述,当我将浏览器指向该文件时,它会在文本编辑器中打开该文件,而不是执行它。

跑步 a2enmod php5 返回“模块 php5 已启用”

test.php 在 var/www/html

我查看了PHP code is not being executed, instead code shows on the page,答案并没有解决我的问题。主要是,最流行/相关的答案是我编辑 httpd.conf,它在我的安装中不存在。

以下是该帖子最受欢迎的答案的逐点注释:

  1. 确保 PHP 已正确安装并运行。这可能听起来很傻,但你永远不会知道。一个简单的检查方法是从命令行运行 php -v 并查看是否返回版本信息或任何错误。
pi@raspberrypi:/ $ php -v
PHP 5.6.30-0+deb8u1 (cli) (built: Apr 14 2017 16:20:58) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
  1. 确保 PHP 模块在 Apache 的 httpd.conf 中已列出且未注释。这应该类似于文件中的 LoadModule php5_module "c:/php/php5apache2_2.dll"。搜索LoadModule php,确保前面没有注释(;)。

在目录/etc/apache2下,在文件apache2.conf中:

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

在/etc/apache2/mods-enabled目录下,文件php5.load中:

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
  1. 确保 Apache 的 httpd.conf 文件中包含 PHP MIME 类型。这应该类似于 AddType application/x-httpd-php .php。这告诉 Apache 将 .php 文件作为 PHP 运行。搜索 AddType,然后确保有一个 PHP 条目,并且它没有被注释。

在/ect/apache2/mods-enabled目录下,文件php5.conf中:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
  1. 确保您的文件具有 .php 扩展名,或者在第 3 点 MIME 定义中指定的任何扩展名,否则它将不会作为 PHP 执行。

确实如此。

  1. 确保您没有在 PHP 文件中使用短标签 (&lt;?),默认情况下,这些标签已弃用,并非在所有服务器上启用。请改用&lt;?php(或者如果您有依赖它们的代码,则使用short_open_tag=On 在您的php.ini 中启用短标签)。

仔细检查了这个。

  1. 确保您通过网络服务器访问您的文件,使用像http://localhost/file.php 这样的 URL,而不是通过本地文件访问 file://localhost/www/file.php

我正在使用 http 访问。尝试了本地(同一台计算机)和远程(我网络上的计算机),结果相同。

不确定还有哪些其他信息值得关注,但我在网上搜索了所有信息,但无法找到可行的解决方案(大多数情况下会按照上述方式进行安装)。我什至完全清除并重新安装。

提前感谢您的帮助。

【问题讨论】:

标签: php debian apache2


【解决方案1】:

好的,终于明白了!

事实证明,在不同的演变过程中,我儿子安装了 nginx。所以这就是正在运行的。删除 nginx 解决了这个问题。结果我试图弄清楚为什么 Apache 没有按照我的预期做,但不是 apache tat 正在为网站服务!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多