Raspbian Jessie上的Apache2没有执行php文件

时间:2017-05-22 01:23:21

标签: php debian apache2

我已经使用以下内容在我的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 返回&#34;模块php5已启用&#34;

test.php在var / www / html

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

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

  
      
  1. 确保PHP已正确安装并运行。这可能听起来很傻,但你永远不会知道。一种简单的检查方法是从命令行运行php -v,看看是否返回版本信息或任何错误。
  2.   
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. 确保在Apache的httpd.conf中列出并取消注释PHP模块这应该类似于LoadModule php5_module&#34; c:/php/php5apache2_2.dll"在文件中。搜索LoadModule php,并确保前面没有注释(;)。
  2.   

在目录/ 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条目,并且它已取消注释。
  2.   

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

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

他们这样做。

  
      
  1. 确保您没有在PHP文件中使用短标签(<?),默认情况下不会在所有服务器上启用这些标签。请改用<?php(如果您的代码依赖于它们,则使用short_open_tag = On启用php.ini中的短标记。)
  2.   

仔细检查了这一点。

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

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

不确定其他哪些信息是有意义的,但我已经在网上搜索过但无法找到有效的解决方案(大部分都会按照上面的说法重新安装)。我甚至完全清除并重新安装。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,终于搞清楚了!

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