2013-04-28 5 views
0

Я пытаюсь использовать composer на моей локальной машине развития, и он всегда терпит неудачу при попытке скопировать что-то из архива ФАР:Как включить пути в PHAR-архивы в директиве open-basedir?

[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-архивы? Это вообще возможно? Должно ли это быть необходимым в будущем? Может это как-то связано с этой ошибкой: https://bugs.php.net/bug.php?id=64634?

Моя система: Windows 7 x64, XAMPP 1.8.1, Apache 2.4.3, PHP 5.4.7

Update: Пробовал последняя стабильная PHP 5.4.14 тоже такая же проблема.

ответ

1

Мне удалось воспроизвести его, и обходной путь с использованием stream_copy_to_stream, похоже, работает, поэтому я применил это в 566313834af3a49cd3f6b41001f7d8549e0b9c96, и если вы запустили самообновление композитора, он должен теперь работать.

Я не уверен, какие другие части композитора могут быть затронуты этим, но если у вас все еще есть подобные проблемы, не стесняйтесь открывать отчет об ошибках в github.

+0

Спасибо за ультра быстрое исправление/обходной путь, теперь он работает нормально :) Так как ** stream_copy_to_stream ** работает в этом случае тоже, я думаю, это также отвечает на вопрос, то есть на самом деле это упомянутая ошибка PHP, вызывающая проблему. – ndm

Смежные вопросы