如何在 MAC OS X 10.7 Lion 上安装多个 XAMPP 版本或多个 PHP 版本

Posted

技术标签:

【中文标题】如何在 MAC OS X 10.7 Lion 上安装多个 XAMPP 版本或多个 PHP 版本【英文标题】:How to install multiple XAMPP versions OR Multiple PHP versions on MAC OS X 10.7 Lion 【发布时间】:2012-09-12 03:12:03 【问题描述】:

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

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

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

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

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

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

【问题讨论】:

PHP 5.2 无能为力,而 5.3 则不能,所以只需使用 5.3 并在编写 PHP 5.2 代码时记住这些版本之间的差异。 【参考方案1】:

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

port search php

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

您可以安装 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 中有一篇非常好的文章,名为“Practical Development 2: Working Environment”!社区杂志,介绍如何设置工作环境以运行多个本地 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,因为您至少应该知道它是一种选择。

【讨论】:

我尝试卸载旧版本和 XAMPP,然后安装最新版本。我还尝试在旧版本的 XAMPP 中使用 PHP7 建立一个辅助文件夹。我希望我以前能读过@NivF007 的答案,它可以为我节省一些时间。 请注意,在 Mac 上,控制面板在 XAMPP 1.7.3 中称为 XAMPP Control.app(它不是 .exe,我想它是特定于 Windows 版本的)。在以后的版本中,它被称为 manager-osx.app。但一般原则保持不变。 我也在尝试安装两个 XAMPP 5.6 和 7.2 但我没有设置路径的选项。两者都安装在“Application/Xampp”文件夹中。我该怎么办?【参考方案5】:

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

【讨论】:

【参考方案6】:

以前的答案对我来说效果不佳,但是有一个rather elegant solution over on the Apache Friends Forum,尽管我花了一点时间才让事情正常工作。一些亮点:

通过安装多个版本的XAMPP,您可以获得各种版本的PHP CGI 模块。也就是说,请记住,如果您运行多个安装程序,您的配置文件和数据库可能需要恢复,因此请进行相应的备份和计划。

通过在您的 httpd-xampp.conf 文件中添加类似这样的块来确保允许这些 CGI 做他们的事情(我把我的放在最后):

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

请记住,取决于 XAMPP 使用的 Apache 版本,your syntax may vary a bit。

现在在您的 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 目录中也恰好有一个符号链接,简称为 php-cgi,它指向最近安装的 CGI,我也为此添加了一个块.)

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

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

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

【讨论】:

【参考方案7】:

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

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

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

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

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

【讨论】:

以上是关于如何在 MAC OS X 10.7 Lion 上安装多个 XAMPP 版本或多个 PHP 版本的主要内容,如果未能解决你的问题,请参考以下文章

如何让 ibm_db 或 PyDB2 python 模块在 Mac OS X 10.7 Lion 中与 DB2 一起使用?

sh Mac OS X 10.7 / 10.8 / 10.9(Lion / Mountain Lion / Mavericks)Bootstrapping

Xcode:Instruments 4.0 需要 Mac OS X 10.7 Lion?

在 Xcode 4 中使用 SVN 和 Mac OS X Lion (10.7)

在 Mac OS 10.6 (Snow Leopard)、10.7 (Lion)、10.8 (Mountain Lion) 上激活 PHP 和 MySQL 的最简单方法?

在OS X v10.7(Lion)上安装autoreconf?