简体   繁体   English

Composer在Windows(WSL)上不起作用

[英]Composer not working on Windows (WSL)

Installing Composer and trying to run it does not seem to work on a php-fpm container when this container is running on Windows (Ubuntu bash / WSL). 当此容器在Windows(Ubuntu bash / WSL)上运行时,安装Composer并尝试运行它似乎不适用于php-fpm容器。

However, it runs smoothly everywhere else. 但是,它在其他任何地方都可以顺利运行。

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     

Also, running the command again results into a different error: 同样,再次运行命令会导致另一个错误:

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  

Any idea how to make this work? 任何想法如何使这项工作?

Fixed installing Composer in a different way! 修复了以其他方式安装Composer的问题!

RUN curl -sS https://getcomposer.org/installer | php \
            && mv composer.phar /usr/local/bin/ \
            && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM