.iniファイルでセーフモードをオフにしましたが、PHPステータスページでオフになっていることを確認しました。
次の制限付きPHPモードには空でない値があります:open_basedir。この構成はdrushと互換性がありません。/usr/local/php-5.2.17/etc/phpで構成設定を確認してください。 iniまたはdrush.iniファイル。
safe_mode Off Off memory_limit 168M 168M open_basedir no value no value
更新:これはMediaTempleのグリッドサービス(gs)にあることは注目に値します。 PHP CLIは実際にはopen_basedirが設定された別の.iniファイルを使用しているようです。そのため、私はまだその部分を理解しようとしています。
私の解決策は、この行を.bash_profileに追加することでした
alias drush='/usr/bin/php5 -c /home/000000/etc/drush.ini ~/bin/drush/drush.php'
MediaTemples Grid ServiceのCLIは別のPHP.iniファイルを使用することがわかりました。したがって、その行は基本的に、drush.iniファイルを見つけて一部の設定を上書きするように指示しています。 000000をサーバー番号に置き換えてください。 kiamlalunoとMediaTemplesのサポートに感謝します。
@Eric I.E.あなたは正しいです。そうすれば問題は解決します。ただし、 http://drupalcode.org/project/drush.git/blob_plain/refs/heads/master:/examples/example.drush.ini からdrush.iniのコピーを作成する必要がありますまた、コメント化されていない行で "open_basedir ="を確認してください。
表示されているエラーはDrushによって報告されます。Drushは、「open_basedir」ディレクティブに空の値が含まれていることを確認し、値が空でない場合はエラーを返します。
Drushは、PHPまたは独自のINIファイル( "drush.ini"))によって使用されるphp.iniファイルを使用できます。これは、次のディレクトリで検索されます:
私が参照しているコードは_drush_environment_check_php_ini()
関数に含まれており、次のコードです。
$ini_checks = array('safe_mode' => '', 'open_basedir' => '', 'disable_functions' => array('exec', 'system'), 'disable_classes' => '');
// Test to insure that certain php ini restrictions have not been enabled
$prohibited_list = array();
foreach ($ini_checks as $prohibited_mode => $disallowed_value) {
$ini_value = ini_get($prohibited_mode);
$invalid_value = FALSE;
if (empty($disallowed_value)) {
$invalid_value = !empty($ini_value);
}
else {
foreach ($disallowed_value as $test_value) {
if (strstr($ini_value, $test_value) !== FALSE) {
$invalid_value = TRUE;
}
}
}
if ($invalid_value) {
$prohibited_list[] = $prohibited_mode;
}
}
if (!empty($prohibited_list)) {
drush_log(dt('The following restricted PHP modes have non-empty values: !prohibited_list. This configuration is incompatible with drush. !php_ini_msg', array('!prohibited_list' => implode(' and ', $prohibited_list), '!php_ini_msg' => _drush_php_ini_loaded_file_message())), 'error');
}
ご覧のとおり、「safe_mode」ディレクティブまたは「open_basedir」ディレクティブに空でない値が含まれている場合、関数はエラーを返します。
Pleskを使用してCentOSにdrushをインストール
PleskパネルのあるCentOSシステムにdrush 7.x-5.9をインストールしようとしました。
しずく
sh:/ tput:No such file or directory以下の制限付きのPHPモードには空でない値があります:safe_mode。[error]この構成はdrushと互換性がありません。/etcの構成設定を確認してください/php.iniまたはdrush.iniファイル内;詳細については、examples/example.drush.iniを参照してくださいsh:/ wget:そのようなファイルまたはディレクトリはありません一時ディレクトリを作成できません。
[エラー] tempnam():filesystem.inc:461にアクセスできません
[警告] sh:/ curl:そのようなファイルまたはディレクトリはありません
Sudo -s
wget http://ftp.drupal.org/files/projects/drush-7.x-5.9.tar.gz
tar -zxf drush-7.x-5.9.tar.gz -C /usr/local/share
ln -s /usr/local/share/drush/drush /usr/bin/drush
cd /usr/local/share/drush
cp ./examples/example.drush.ini drush.ini
vi drush.ini
「;」を削除して、以下の行(下部)のコメントを外します。行頭に。
safe_mode =
open_basedir =
ファイルを保存する
このiniファイルを使用するようにdushに指示するexport DRUSH_INI='/usr/local/share/drush/drush.ini'
〜/ .bashrcファイルにも上記の行を追加します
ここで欠落している空白を埋めることができなかった人のために、drush.iniファイルには.bash_profileのエイリアスからのソースに加えて、次の行が必要になります。
open_basedir =
(@ greg_1_andersonが言ったように)drush.php
のエイリアスを作成することは、drush-5.x
Readmeファイルでカバーされていないためです。より良い解決策は、サーバーのデフォルト設定php.ini
ファイルを$HOME/.drush
または/etc/drush
にコピーすることです。
次に、それを編集してopen_basedir
を値なしに設定し、drushの他のカスタム構成を追加します。
また、php.ini
コードサンプルについては this answer を確認してください。