使XAMPP与多个PHP版本一起使用


18

如何安装XAMPP以与不同版本的PHP一起使用?

我使用XAMPP是因为某些脚本在WAMP中运行时存在错误。我使用WAMP,因为它支持不同版本的PHP。

但是现在我想将其简化为XAMPP,这样我的Web开发将更易于管理。

是否可以将XAMPP配置为与多个PHP版本一起使用?还是我必须在替代解决方案中寻找的东西?

注意:我在Windows 7上运行。


您可能要使用WAMPSERVER而不是Xampp。WAMPSEVER包含PHP版本切换托盘;这很方便。
Weijing Jay Lin

Answers:


8

请注意,
此答案不适用于新版本的XAMPP。


首先,您需要从XAMPP停止Apache。然后,

转到go cmd并切换到您的XAMPP文件夹。例如,如果您的XAMPP文件夹位于C:\

C:\>cd C:\XAMPP 

在此文件夹中有一个名为的文件php-switch.bat,可从命令行运行。如果没有,您也可以php-switch.bat直接运行。

您将看到现在的版本以及切换过程。例如,键入4来切换PHP 4,然后按照以下步骤操作。

在终端中运行php-switch.bat

PHP 4将安装在您的XAMPP \ PHP目录中并成功切换。然后重新启用Apache。


1
我在安装的XAMPP 1.7.3上找不到php-switch.bat。是否有支持此功能的特定xamp版本?谢谢!
Pennf0lio

哎呀。我认为当前版本不再包含php4 apachefriends.org/f/viewtopic.php?f=16&t=33327 ..如果您要切换到v4,我认为您需要较旧的版本
Ye Lin Aung

4
这在XAMPP的较新版本中不再有效
mauris 2011年

1
什么不再有效?安装PHP4或中间版本?
AlxVallejo 2013年

4
没有更多的新版本php-switch.bat
Toskan 2014年

5

最好的方法是更改​​PHP设置

/apache/conf/extra/httpd-xampp.conf

反映您要使用的PHP新版本

就我而言,我将PHP5.4解压缩到C:\ XAMPPLITE \ PHP5.4,然后更新了此文件中的关键行,例如:

SetEnv PHPRC "C:\\xampplite\\php5.4"

LoadFile "C:/xampplite/php5.4/php5ts.dll"

PHPINIDir "C:/xampplite/php5.4"

您还需要确保已安装正确版本的php5apache2_2.dll。

为了确保这一点,我将新版本的php5apache2_2.dll复制到了具有唯一名称的Apache模块目录中,然后修改了配置以使其与之匹配:

copy php5.4\php5apache2_2.dll apache\modules\php5apache2_2-5_4.dll

并在httpd-xampp.conf文件中

LoadModule php5_module modules/php5apache2_2-5_4.dll

1

如果您的脚本有错误,无论您切换哪个服务器软件包,它们都将仍然是错误。如果问题出在您的服务器配置中,请深入并进行排序。

真正的核心解决方案是手动安装和管理服务器组件(及其配置)。自从我从WAMP切换到自行管理的服务器安装以来,我再也没有感觉到需要预包装的服务器解决方案。


谢谢你的建议!大多数讨论都建议使用XAMPP作为脚本问题的快速而肮脏的解决方案。尽管您有要点,但对我来说,明智的是仅切换服务器(因为它很快),而不是搞乱我不知道从何开始的服务器配置。
Pennf0lio 2010年

好吧……迟早您可能会遇到一种情况,除了钻研配置外别无选择(例如通过终端连接配置服务器)。如果您改变主意,则可以尝试将XAMPP / WAMP / LAMP预定义的配置文件与全新的独立服务器安装文件进行比较,而不是查找手册,以区别这些差异。这就是我了解我现在所知道的方式。
antichris 2010年

非常感谢您的提示。是的,我同意您的观点,但是现在我一次只解决我的问题,并且将寻求最快的解决方案。:PI有很多截止日期。我真的很感谢您的帮助:)
Pennf0lio 2010年

我问了一个类似的问题,但是在这里具有更多功能serverfault.com/questions/121810/…我想在我的xampp中升级apache,mysql,php和phpmyadmin等单个元素。我仍在寻找解决方案。如果有人找到解决方案,请告诉我。谢谢
Gaurav Sharma

1

如果您想要该功能(含义,能够混合和匹配apache,mysql和php组件版本的功能)并且更喜欢3rd Party Bundled AMP Stack Apps,则可以将WAMPServer 2.0视为Windows的一个选项...我研究过的捆绑式AMP选项(适用于Windows,Mac和Linux)不允许换出组件版本(我不包括PHP4和PHP5的开关作为组件版本,因为它们实际上仅是由于遗留代码而提供的)直到PHP5变得向后兼容,而PHP4变得不那么丰富)。

大多数第三方捆绑AMP堆栈应用程序,特别是基于Unix的OS构建(Mac和Linux),为了使堆栈组件与“应用程序”根目录位于同一目录结构中,它们必须使用特定的指令编译每个组件,并最终以某种方式将某些文件夹引用和二进制签名硬连接到每个组件中的参数会自行构建。...特别是mysql和php组件,因为它们具有共享且需要专门引用和包含的库对象在源代码编译期间...(而且在我看来,大多数出于某种原因都不会仅使用包含的每个可选指令和库进行编译...不确定是否可以解决该问题,或者我已经走了那么远。和我的项目来回答这个问题)。

另一个注意事项,因为它是在相同的上下文中。...关于使用组件自动安装与_AMPP堆栈的注释,很不幸,我只知道我上面写的内容,因为我尝试使用3个自主安装进行设置组件的源代码,并试图让我吃蛋糕。...而以前从未有过与任何一个组件打交道的经验....所以我可以说,开发人员这样做有两个令人信服的理由应该将Stacks用于本地开发环境:

1)如果您的项目正在利用这项技术,但未在任何组件的核心中明确扩展功能,那么大多数人只是想快点开始工作,以便能够完成他们需要做的工作。找出3个组件相互无缝对话所需的所有配置。人们可以轻松地花费几天时间来了解需要哪些指令,模块,库,编译参数等。如果您已经知道它,那很好,但不要推荐给那些不会的人,除非您要为他们做。

2)捆绑的堆栈是独立的,并且与OS config文件隔离,因此您可以丢弃开发环境而不会造成严重的后果....如果要运行将文件部署到必要的“ etc”文件夹的脚本,我不会知道您的情况,但我可能会不时犯一个错误,.. / XAMPP / etc文件夹中的错误要比/ etc文件夹中的错误少得多。

3)GUI ... GUI ... GUI ...并非所有人都是命令行莫扎特,而AMPP堆栈都提供了一个不错的GUI,可以根据自己的喜好打开和关闭设备。如果您需要GUI,则可以使用AMPP Stack应用程序...如果您不在乎,则完全取决于您在第1点和第2点上放了多少重量或库存

无论如何,对“如何打哈欠”的论文感到抱歉,希望有人能从中得到一些帮助。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.