为了在系统中同时运行PHP4和PHP5,我们首先需要安装同时支持两个版本的Web服务器,如Apache或Nginx。此外,我们还需要安装PHP4和PHP5的两个版本,其中每个版本在不同的目录中。
下面是在Linux系统上通过Apache实现PHP4和PHP5共存的详细步骤:
-
确定系统PHP的安装目录,假设路径为
/usr/local/php/
。 -
从PHP的官方网站下载PHP4和PHP5,分别解压到不同的目录。
例如,解压PHP4到/usr/local/php4/
,PHP5到/usr/local/php5/
。
- 配置Apache的虚拟主机。
在Apache的配置文件httpd.conf
中添加以下内容,用于配置两个不同版本的PHP:
# PHP 4
AddType application/x-httpd-php .php4
Action application/x-httpd-php "/php4/php-cgi"
# PHP 5
AddType application/x-httpd-php .php5
Action application/x-httpd-php "/php5/php-cgi"
- 创建以
.htaccess
开头的文件来设置虚拟主机目录的PHP版本。
例如,如果您有一个名为example.com
的虚拟主机,则可以在虚拟主机目录/var/www/example.com
下创建.htaccess
文件,并添加以下内容:
# 使用PHP5
AddHandler application/x-httpd-php5 .php
# 使用PHP4
# AddHandler application/x-httpd-php4 .php
在本例中,通过注释掉AddHandler application/x-httpd-php4 .php
,PHP 5将成为默认版本。如果您希望使用PHP4,则可以注释掉第一个AddHandler行,取消注释第二个AddHandler行。
- 启动Apache,并测试是否可以在同一系统上运行PHP4和PHP5。
例如,可以创建包含以下内容的测试代码:
PHP4版本:
<?php4
phpinfo();
?>
PHP5版本:
<?php
phpinfo();
?>
将这些代码放入虚拟主机的目录中,然后在Web浏览器中访问它们,确保每个版本的PHP都可以正常运行。
示例1:
假设我们的虚拟主机路径为/var/www/example.com
,我们要使example.com/info.php
使用PHP5,example.com/info4.php
使用PHP4。
首先,我们需要在Apache配置文件中添加以下内容:
# PHP 4
AddType application/x-httpd-php .php4
Action application/x-httpd-php "/php4/php-cgi"
# PHP 5
AddType application/x-httpd-php .php5
Action application/x-httpd-php "/php5/php-cgi"
然后,在虚拟主机目录/var/www/example.com
下创建.htaccess
文件,并添加以下内容:
# 使用PHP5
AddHandler application/x-httpd-php5 .php5
# 使用PHP4
AddHandler application/x-httpd-php4 .php4
最后,我们可以创建info.php
和info4.php
文件:
# info.php
<?php
phpinfo();
?>
# info4.php
<?php4
phpinfo();
?>
现在,在浏览器中访问example.com/info.php
和example.com/info4.php
,应该会分别显示PHP5和PHP4的phpinfo()信息。
示例2:
假设我们已经将PHP4和PHP5安装到/usr/local/php4/
和/usr/local/php5/
目录中,我们要设置example.com
虚拟主机使用PHP4,而example.net
虚拟主机使用PHP5。
首先,在Apache的配置文件中添加以下内容:
# PHP 4
AddType application/x-httpd-php .php4
Action application/x-httpd-php "/php4/php-cgi"
# PHP 5
AddType application/x-httpd-php .php5
Action application/x-httpd-php "/php5/php-cgi"
然后,在/etc/apache2/sites-available/
目录中创建example.com.conf
和example.net.conf
文件,分别添加以下内容:
# example.com.conf
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<FilesMatch \.php4$>
SetHandler application/x-httpd-php4
</FilesMatch>
</VirtualHost>
# example.net.conf
<VirtualHost *:80>
ServerName example.net
DocumentRoot /var/www/example.net
<Directory /var/www/example.net>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<FilesMatch \.php5$>
SetHandler application/x-httpd-php5
</FilesMatch>
</VirtualHost>
请注意,example.com.conf
中使用PHP4,而example.net.conf
中使用PHP5。此外,FilesMatch
指令确保只有以.php4
和.php5
结尾的文件会使用相应的PHP版本。
最后,创建/var/www/example.com
和/var/www/example.net
目录,并在其中添加相应的代码文件。
例如,/var/www/example.com/info.php4
和/var/www/example.net/info.php5
文件如下:
# info.php4
<?php4
phpinfo();
?>
# info.php5
<?php
phpinfo();
?>
现在,在浏览器中分别访问http://example.com/info.php4
和http://example.net/info.php5
,应该会分别显示PHP4和PHP5的phpinfo()信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP4和PHP5共存于一系统 - Python技术站