PHP4和PHP5共存于一系统

yizhihongxing

为了在系统中同时运行PHP4和PHP5,我们首先需要安装同时支持两个版本的Web服务器,如Apache或Nginx。此外,我们还需要安装PHP4和PHP5的两个版本,其中每个版本在不同的目录中。

下面是在Linux系统上通过Apache实现PHP4和PHP5共存的详细步骤:

  1. 确定系统PHP的安装目录,假设路径为/usr/local/php/

  2. 从PHP的官方网站下载PHP4和PHP5,分别解压到不同的目录。

例如,解压PHP4到/usr/local/php4/,PHP5到/usr/local/php5/

  1. 配置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"
  1. 创建以.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行。

  1. 启动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.phpinfo4.php文件:

# info.php
<?php
phpinfo();
?>

# info4.php
<?php4
phpinfo();
?>

现在,在浏览器中访问example.com/info.phpexample.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.confexample.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.php4http://example.net/info.php5,应该会分别显示PHP4和PHP5的phpinfo()信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP4和PHP5共存于一系统 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月24日

相关文章

  • php实现网页上一页下一页翻页过程详解

    下面是关于“PHP实现网页上一页下一页翻页过程”的详细讲解和示例: 一、分页原理 在网站开发中,常常会遇到需要将一定数量的数据分页展示的情形。分页的过程就是将大量的数据分割为一页一页的数据,方便用户进行查看。下面是分页的原理: 1.首先需要获取总数据量,这个可以通过 SQL 语句中的 count() 函数来获取。 2.然后需要确定分页的页数和每页的数据量,这…

    PHP 2023年5月27日
    00
  • 解析PHP无限级分类方法及代码

    解析PHP无限级分类方法及代码 在网站开发中,分类列表是常见的需要处理的数据类型,其中涉及到无限级分类问题。在PHP语言中,常见的有两种方式实现无限级分类,分别为递归和非递归方法。 递归实现无限级分类 递归实现是常见的无限级分类方法,主要思路是从顶级分类开始,逐级遍历下一级分类,直到最底层的子分类全部遍历完。 下面是一个递归实现无限级分类的PHP代码示例: …

    PHP 2023年5月26日
    00
  • PHP 用数组降低程序的时间复杂度

    下面是PHP用数组降低程序时间复杂度的完整攻略: 1. 什么是时间复杂度? 时间复杂度是算法执行所需的时间,通常用 “O(n)” 表示,其中 n 是程序输入的规模或者说大小。时间复杂度可以用来衡量算法的效率,通常我们会尽可能降低时间复杂度。 2. 数组降低时间复杂度的原理 数组是一种数据结构,用于存储固定大小的元素序列。在编程过程中,使用数组可以降低时间复杂…

    PHP 2023年5月26日
    00
  • php中文字符串截取多种方法汇总

    来讲解一下“PHP中文字符串截取多种方法汇总”的攻略吧。 使用 mb_substr 函数截取中文字符串 使用 mb_substr 函数可以正确地截取含有中文的字符串,因为它是一个多字节字符串函数。 string mb_substr ( string $str , int $start [, int $length = NULL [, string $enco…

    PHP 2023年5月26日
    00
  • php 引用(&)详解

    PHP 引用(&)详解 在 PHP 中,赋值操作是将一个变量的值复制给另一个变量,而引用操作则是将一个变量的内存地址赋予给另一个变量,从而使得这个变量和原变量指向同一块内存地址,修改其中任意一个变量的值都会影响到在同一块内存地址中的另一个变量。 使用方法 在 PHP 中,我们可以通过在变量名前面添加 & 符号来将该变量赋值为引用。例如: $a…

    PHP 2023年5月23日
    00
  • PHP SFTP实现上传下载功能

    下面是详细讲解“PHP SFTP实现上传下载功能”的完整攻略。 什么是SFTP SFTP是Secure File Transfer Protocol的缩写,它是一种安全的FTP传输协议,可以保护文件传输过程中的安全性。 SFTP与普通的FTP协议不同的是,它是基于SSH协议的,使用SSH协议的加密和验证机制对数据进行加密和保护,确保数据的安全性。 SFTP的…

    PHP 2023年5月26日
    00
  • PHP 获取远程网页内容的代码(fopen,curl已测)

    针对“PHP 获取远程网页内容的代码(fopen,curl已测)”这个话题,以下是详细的攻略: 使用 fopen 函数获取远程网页内容 要使用 fopen 函数获取远程网页内容,需要对服务器的 php.ini 文件做相应的配置:将 allow_url_fopen 选项设置为 On。如果服务器没有设置,可以使用以下代码手动设置: ini_set(‘allow_…

    PHP 2023年5月24日
    00
  • PHP+MYSQL的文章管理系统(二)

    首先我会先对“PHP+MYSQL的文章管理系统(二)”这篇文章进行简单的介绍,然后详细讲解其中的主要内容。 这篇文章主要是关于使用PHP和MYSQL搭建文章管理系统的教程,其中涵盖了系统的设计和功能实现,主要分为以下几个部分: 1.数据库设计和表结构 2.界面设计和前端代码实现 3.后台管理系统的搭建和后端PHP代码实现 4.系统功能实现和操作演示 接下来我…

    PHP 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部