installing composer on a shared host

时间:2015-04-23 05:38:08

标签: php cgi composer-php

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.

4 个答案:

答案 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服务器一起使用,仅发送/删除已更改的文件。也许有人会发现它有用。

https://github.com/psad73/tune-composer