我安装了多个版本的PHP,对于我的正常开发,我始终使用通过Homebrew安装的PHP5.5.5。
在鱼壳中
which php & php --version
=> /usr/local/bin/php
=> PHP 5.5.8 (cli) (built: Jan 16 2014 15:58:25)
路径正确。
我的问题是,当我必须使用Drupal开发时,我将MAMP用作捆绑的灯泡,并且MAMP具有自己的PHP版本。我的问题是,当将Drush与Drupal一起使用时,我无法像bash中那样设置PHP可执行路径。我只希望Drush使用捆绑的PHP版本/可执行文件。
在bash中我可以做到这一点:
# Set Drush root to MAMP PHP
export DRUSH_PHP=/Applications/MAMP/bin/php/php5.5.3/bin/php
但是,这在鱼壳中无法使用,我尝试了这个(没有成功):
鱼类配置位置:~/.config/fish/config.fish
set -x DRUSH_PHP=/Applications/MAMP/bin/php/php5.5.3/bin/php
如果我用 drush status
运行鱼壳,我总是得到这个:
Drupal version : 7.26
Site URI : http://default
Database driver : mysql
Database username : root
Database name : dev-db
Default theme : garland
Administration theme : garland
PHP executable : /usr/local/bin/php
PHP configuration : /usr/local/etc/php/5.5/php.ini
PHP OS : Darwin
Drush version : 6.2.0
Drush configuration :
Drush alias files :
Drupal root : /Applications/MAMP/htdocs/Sandbox/dev
Site path : sites/default
File directory path : sites/default/files
,当我在伯恩·壳(Bourne Shell)中运行相同的命令时,我会得到正确的设置:
Drupal version : 7.26
Site URI : http://default
Database driver : mysql
Database username : root
Database name : dev-db
Database : Connected
Drupal bootstrap : Successful
Drupal user : Anonymous
Default theme : bartik
Administration theme : seven
PHP executable : /Applications/MAMP/bin/php/php5.5.3/bin/php
PHP configuration : /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
PHP OS : Darwin
Drush version : 6.2.0
Drush configuration :
Drush alias files :
Drupal root : /Applications/MAMP/htdocs/Sandbox/dev
Site path : sites/default
File directory path : sites/default/files
Temporary file directory path : /Applications/MAMP/tmp/php
那么,如何将出口路径设置为鱼中的drush_php?
如果您想在鱼壳中模拟export
命令,只需创建以下文件:
~/.config/fish/functions/export.fish
function export
if [ $argv ]
set var (echo $argv | cut -f1 -d=)
set val (echo $argv | cut -f2 -d=)
set -g -x $var $val
else
echo 'export var=value'
end
end
启动一个新终端,然后按预期从鱼壳中运行export
:
> export foo=123
> echo $foo
123
derp。
语法有些不同,但我弄清楚了。任何有这个问题的人,您都可以设置出口:
set -x DRUSH_PHP /Applications/MAMP/bin/php/php5.5.3/bin/php
和Drush获得正确的PHP Exec路径。
请参阅 set
文档以了解set
在鱼中的作用,而不是其他壳。基本上:
set variable value
set -Ux DRUSH_PHP /Applications/MAMP/bin/php/php5.5.3/bin/php
-u或 - universal
设置一个通用变量。该变量将立即可用对于机器上所有用户的鱼类实例,将持续存在跨外壳重新启动。
-x或 - export
导致指定的壳变量导出到子过程(使其成为"环境变量")。