【发布时间】:2018-07-17 17:41:13
【问题描述】:
当 php-fpm 容器在 Windows(Ubuntu bash / WSL)上运行时,安装 Composer 并尝试运行它似乎无法在该容器上运行。
但是,它在其他任何地方都可以顺利运行。
username@docker-php:/var/www/project$ php composer.phar update
[ErrorException]
include(phar:///var/www/project/composer.phar/vendor/composer/../../src/Composer/Command/RunScriptCommand.php
): failed to open stream: phar error: Cannot open phar archive "/var/www/project/composer.phar" for reading
另外,再次运行该命令会导致不同的错误:
username@docker-php:/var/www/project$ php composer.phar update
Warning: include(phar:///var/www/project/composer.phar/vendor/composer/../../src/Composer/Util/Silencer.php): fail
ed to open stream: phar error: Cannot open phar archive "/var/www/project/composer.phar" for reading in phar:///va
r/www/project/composer.phar/vendor/composer/ClassLoader.php on line 444
Warning: include(): Failed opening 'phar:///var/www/project/composer.phar/vendor/composer/../../src/Composer/Util/
Silencer.php' for inclusion (include_path='.:/usr/local/lib/php') in phar:///var/www/project/composer.phar/vendor/
composer/ClassLoader.php on line 444
Fatal error: Uncaught Error: Class 'Composer\Util\Silencer' not found in phar:///var/www/project/composer.phar/src
/Composer/Console/Application.php:71
Stack trace:
#0 phar:///var/www/project/composer.phar/bin/composer(58): Composer\Console\Application->__construct()
#1 /var/www/project/composer.phar(24): require('phar:///var/www...')
#2 {main}
thrown in phar:///var/www/project/composer.phar/src/Composer/Console/Application.php on line 71
知道如何进行这项工作吗?
【问题讨论】:
-
这行得通吗? stackoverflow.com/q/26718836
-
你是如何安装
composer.phar的? -
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php@fyrye
标签: php docker composer-php windows-subsystem-for-linux