10

我需要在需要 PHP 5.2 的遗留系统上做一些工作

我已经安装了 XAMP 1.7.3,但这个版本有 PHP 5.3。

由于这项工作我可能会在接下来的几个月里做几次,我正在考虑安装一个运行 PHP 5.2 的 XAMP 版本同时我参与了一些需要我使用 PHP 5.3 的工作,所以我只是无法卸载我当前的 XAMP 版本并安装使用 PHP 5.2 的版本

XAMPP 下载网站上,很明显,在安装任何 XAMPP 版本时,它都会删除以前的版本。我做了一些研究,但找不到解决这个问题的方法。

我设法在 /Applications/XAMPP/xamppfiles/bin/ 下找到 phpswitch,并使用它的列表操作向我显示我只安装了 PHP 5.3.1 并处于活动状态。我试图弄清楚如何使用 phpswitch 下载/安装/激活 PHP 5.2,但没有成功。

所以我正在寻找的是一种安装多个 XAMPP 或安装 PHP 5.2 并为 XAMPP 激活它的方法(通过 phpswitch 或其他方式)

4

7 回答 7

13

您可以安装 XAMPP 的并行版本 - 每个主要版本的 PHP 一个。只是不要同时运行两者。

将每个 XAMPP 实例安装在它自己的文件夹中。

我在一个名为的文件夹下执行此操作

XAMPPInstalls/XAMPP182-PHP54 /XAMPP183-PHP55/

在每个 XAMPP 文件夹中,您都会找到一个 .exe 来启动该特定 XAMPP 堆栈的控制器。我已经为它们创建了快捷方式,将它们重命名为“XAMPP182-ControlPanel”和“XAMPP183-ControlPanel”,并将它们放在我的桌面上。

当我需要在 PHP5.4 上运行本地站点时,我单击 XAMPP182-ControlPanel 并启动 Apache 和 MySQL 服务器。

当我需要将本地站点切换到 PHP5.5 时,我单击 XAMPP182-ControlPanel 并关闭 Apache 和 MySQL 服务器,然后单击 XAMPP182-ControlPanel 并启动该堆栈中的 Apache 和 MySQL 服务器。

这只需几秒钟。

此外,我使用“软链接”,以便在一个文件夹中为本地网站进行所有配置 - 然后创建一个“连接”(即,在每个 XAMPP 堆栈的 Apache 配置中复制自身的源文件夹)。

Marco Dings 在 Joomla! 中有一篇非常好的文章,名为“实用开发 2:工作环境”!社区杂志,介绍如何设置您的工作环境以运行多个本地 XAMPP 安装、使用“基于名称的托管”的多个本地网站,以及如何保持一切井井有条。

我没有完全使用 Ding 的设置——我已经进行了调整以使我的本地 Web 项目更加有条理和精简——但我的设置是基于 Ding 的方法。

注意:文章在 Joomla! Community Magazine 并非专门针对 Joomla!,因此您可以将此设置用于您正在处理的任何 PHP/Apache/MySQL 项目。

现在有很多方法可以做到这一点(例如使用 Oracle 的 VM Virtual Box),但除非您需要“完全”复制远程托管环境,否则这可能有点过头了。例如,如果您正在运行“专用主机”并希望密切复制专用主机的环境并尽可能接近地进行设置,那么您将使用 VM Virtual Box Set-Up - 这允许您运行多个 VM(即不同的设置),然后将确切的设置克隆到您的实时服务器。同样,如果您的大多数项目都将使用“共享托管”环境,那么您对设置没有太多控制权。

并行安装多个 XAMPP 实例要简单得多,您可以按照 Ding 的文章进行设置。它应该满足您的要求。

我提到了 Oracle VM VirtualBox,因为您至少应该知道它是一种选择。

于 2014-06-02T17:59:26.403 回答
1

您总是可以使用 VirtualBox(或类似的)来创建一个带有 5.2 的实例,然后当您完成旧工作时,只需转储 VB 实例,而不会对您当前的系统产生任何不良影响。

于 2012-09-19T19:02:19.900 回答
1

