【发布时间】:2015-02-19 16:16:51
【问题描述】:
我遇到了 Mamp pro 的 php cli 命令问题。我的问题是 php 脚本和终端中的 exec 是不同的。我解释一下:
-
当我执行这个命令时 => which php
在mac终端中:
我得到这个路径:/Applications/MAMP/bin/php/php5.6.2/bin/php
这很正常,因为我更改了 .bash_profile 文件中的路径 像这样:
export MAMP_PHP=/Applications/MAMP/bin/php/php5.5.18/bin export PATH="$MAMP_PHP:$PATH"在导航器中:
with this line inside a php script: <?php echo exec("which php"); ?>我得到这个路径:/usr/bin/php
-
相同的结果,但命令更详细 => php --ini
在mac终端中:
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.5.18/conf Loaded Configuration File: /Applications/MAMP/bin/php/php5.5.18/conf/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)在导航器中:
Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: /Library/Server/Web/Config/php Additional .ini files parsed: /Library/Server/Web/Config/php/php.ini -
更奇怪的是,在编写一个包含以下代码的 php 文件时:
<?php var_dump(shell_exec("which php -v")); phpinfo(); ?>我也在终端和导航器中启动了这个脚本。我得到了这个:在mac终端中:
启动:php -f /Users/tm/Sites/test.com/test.php
结果:/Applications/MAMP/bin/php/php5.5.18/bin/php PHP 版本 => 5.5.18
在导航器中:
结果:/usr/bin/php PHP 版本 => 5.5.18
所以似乎从导航器启动的 php 脚本使用了正确的 php 版本,因为 php 信息返回了正确的版本 (5.5.18),但是这个 php 脚本的 cli 使用了另一个 php,这是我的问题。但是当这个脚本从终端启动时,一切都如预期的那样。
【问题讨论】:
-
你可以试试这个解决方案:stackoverflow.com/a/27760245/5088691解决了我的问题!
标签: php shell command-line-interface php-ini mamp-pro