运行Apache2与PHP5和PHP4在同一时间
版本1.0
作者:Falko Timme
最后编辑:02/07/2006
本教程将介绍如何同时启用PHP5和PHP4来安装和配置Apache2。 因为不可能运行PHP5和PHP4作为Apache模块,所以我们必须运行其中一个作为CGI,另一个作为Apache模块。 在本文中,我将使用PHP5作为Apache模块和PHP4作为CGI,我将描述Linux发行版Debian Sarge(3.1)和Ubuntu 5.10(Breezy Badger)的设置 。
我想先说说这不是建立这样一个系统的唯一途径。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1安装Debian Sarge(3.1)
首先,您必须至少有一个基本的Debian安装工作,如Debian Sarge的“完美安装”教程前两页所述,youcl: //www.youcl.com/perfect_setup_debian_sarge和
由于PHP5在官方Debian Sarge存储库中不可用,因此我们必须向/etc/apt/sources.list添加另一个存储库( packages.dotdeb.org )。 添加这两行:
deb http://packages.dotdeb.org stable all |
到/etc/apt/sources.list (我的看起来像这样:
deb http://ftp2.de.debian.org/debian/ stable main |
)并运行
apt-get更新
之后。
现在我们可以安装Apache2以及Apache2-PHP5模块和PHP4-CGI:
apt-get install apache2 apache2-doc
apt-get install libapache2-mod-php5 php4-cgi
接下来,我们可以在我们的服务器上安装我们需要的所有PHP5和PHP4模块,如下所示:
apt-get安装php5-curl php5-dev php5-gd php5-gmp php5-imap php5-ldap php5-mcrypt php5-mhash php5-ming php5-mysql php5-mysqli php5-odbc php5-pdo-mysql php5-pdo-sqlite php5-pear php5-pspell php5-snmp php5-sybase php5-tidy php4-curl php4-domxml php4-gd php4-gmp php4-imap php4-ldap php4-mcal php4-mcrypt php4-mhash php4-ming php4-mysql php4- odbc php4-pspell php4-recode php4-snmp php4-xslt php4-xdebug curl libwww-perl imagemagick (1行!)
编辑 /etc/apache2/apache2.conf 。 更改
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml |
至
DirectoryIndex index.html index.htm index.shtml index.cgi index.pl index.php index.php4 index.xhtml |
并添加这两行(在可以找到AddType和AddHandler指令的部分中):
AddHandler php-script .php4 |
这将确保扩展名为.php4的 PHP文件作为CGI执行。 扩展名为.php的 PHP文件将由Apache2-PHP5模块运行。
接下来,我们必须启用一些Apache模块,例如actions模块(否则我们不能运行PHP4作为CGI):
a2enmod动作
a2enmod ssl
a2enmod重写
a2enmod suexec
a2enmod包括
重新启动Apache,你完成了!
/etc/init.d/apache2重新启动
现在我们可以测试我们的安装:把两个文件, info.php和info.php4 ,具有相同的内容:
<?php |
进入/ var / www (这是Debian的Apache2的默认文件根目录),并尝试在浏览器中访问它们(如果服务器的IP地址为192.168.0.100 ,例如,您将键入http://192.168.0.100/info .php和http://192.168.0.100/info.php4 )。 您应该看到两个不同的PHP版本,一个作为Apache模块(PHP5)运行,另一个(PHP4)称为CGI:
info.php :
info.php4 :