当前位置: 首页 > 知识库问答 >
问题:

有没有办法在XAMPP中使用两个PHP版本?

邰钟展
2023-03-14

我们使用PHP7.0运行XAMPP是因为我们的新产品需要PHP7。

但是有些老项目使用mysql_connect等函数,这些函数在PHP7.0中被删除。

那么,有没有办法在XAMPP中轻松更改PHP版本呢?

注意:请不要建议将旧项目升级到与新版本兼容,因为我不能这样做,因为作为一个开发人员(只是一个员工),我不能得到这些决定。

共有1个答案

谭晓博
2023-03-14

当您可以通过一个xampp安装同时使用多个PHP版本时,为什么要在PHP版本之间切换呢?对于单个xampp安装,您有两个选项:

>

  • 仅为旧项目的目录运行较旧的PHP版本:这在大多数情况下会起到作用,您可能有一两个旧项目打算用较旧的PHP版本运行。只需将xampp配置为仅为那些项目目录运行较旧的PHP版本。

    在XAMPP的单独端口上运行较旧的PHP版本:有时,当您需要在新的和较旧的PHP版本上来回运行相同的项目时,您可能会将旧的项目升级到最新的PHP版本。然后,您可以在不同的端口(例如8056)上设置较旧的PHP版本,因此当您转到http://localhost/any_project/xampp运行PHP 7,而当您转到http://localhost:8056/any_project/xampp运行PHP 5.6。

    在virtualhost上运行较旧的PHP版本:您可以创建一个像localhost56这样的virtualhost来运行PHP5.6,同时可以在LocalHost上使用PHP7。

    让我们设置一下。

    步骤1:下载PHP

    因此,您在xampp下运行PHP7,您希望在其中添加一个较旧的PHP版本,例如PHP5.6。从PHP.NET下载nts(非线程安全)版本的PHP zip归档文件(有关旧版本,请参阅归档文件),并解压缩C:\xampp\php56下的文件。线程安全版本不包括php-cgi.exe。

    步骤2:配置php.ini

    在记事本中打开C:\xampp\php56\php.ini文件。如果文件不存在,请将php.ini-development复制到php.ini并在记事本中打开它。然后取消对以下行的注释:

    extension_dir = "ext"
    

    步骤3:配置apache

    打开xampp控制面板,单击apache的config按钮,然后单击apache(httpd-xampp.conf)。将打开一个文本文件,将以下设置放在文件底部:

    ScriptAlias /php56 "C:/xampp/php56"
    Action application/x-httpd-php56-cgi /php56/php-cgi.exe
    <Directory "C:/xampp/php56">
        AllowOverride None
        Options None
        Require all denied
        <Files "php-cgi.exe">
            Require all granted
        </Files>
    </Directory>
    

    注意:如果需要,您可以在步骤1到3之后向xampp安装中添加更多的PHP版本。

    步骤4(选项1):[添加目录以运行特定PHP版本]

    现在您可以设置将在PHP5.6中运行的目录。只需在配置文件(步骤3中的httpd-xampp.conf)底部添加以下内容即可设置目录。

    <Directory "C:\xampp\htdocs\my_old_project1">
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php56-cgi
        </FilesMatch>
    </Directory>
    
    <Directory "C:\xampp\htdocs\my_old_project2">
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php56-cgi
        </FilesMatch>
    </Directory>
    

    步骤4(选项2):[在单独的端口上运行较旧的PHP版本]

    现在,要将PHPV5.6设置为端口8056,请将以下代码添加到配置文件的底部(步骤3中的httpd-xampp.conf)。

    Listen 8056
    <VirtualHost *:8056>
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php56-cgi
        </FilesMatch>
    </VirtualHost>
    

    步骤4(选项3):[在虚拟主机上运行较旧的PHP版本]

    要在目录(htdocs56)上创建一个虚拟主机(localhost56),以便在http://localhost56上使用PHPV5.6,请在您所需的位置创建目录htdocs56,并将localhost56添加到您的主机文件中(请参阅如何操作),然后将以下代码添加到配置文件的底部(步骤3中的httpd-xampp.conf)。

    <VirtualHost localhost56:80>
        DocumentRoot "C:\xampp\htdocs56"
        ServerName localhost56
        <Directory "C:\xampp\htdocs56">
            Require all granted    
        </Directory>
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php56-cgi
        </FilesMatch>
    </VirtualHost>
    

    完成:保存并重新启动Apache

    保存并关闭配置文件,从xampp控制面板重新启动apache。如果您选择了选项2,您可以看到xampp控制面板中列出的附加端口(8056)。

    错误的更新:
    脚本“php-cgi.exe”中格式错误的头:错误的头

    如果遇到上述错误,请再次打开httpd-xampp.conf,并用前导的#(哈希字符)注释掉下面的行。

    SetEnv PHPRC "\\path\\to\\xampp\\php"
    

  •  类似资料:
    • 问题内容: 我想在Python中使用PhantomJS。我用谷歌搜索了这个问题,但是找不到合适的解决方案。 我发现 可能是一个不错的选择。但是我无法通过一些争论。 使用可能是目前合适的解决方案。我想知道是否有更好的解决方案。 有没有办法在Python中使用PhantomJS? 问题答案: 在python中使用PhantomJS的最简单方法是通过Selenium。最简单的安装方法是 安装NodeJS

    • 我想在Python中使用PhantomJS。我谷歌了这个问题,但找不到合适的解决方案。 我发现可能是一个不错的选择。但我无法向它传递一些论据。 使用目前可能是一个合适的解决方案。我想知道是否有更好的解决办法。 有没有办法在Python中使用PhantomJS?

    • 我搜索了如何在同一台机器上安装php5和php7,但没有找到答案。 我正在做两个不同的项目,一个依赖于php5,另一个依赖于php7 我在linux上使用xampp 如何运行两个版本的php 5

    • 问题内容: 我快速浏览了Guava的源代码和文档,但似乎都没有提到版本。我想知道是否有一种方法可以在运行时获取Guava的版本信息。 如果实际上不存在此版本信息,则不必通过任何获取器进行访问。如果将其保存在某个字段中,而该字段在加载番石榴时没有得到GC,那么就足够了。 在运行时的任何地方都可以使用此版本信息吗? 我对此有非常具体的用途。我的工作很大一部分是分析Java堆转储,以识别并修复代码中导致

    • 我正在将应用程序设置为在play store上上载,但play console显示错误,您需要为APK或Android应用程序包使用不同的版本代码,因为您已经有一个版本代码为1的应用程序包。我试着在Android系统中更改版本代码

    • 问题内容: 我有两个长度相同的列表对象,并且要渲染互补数据,有没有一种方法可以同时渲染两个列表对象。 或类似的东西? 问题答案: 如果两个列表的长度相同,则可以在视图中作为模板上下文返回,从而生成一个二值元组列表。 例: 然后,您可以在模板中编写: 另外,在此处查看有关模板标记的Django文档。它提到了使用它的所有可能性,包括漂亮的示例。