11

複数のバージョンの PHP がインストールされており、通常の開発では常に自作でインストールされた PHP 5.5.x を使用しています。

魚の殻には

 which php & php --version
=> /usr/local/bin/php
=> PHP 5.5.8 (cli) (built: Jan 16 2014 15:58:25)

パスは正しいです。

私の問題は、Drupal で開発する必要があるとき、バンドルされたランプ スタックとして MAMP を使用し、MAMP には独自の php バージョンが含まれていることです。私の問題は、Drupal で Drush を使用する場合、bash で通常行うように PHP 実行可能パスを設定できないことです。バンドルされている PHP バージョン/実行可能ファイルのみを drush で使用したい。

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 シェルで同じコマンドを実行すると、正しい設定が得られます。

  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   

では、fish で DRUSH_PHP へのエクスポート パスを設定するにはどうすればよいでしょうか。

4

2 に答える 2

18

ダープ。

構文は少し異なりますが、理解しました。この問題を抱えている人は、次のようにエクスポートを設定できます。

set -x DRUSH_PHP /Applications/MAMP/bin/php/php5.5.3/bin/php

drush は正しい PHP exec パスを取得します。

他のシェルとは対照的に、Fish でどのように機能するかを理解するには、setドキュメントを参照してください 。set基本的:

set variable value
于 2014-02-07T10:07:05.270 に答える
17

フィッシュ シェルでコマンドをエミュレートする場合は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
于 2015-04-01T09:50:58.880 に答える