【问题标题】:PHP Version on the Command Line with MAMP for Windows带有 MAMP for Windows 的命令行上的 PHP 版本
【发布时间】:2015-02-27 14:09:18
【问题描述】:

我在家里的 Mac 上运行 MAMP,但在我的工作机器 (Win7) 上,我刚开始使用 MAMP for Windows,以便在两台机器之间运行相同的(相对而言)软件。我昨天从命令行运行了一些命令,并注意到脚本抛出错误,因为没有加载 mbstring 扩展名。我做了一些挖掘工作,现在只能摸不着头脑......

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

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

【问题讨论】:

标签: php command-line mamp mamp-pro


【解决方案1】:

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

php -c <path to your php.ini>

看看here

【讨论】:

  • 对于其他查看此内容的人,php -c 用于一次性执行。如果您想让它每次都能正常工作,this answer 应该为您指明正确的设置方向,这样您就不必在个人资料中使用别名 php
【解决方案2】:

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

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

打开命令提示符。

使用 MAMP 中的 PHP5.6.0 使用位于 C:\MAMP\htdocs\ 中的脚本执行 test.php:

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

【讨论】:

    猜你喜欢
    • 2013-03-09
    • 2013-03-15
    • 1970-01-01
    • 2014-01-21
    • 2017-04-13
    • 1970-01-01
    • 2010-12-09
    • 2020-09-24
    • 2010-10-31
    相关资源
    最近更新 更多