你有几个选择。要么使用虚拟盒来运行虚拟环境:一个使用 PHP 5.2,另一个使用 PHP 5.3。或者,如果您对安装 PHP 感到满意,您可以安装所需的各种 PHP 版本,并设置一个指向您当时要使用的版本的符号链接。

于 2012-09-19T19:12:23.667 回答
0

我对 Apache 或 PHP 一无所知,但我发现 MacPorts 有助于安装通常难以安装多个版本的软件的多个版本,例如 python 或 GCC。

port search php

表明 MacPorts 可以提供 PHP 5.2、5.3 和 5.4。此类安装被放入 /opt,因此它们将不理会任何其他 PHP 安装。

于 2012-09-19T19:00:14.740 回答
0

我们可以使用 Xampp-VM 进行多个 xampp 安装。我想为旧项目和新项目使用多个 php 版本,而无需更改或浪费我的配置时间。

所以如果你的 Xampp 已经安装好了。从这里安装新的 Xampp-VM

https://www.apachefriends.org/download.html

这将指导您如何设置 Xampp-Vm。

https://www.apachefriends.org/blog/new_xampp_20170628.html

于 2018-03-28T06:34:03.410 回答
0

以前的答案对我来说效果不佳,但是Apache Friends Forum 上有一个相当优雅的解决方案,尽管我花了一些时间才能让事情正常工作。一些亮点:

  • 通过安装多个版本的XAMPP,您可以获得各种版本的 PHP CGI 模块。也就是说,请记住,如果您运行多个安装程序,您的配置文件和数据库可能需要恢复,因此请进行相应的备份和计划。
  • 通过在你的文件中添加一个类似这样的块来确保这些 CGI 被允许做他们的事情httpd-xampp.conf(我把我的放在最后):

    <Directory "/Applications/XAMPP/xamppfiles/bin">
        Require all granted
        Options +ExecCGI
    </Directory>
    

    请记住,根据 XAMPP 使用的 Apache 版本,您的语法可能会有所不同

  • 现在在您的httpd.conf文件中找到此部分,并确保相应Include部分未注释,如下所示:

    # Virtual hosts
    Include etc/extra/httpd-vhosts.conf
    
  • 您现在可以在httpd-vhosts.conf文件中为要使用的每个 PHP 版本添加条目,如下所示:

    <VirtualHost test54.yourdomain.com:80>
        ServerName test54.yourdomain.com
        ....
        ScriptAlias /xampp-bin /Applications/XAMPP/xamppfiles/bin
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
        Action application/x-httpd-php /xampp-bin/php-cgi-5.4.31
        ....
    </VirtualHost>
    <VirtualHost test55.yourdomain.com:80>
        ServerName test55.yourdomain.com
        ....
        ScriptAlias /xampp-bin /Applications/XAMPP/xamppfiles/bin
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
        Action application/x-httpd-php /xampp-bin/php-cgi-5.5.35
        ....
    </VirtualHost>
    ....
    

    (在我使用的 XAMPP 版本中,该目录中也恰好有一个符号链接,bin名为 simple php-cgi,它指向最近安装的 CGI,我也为此添加了一个块。)

  • 将相应的条目添加到您的hosts文件中,如下所示:

    127.0.0.1           test54.yourdomain.com
    127.0.0.1           test55.yourdomain.com
    

那应该这样做。我喜欢由此产生的灵活性,以及​​我配置的各种 PHP 版本在我需要时可以轻松使用。

于 2017-11-09T23:25:25.930 回答
0

我只是想补充一下,以防你运行任何操作系统(我的是 Yosemite)做同样的事情,但在 XAMPP 主文件夹内的 xamppfiles 文件夹上工作(所以使用的路径不同),你可以同时更改 configure.ini 和可能与文件相关(复杂)或(简单但脏)命名您要使用 xamppfiles 的版本和其他任何名称,然后为管理器创建 2 个单独的别名以启动(每个 xampp 版本一个)。像这样有点令人困惑,但如果有人需要,我可以逐步描述这两种方法。

于 2016-09-27T08:49:32.543 回答