apache2.4 build没有找到php5.3

时间:2013-06-19 20:57:29

标签: php apache ubuntu-12.04

在升级生产服务器上的旧版mediawiki之前,我正在设置测试服务器。我试图复制生产服务器上的内容 - apache2.4和php5.3。

当我尝试访问任何php文件时,服务器将其显示为文本而不是运行它。

这一切都在Ubuntu 12.04 LTS上运行。可用的apache包是2.2版,所以我不能简单地使用apt-get。

我已经从源代码构建了apache 2.4,它正确地从我指定的DocumentRoot中提供了一个index.html。

在httpd.conf中,我添加了:

DocumentRoot = /var/www
AddType application/x-httpd-php .php
<filesMatch>"\.php$:"
   SetHandler application/x-httpd-php .php
</filesMatch>

我已经安装了php5.3,它正在运行 - 我可以从命令行运行phpinfo.php。

在/etc/php5/apache2/php.ini中我有(错误显示仅供测试):

engine = On
display_errors = On 
display_startup_errors = On 
doc_root = /var/www

我无法在httpd.conf或安装httpd的目录(/ usr / local / apache2)中找到对任何类型的mod_php的引用。

网上的一些参考文献提到“模块可用”和“模块启用”,但这些似乎是Debian添加的便利,而不是apache源代码构建的一部分。

我错过了什么?我确信这很简单。

2 个答案:

答案 0 :(得分:1)

在从几个存储库中搜索和使用apache和php的软件包,并尝试从源代码构建其中一个或两个之后,我确定似乎没有与apache 2.4兼容的libphp5.so。无论如何,我没有找到它。

我重新配置了所有使用php作为cgi而不是模块的东西,让事情按照这种方式运行,这足以达到我的预期目的。

答案 1 :(得分:0)

您需要在httpd.conf中加载php模块:

在我的Linux Slackware上,我在/etc/httpd/mod_php.conf中有这个

LoadModule php5_module lib/httpd/modules/libphp5.so

# Tell Apache to feed all *.php files through PHP.  If you'd like to
# parse PHP embedded in files with different extensions, comment out
# these lines and see the example below.
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

在/etc/httpd/httpd.conf中:

# php
Include /etc/httpd/mod_php.conf