I am trying to install composer on my shared host for the first time.
When I run curl -sS https://getcomposer.org/installer | php
I am getting a Composer successfully installed
User it: php composer.phar
when I run php composer.phar
i am getting this warring error:
Warning: Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI
any ideas on how to fix this ? and why i am getting this error ? :(
when I run php -v
i get this back
PHP 5.4.39 (cgi-fcgi) (built: Mar 25 2015 14:20:20)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
Do I need to run this using CLI version if so how would i do this ?
Any help would be nice thank you.
答案 0 :(得分:6)
我通过显式调用它要求的PHP版本来解决这个问题。请记住,在共享服务器环境中,通常会运行多个版本的PHP,即使您可能已在cPanel配置中设置了默认值,bash命令通常会解析为另一个(较低)版本。
首先,我创建了一个bin
目录并将composer.phar移入其中。然后,我将这个别名添加到我的.bash_profile中,它就像一个魅力:
alias composer="/usr/php/54/usr/bin/php-cli ~/bin/composer.phar"
希望这有帮助!
答案 1 :(得分:1)
由于Composer现在可以通过WHM获得,因此可以使用它来查找它:
which composer
这为我返回了路径“ / opt / cpanel / composer / bin / composer”。如果此操作什么也没返回,则忽略此答案的其余部分,因为Composer在系统级别上不可用。
您现在可以使用php-cli
来使用Composer的绝对路径来调用它:
php-cli /opt/cpanel/composer/bin/composer install
php-cli /opt/cpanel/composer/bin/composer update
php-cli /opt/cpanel/composer/bin/composer require whatever/example
但是,如果系统声称找不到此别名,则可能需要为php-cli
加上别名。这在很大程度上取决于如何在WHM服务器上部署PHP。您可以通过在“ .bashrc”文件的末尾添加用户别名来做到这一点,如下所示:
alias php-cli=/opt/cpanel/ea-php72/root/usr/bin/php
用您要使用的PHP版本替换ea-php72
。将此命令作为命令提交到外壳程序中以使其立即可用,否则当您打开下一个Bash会话时它将可用。
如果只想单独使用composer
就可以使它可用,则可以在“ .bashrc”中再次创建此别名:
alias composer=/opt/cpanel/ea-php72/root/usr/bin/php /opt/cpanel/composer/bin/composer
答案 2 :(得分:0)
安装的php版本的位置因主机而异。尝试通过以下方式找到它们:
locate /bin/php
对我来说,它列出了所有php版本,然后我可以用php代替,例如:
/usr/bin/php71-cli
要访问命令行界面版本,而不是默认的cgi版本。然后,如@Diggery所述,您可以创建一个别名。
alias composer='/usr/bin/php71-cli bin/composer.phar'
有关如何测试cli安装的方法,StackOverflow上有很多建议,但是以上是对我唯一有用的建议。
答案 3 :(得分:0)
我制作了一个脚本来处理作曲家/供应商的更改。该脚本与仅ftp服务器一起使用,仅发送/删除已更改的文件。也许有人会发现它有用。