在命令提示符中运行 PHP 可以正常工作,但在 Git Bash 中不行。

我最近买了一台新笔记本电脑,并正在设置它。 我安装了WAMP,这是我用来进行PHP开发的工具(安装了Apache2、MySql和PHP)。 我还喜欢使用Git Bash作为我的首选命令行工具,但是当我尝试通过命令行执行PHP时,会得到一个奇怪的结果:什么都不会发生,也没有错误提示。

enter image description here

现在,如果我通过命令提示符运行这个程序,它就能完美地工作。

enter image description here

我已经为PHP设置了正确的PATH变量,并三次检查过了。

enter image description here

我该怎么做才能让PHP在我的Git Bash命令行中正常工作? 编辑: ll /c/wamp64/bin/php/php7.0.10/php的输出结果:
-rwxr-xr-x 1 james.b 1049089 122368 Aug 18  2016 /c/wamp64/bin/php/php7.0.10/php*

echo $PATH | tr ":" "\n"的输出结果:

/c/Users/James.b/bin
/mingw64/bin
/usr/local/bin
/usr/bin
/bin
/mingw64/bin
/usr/bin
/c/Users/James.b/bin
/c/ProgramData/Oracle/Java/javapath
/c/WINDOWS/system32
/c/WINDOWS
/c/WINDOWS/System32/Wbem
/c/WINDOWS/System32/WindowsPowerShell/v1.0
/c/Go/bin
/c/wamp64/bin/php/php7.0.10
/c/ProgramData/ComposerSetup/bin
/c/Program Files/Microsoft/Web Platform Installer
/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/110/Tools/Binn
/c/Program Files (x86)/Microsoft SQL Server/120/Tools/Binn
/c/Program Files/Microsoft SQL Server/120/Tools/Binn
/c/Program Files/Microsoft SQL Server/120/DTS/Binn
/c/Program Files (x86)/Microsoft SQL Server/120/Tools/Binn/ManagementStudio
/c/Program Files (x86)/Microsoft SQL Server/120/DTS/Binn
/cmd
/c/Users/James.b/AppData/Local/Microsoft/WindowsApps
/c/Users/James.b/AppData/Roaming/Composer/vendor/bin
/c/wamp64/bin/php/php7.0.10
/usr/bin/vendor_perl
/usr/bin/core_perl

输入which php来确保,或者使用完整路径启动php。 - simlev
@simlev 返回 /c/wamp64/bin/php/php7.0.10/php 这是正确的目录吗?在Windows上,末尾的 php 应该是 php.exe 吗? - James
1看起来是正确的。尝试使用完整路径/c/wamp64/bin/php/php7.0.10/php -v,或者进入该目录并输入./php -v - simlev
@simlev 好的,它有效了。有没有什么我可以做让它正常运行?否则我可以为此设置一个别名 - James
是的,我建议你简单地给它取个别名。 - simlev
它在我的实例中运行正常,我建议您再次检查路径和权限。请发布echo $PATHll /c/wamp64/bin/php/php7.0.10/php的输出结果。 - simlev
@simlev已发布了结果。 - James
对我来说一切都还好(除了路径在另外三个或更多地方重复,但这应该不会有影响)。我找不到解释,我使用的是PortableGit-2.14.0-64-bit和UniServer也是一样“工作”的。 - simlev
4个回答

怎么样才能让我的 Git Bash 命令行正确运行 PHP?
alias php='/c/wamp64/bin/php/php7.0.10/php'

我们每次打开Git Bash都需要吗?还是可以将其添加到某个.profile文件中? - Knight017
2@Knight017将其添加到~/.bashrc文件中。 - simlev

我在git bash中输入了以下命令,它起作用了。
alias php='/d/xampp/php/php.exe'
注意:我的xampp安装在"D"驱动器(D:)中。

你的回答与其他人的有什么优势或不同之处? - gronostaj
路径有所不同。在我的情况下,我需要输入完整的路径,包括php.exe - Dinesh Yadav

从你的截图中,我们知道你正在使用Windows。以下是解决方案:
  1. 打开 git bash

  2. 在主目录(~)中创建 .bashrc 文件

cd ~
touch .bashrc
将别名添加到.bashrc文件中
alias php='winpty /c/wamp64/bin/php/php7.0.10/php'
c/wamp64/bin/php/php7.0.10/php => 在Windows上表示C:\wamp64\bin\php\php7.0.10\php。

1这与现有的答案有何不同? - James
别名定义存储在内存中,因此在.bashrc中定义它们并没有真正的性能优劣之分。详情请参考:https://unix.stackexchange.com/a/347198/190552 - Bravo Yeung