2013-04-28 46 views
0

我想我的本地開發機器上使用composer,並試圖從PHAR存檔複製的東西時,它總是失敗:如何在open-basedir指令中包含到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 \作曲家包括在open_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存檔的路徑?它有可能嗎?它應該是必要的嗎?可能這與這個bug有關:https://bugs.php.net/bug.php?id=64634

我的操作系統:Windows 7 64位系統,XAMPP 1.8.1,2.4.3的Apache,PHP 5.4.7

更新:嘗試最新的穩定PHP 5.4.14過,同樣的問題。

回答

1

我設法重現它,使用stream_copy_to_stream的解決方法似乎工作,所以我申請在566313834af3a49cd3f6b41001f7d8549e0b9c96,如果你運行作曲家自我更新它現在應該工作。

我不太確定作曲家的其他部分可能會受此影響,但如果您仍然有類似的問題,可以隨時在github上打開bug報告。

+0

感謝您的超快速修復/解決方法,它現在工作正常:)所以,因爲** stream_copy_to_stream **在這種情況下也起作用,我想這也回答了問題,即它實際上是提到的PHP錯誤導致的問題。 – ndm 2013-04-28 15:25:42