【问题标题】:Windows Command Line - Multiple PHP VersionsWindows 命令行 - 多个 PHP 版本
【发布时间】:2013-03-15 02:15:34
【问题描述】:

我目前正在运行具有多个 PHP 版本(5.3.8、5.4.3)的 Wampserver。 Wampserver 允许您轻松地在您希望 apache 使用的 php 版本之间来回切换。但是,我在处理来自 CLI 的多个版本时遇到了麻烦。我有需要命令行的项目,但有些与 php5.4 兼容,有些则不兼容。

有没有办法在 Windows 中创建某种类型的“别名”,让我可以在命令行上指定要使用的 PHP 版本.. IE:“php54 cache:clear”、“php53 cache:clear”? ?

谢谢!

【问题讨论】:

  • 实用方面,可以到PHPX目录直接使用php.exe。
  • 这就是我一直在做的事情,但是必须导航到该目录并输入我需要运行的 php 脚本的完整路径是多余的。寻找更简单的方法来实现这一点。
  • 发帖到serverfault.com
  • 好的,感谢您的意见。

标签: php windows command-line wamp


【解决方案1】:

我正在做类似下面的事情。

例如。我有两个 php 版本,PHP 5.6 和 PHP 7.3

我有 wamp 环境,所以我做了如下操作

所以我已将 D:\wamp\bin\php\php7.3.6\php.exe 复制到 D:\wamp\bin\php\php7.3.6\php7.exe

我已将 D:\wamp\bin\php\php5.6\php.exe 复制到 D:\wamp\bin\php\php5.6\php56.exe

然后我将两者都添加到环境变量路径中,如下所示。

现在你需要重新打开 cmd,你可以使用类似下面的命令

php56 -v
php7 -v

您也可以运行命令refreshenv在打开的cmd中重新加载环境变量。

如果你想改变默认的php版本,你可以移动路径如下。

例如,如果您希望 php 7.0.23 作为默认而不是 php 7.3.6

例如看截图

在上面的屏幕截图中,我将 php 7.0.23 移到了所有其他 php 版本(php 7.3.6 和 php 5.6.31)之上。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我已经搜索了如何在不使用命令行更改环境变量路径的情况下真正轻松地做到这一点(因为它的字符有限)并找到了这个解决方案(仅在 Windows 10 上): 在您的环境变量路径中,将[D:\wamp64\bin\php\"your php version"] 更改为[D:\wamp64\bin\php\php]

    然后通过以管理员身份在 cmd 中运行以下命令,在您的 php 版本目录和 D:\wamp64\bin\php\php 之间创建一个联结: mklink /J D:\wamp64\bin\php\php D:\wamp64\bin\php\php"your php version"

    那么你就可以使用这个批处理文件了

    echo off
    ::read the actual php version
    ::(read the second word of php -v output )
    for /f "tokens=2" %%i in ('php -v') do (
    
        ::if actual version is 7.4.0 I want 7.4.1
        if "%%i"=="7.4.0" set phpV="7.4.1"
        ::if actual version is 7.4.1 I want 7.4.0
        if "%%i"=="7.4.1" set phpV="7.4.0"
    )
    
    ::delete the old junction
    rmdir "D:\wamp64\bin\php\php"
    
    ::create a new one to the version I want
    ::!!!!!!!!!!!!!!!!!!! paths must not contains spaces
    mklink /J D:\wamp64\bin\php\php D:\wamp64\bin\php\php%phpV%
    

    现在您可以在 cmd 中运行批处理文件,之后甚至不必重新启动它。

    【讨论】:

      【解决方案3】:

      如果可以的话,只需创建别名

      别名'php56'='/Path/To/php5.6/bin/php'; 别名'php55'='/Path/To/php5.5/bin/php';

      如果没有,请在一个单独的目录中创建链接指向二进制文件。

      php56 是一个链接到 /Path/To/php5.6/bin/php

      php55 是一个链接到 /Path/To/php5.5/bin/php

      将这些放入 /Seperate/Path/ 并将 '/Seperate/Path/' 添加到 %PATH%

      希望对你有帮助

      【讨论】:

        【解决方案4】:

        其实很简单。

        自己创建一个批处理文件以将 php 添加到路径中,将该文件放在当前位于 PATH 上的文件夹之一中,以便您可以从任何地方运行它。 然后,只要您在任何包含 CLI 脚本的文件夹中,就运行批处理文件

        示例批处理文件:

        我们称之为 PHPPATH.CMD

        path=%path%;c:\wamp\bin\php\php5.4.11
        php -v
        

        现在,如果您想使用其他版本的 PHP CLI,只需更改批处理文件,或者如果您觉得很聪明,请让批处理文件接受一个参数,这样您就可以在路径上指定您想要的 php 版本。

        【讨论】:

          猜你喜欢
          • 2013-03-09
          • 2010-12-09
          • 2022-01-05
          • 2020-05-22
          • 1970-01-01
          • 2021-01-23
          • 2013-08-22
          • 2010-09-16
          • 1970-01-01
          相关资源
          最近更新 更多