2013-06-19 141 views
0

我在升级生产服务器上的mediawiki的老版本之前设置了测试服务器。我正在尝试复制生产服务器上的内容--apache2.4和php5.3。apache2.4 build not finding 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 

我无法找到任何形式的无论是在一个mod_php的一个参考httpd.conf或安装httpd的目录(/ usr/local/apache2)。

网上的一些参考文献提到了“modules-available”和“modules-enabled”,但这些似乎是Debian添加的一种便利,而不是Apache源代码的一部分。

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

回答

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 
+0

我没有这样的模块,正如我所说,无法通过谷歌或我的发行包安装程序找到它。我的httpd.conf文件有数十个模块列出,但没有用于PHP。也许这是我错过的一个编译选项? – mickeyf

+0

@mickeyf根据这个:http://www.howtogeek.com/howto/ubuntu/installing-php5-and-apache-on-ubuntu/,模块必须在libapache2-mod-php5 – user4035

+0

@mickeyf Plus http: //pkgs.org/search/?keyword=apache+php5这给了我一个包的日志,包括Ubuntu。 – user4035

1

搜索和使用包从几个仓库的Apache和PHP,并试图建立一个或两个从源代码后,我决定,似乎没有成为一个libphp5.so西澳与apache 2.4兼容。无论如何,我没有找到它。

我重新配置了所有使用php作为cgi而不是作为模块,并且以这种方式工作,这足以满足我的预期目的。