命令行上的PHP版本,带有适用于Windows的MAMP


PHP Version on the Command Line with MAMP for Windows

我在家里的Mac上运行MAMP,但在我的工作机器(Win7)上,我刚刚开始使用MAMP for Windows,所以我在两台机器之间运行相同的(相对而言)软件。昨天,我从命令行运行了一些命令,注意到由于没有加载mbstring扩展,脚本出现了错误。我挖了一些东西,现在却在挠头。。。

在浏览器中,一切正常。当我检查phpinfo时,它正在加载配置文件,并且mbstring已启用。当我切换到命令行时,mbstring不在模块列表中(php -m)。此外,当我执行php --ini时,它会告诉我没有加载任何配置文件。我已经将正确的PHP版本添加到了我的PATH中,并且运行php -v可以得到我期望的版本,所以我真的不确定为什么命令行上的PHP与浏览器中的PHP不同。

以前有人碰到过这个吗?如何使PHP在命令行上加载与浏览器正在使用的配置文件相同的配置文件?

命令行php(CLI)与CGI php是不同的可执行文件。它通常还使用不同的php.ini文件。但是,您可以指定在启动php-cli:时要加载的php.ini的位置

php -c <path to your php.ini>

看看这里。

本例假设您使用C:''MAMP''作为安装目录。

由于您需要Windows MAMP中使用的配置,因此需要将其作为参数提供给php。

打开命令提示符。

要使用位于C:''MAMP''htdocs''中的脚本执行test.php,请使用MAMP:中的PHP56.0

C: ''MAMP''bin''php''php5.6.0''php.exe-C"C:''MAMP''conf''php5.6.0''php.ini"C:''MAMP ''htdocs''test.php"

正如您所注意到的,最后一个参数是要执行的脚本("C:''MAMP''htdocs''test.php")

从命令行执行phpinfo:

C: ''MAMP''bin''php''php5.6.0''php.exe-C"C:''MAMP''conf''php5.6.0''php.ini"-r phpinfo();

phpinfo输出中应该有一行确认您正在使用C:''MAMP''conf''php5.6.0''php.ini中的配置。

加载的配置文件=>C:''MAMP''conf''php5.6.0''php.ini