如何配置Apache 2.x来评估PHP而不是将其作为HTML提供?

时间:2016-02-18 02:19:00

标签: php apache ubuntu-14.04

我想使用这个tech-combo提供php文件:

  • ubuntu 14.04 LTS
  • apache 2.4.18
  • php 7.0.3

我使用shell命令configure和make从源代码安装了apache和php。

安装进展顺利。

我在这里安装了apache:

~/apache/

我在这里安装了php:

~/php/

php安装在apache树中放置了一个共享库:

-rwxr-xr-x  1 dan dan 29175263 Feb 18 01:14 libphp7.so

以上文件位于此文件夹中:

~/apache/modules/

另外php安装编辑:

~/apache/conf/httpd.conf

我在那里看到这个条目:

LoadModule php7_module        modules/libphp7.so

我编辑了httpd.conf来收听

0.0.0.0:3080

我使用

启动了apache服务器
~/apache/bin/apachectl start

它可以提供html文件没问题。

我在php.net上尝试了第一个演示:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?> 
 </body>
</html>

我将语法放在:

~/apache/htdocs/php10.php

当我用curl获取php10.php时,我看到了:

dan@nia111:~ $ 
dan@nia111:~ $ curl 0.0.0.0:3080/php10.php
<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?> 
 </body>
</html>
dan@nia111:~ $ 
dan@nia111:~ $ 

这是一个明显的故障。

我应该看到这个:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <p>Hello World</p>
 </body>
</html>

问题:

如何调试我的tech-combo,以便Apache在我的php文件中评估php-syntax而不是将其作为纯HTML提供?

我放了

的副本
~/apache/

~/php/ 

在github上,这样你就可以学习我的配置了:

https://github.com/danbikle/php_broken

1 个答案:

答案 0 :(得分:0)

您需要告诉Apache应该将哪些文件解析为PHP。一种方法是使用此指令:

<FilesMatch "\.ph(p3?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

这告诉Apache将* .php,* .php3和* .phtml解析为PHP,但你可以使用任何扩展名。