composer.phar update
Webコントローラーから実行する必要があります。
この方法(、など)であらゆる種類の通常のコマンドを実行できますがls
、cp
pharファイルを呼び出すと空の出力が返されます。
私が持っているコードは次のようになります:
class Maintenance_Controller
{
public function do_maintenance()
{
echo exec("/usr/bin/env php composer.phar", $out, $ret);
var_dump($out); // outputs -> array()
var_dump($ret); // outputs -> int(127)
}
}
127
悪いパスを示していますが、私は正しいディレクトリにいると確信しています。
また、これはphp_cliラッパーを使用する場合に機能するので、おそらくwww-data
ユーザーと関係がありますか?chmod 777
助けにはなりません、そして私はとにかくそれをするのが嫌いです。
passthru()
、system()
およびbacktic構文も使用しました。これが機能しない理由を理解することができません。コードexec()
を超えて呼び出しからstderrまたはstdoutに問い合わせることができないようです。127
明らかな質問:
私は何が間違っているのですか?
より良い質問:
.phar
スクリプト内からファイルを調べて実行するためのより良い方法はありますか?