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

11

我需要处理一个旧系统,该系统需要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,并使用其list操作显示我只安装和激活了PHP 5.3.1。我试图弄清楚如何使用phpswitch下载/安装/激活PHP 5.2,但没有成功。

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


1
PHP 5.2无法完成的任务,5.3都能胜任,因此请使用5.3,并在编写PHP 5.2代码时注意这些版本之间的差异。 - Māris Kiseļovs
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配置中复制自身)。
有一篇非常好的文章叫做“实用开发2:工作环境”,作者是Marco Dings,在Joomla!社区杂志上介绍了如何设置工作环境以运行多个本地XAMPP安装程序、使用“基于名称的主机”的多个本地网站,以及如何保持所有内容的组织性。
我没有完全使用Ding的设置 - 我进行了微调,使我的本地Web项目更加有组织和流畅 - 但我的设置基于Ding的方法。
注意:虽然这篇文章在Joomla!社区杂志上,但它不特定适用于Joomla!,因此您可以将此设置用于任何PHP / Apache / MySQL项目。
现在有很多方法可以实现这一点(例如使用Oracle的VM Virtual Box),但除非您需要“完全”复制远程托管环境,否则可能会过度。例如,如果您正在运行“专用主机”并且想要尽可能接近地复制专用主机的环境和设置,那么您将选择VM Virtual Box Set-Up-这允许您运行多个VM(即不同的设置),然后将确切的设置克隆到您的实时服务器。如果您的大多数项目都要在“共享托管”环境中运行,那么这可能过于繁琐,因为您无法控制设置。
多个XAMPP实例的并行安装要简单得多,您可以按照Ding的文章进行设置。它应该能够满足您的要求。
我提到了Oracle VM VirtualBox,因为您至少应该知道它是一个选项。

我尝试卸载旧版本的XAMPP,然后安装最新版本。我还尝试将PHP7放在旧版XAMPP的次要文件夹中。如果我之前读了@NivF007的答案,那就可以节省一些时间了。 - Mike Stratton
请注意,在 Mac 上,控制面板在 XAMPP 1.7.3 中被称为 XAMPP Control.app(它不是 .exe,这可能是特定于 Windows 版本的)。在后续版本中,它被称为 manager-osx.app。但是,一般原则保持不变。 - majorobot
我也在尝试安装两个XAMPP 5.6和7.2,但我没有设置路径的选项。两个都安装在“Application/Xampp”文件夹中。我该怎么办? - Surya prakash Patel

1
您可以随时使用VirtualBox(或类似软件)创建一个带有5.2的实例,完成旧的工作后,只需删除VB实例即可,不会对当前系统产生任何影响。

1
您有几个选择。可以使用虚拟机来运行虚拟环境:一个带有 PHP 5.2,另一个带有 PHP 5.3。或者,如果您熟悉安装 PHP,可以安装所需的各个版本,并设置符号链接以在需要时使用特定版本。

0
之前的答案对我来说效果不佳,但是在Apache Friends论坛上有一个相当优雅的解决方案(链接),尽管我花了一点时间才使事情正常运作。以下是一些亮点:
通过安装多个版本的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目录中还恰好有一个名为php-cgi的符号链接,指向最近安装的CGI,并且我也为此添加了一个块。)
像这样在hosts文件中添加相应的条目:
127.0.0.1           test54.yourdomain.com
127.0.0.1           test55.yourdomain.com

应该就是这样了。我喜欢这种灵活性,以及当我需要它们时,我配置的各个版本的PHP都是简单可用的。


0

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

port search php

显示MacPorts可以提供PHP 5.2、5.3和5.4。这些安装程序被放置在/opt中,因此它们不会影响其他PHP安装。


0

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接