0

ローカルの開発マシンでcomposerを使用しようとしていますが、PHAR アーカイブから何かをコピーしようとすると常に失敗します。

[ErrorException]
copy(): open_basedir restriction in effect. File(phar://E:/xampp/php/composer/composer.phar/src/Composer/Autoload/ClassLoader.php) is not within the allowed path(s)

E:\xampp\php\composeropen_basedirディレクティブに含まれており、その場所でのファイルの読み取りと書き込みは正常に機能しますが、PHAR アーカイブ内のファイルへのアクセスのみは機能しません。次のパスを追加しようとしました:

E:\xampp\php\composer\composer.phar\src\
phar://E:/xampp/php/composer/
phar://E:/xampp/php/composer/composer.phar/src/
phar://E:/xampp/php/composer/composer.phar/src/Composer/Autoload/

しかし、どれも役に立たず、同じエラーでまだ失敗しています。

PHAR アーカイブへのパスを含める特別な方法はありますか? それはまったく可能ですか?それはすぐに必要ですか?これはこのバグと関係があるのでしょうか: https://bugs.php.net/bug.php?id=64634 ?

私のシステム: Windows 7 x64、XAMPP 1.8.1、Apache 2.4.3、PHP 5.4.7

更新:最新の安定した PHP 5.4.14 も試してみましたが、同じ問題です。

4

1 に答える 1

1

私はなんとかそれを再現し、stream_copy_to_stream を使用した回避策が機能しているように見えるので、566313834af3a49cd3f6b41001f7d8549e0b9c96でそれを適用し、 composer self-update を実行すると機能するはずです。

composer の他のどの部分がこれによって影響を受けるかはよくわかりませんが、まだ同様の問題がある場合は、気軽に github でバグレポートを開いてください。

于 2013-04-28T15:06:32.217 に答える