在共享空间上使用Composer PHP

时间:2013-12-07 19:09:39

标签: php tumblr composer-php phar

我正在使用Bluehost并且可以访问SSH,谢天谢地。我还在控制面板设置中将PHP设置为5.4。现在,这里有两个我无法理解的大问题:如何安装Composer,此外,在安装Composer之后,如何获得依赖项?

在这种情况下,我试图使用具有依赖关系的官方Tumblr PHP Library - 所有这些都可以在Packagist找到。

我已经提到OP正在使用HostGator的this question。我试图以类似的方式安装Composer,并且看似成功的结果。然而,问题是我不知道在Bluehost上安装它的位置所以我现在已经在服务器上的几个随机位置安装了Composer,因为我不知道如何导航以找到将它放在此共享的位置空间。

我知道这是问题(即它安装在错误的位置),因为当我使用composer phar文件和语法来安装软件包时,我会收到错误,说这些命令不存在。

我真的很讨厌要求提供帮助,但是如果有人可以指导我在共享空间上正确安装Composer并在同一个共享空间正确安装Packagist的Composer软件包,那将非常感激。我已经挖掘了Composer文档,似乎无法找到适当的指南 - 如果一个甚至可以存在 - 对于这种情况。在这一点上,我想知道每个网络主机是否会有所不同。

7 个答案:

答案 0 :(得分:5)

KLVTZ所述安装作曲家。在bluehost环境中,使用php-cli而不是php。

php-cli composer.phar install

答案 1 :(得分:4)

安装composer时,我遇到的最大问题是Bluehost的命令行php是5.2,而composer需要5.3 +。

幸运的是,Bluehost确实允许您访问5.4。你可以在

找到它
/ramdisk/php/54/bin/php54-cli 

我最终设置了一个别名来使用上面的php命令调用composer.phar并且它工作得很好。您可以查看有关如何install composer on bluehost的详细信息。

答案 2 :(得分:3)

您可能不应在远程主机上使用Composer,而是将其安装在用于将项目上载到Bluehost的本地计算机上。在那里,您可以管理获取依赖项所需的所有内容,其中可能包括启用ZIP扩展或具有ZIP程序,如果您必须从分支中获取版本,则安装GIT或Mercurial,依此类推。

使用Composer的所有这些依赖关系可能在该远程主机上不可用,坦率地说:我认为你真的不想在生产机器上安装这些开发工具。如果可以避免,任何可能帮助攻击者的软件都不应该存在。

答案 3 :(得分:2)

  

然而,问题是我不知道在Bluehost上安装它的位置......

要解决此问题,您需要确定项目文件夹的确切位置。 Composer需要安装在该文件夹中。如果您可以访问UNIX shell,我建议您将目录更改为该项目文件夹

cd $_SERVER['DOCUMENT_ROOT']/project_folder/

通常,远程服务器将遵循与本地计算机上相同的文件目录树。但是,如果您不确定文件结构的组织方式,可以随时打印本地计算机的工作目录:

pwd

在共享空间上成功找到正确的文件路径后,只需安装composer:

即可
curl -sS https://getcomposer.org/installer | php

这将报告类似的内容:

  

所有设置都适用于使用Composer    下载...

     

Composer已成功安装到:/var/www/my_project/composer.phar

     

使用它:php composer.phar

您现在可以访问项目中的composer.phar。如果您需要任何进一步的帮助,请告诉我。

答案 4 :(得分:2)

Bluehost上的一个问题是Bluehost上的php命令不执行php-cli。所以我通过在PATH中先前拥有自己的php脚本然后将参数转发到php-cli来“绕过”它。在同一个过程中,我创建了一个名为composer的脚本,它直接调用php-cli composer.phar

所以,这个设置在Bluehost上对我有用:

~/bin我有composer.phar和两个名为phpcomposer的bash脚本。在~/.bash_profile我已将~/bin添加到我的PATH

  • ~/bin/php如下所示:

    #!/bin/bash
    php-cli "$@"
    
  • ~/bin/composer如下所示:

    #!/bin/bash
    php-cli ~/bin/composer.phar "$@"
    
  • ~/.bash_profile的添加内容如下:

    PATH=$HOME/bin:$PATH
    PATH=$PATH:$HOME/.composer/vendor/bin
    export PATH
    

    (我还添加了~/.composer/vendor/bin可以看出,这对于某些组合应用程序的全局访问非常方便(对我来说是laravel)。

请记住source ~/.bash_profile。 (或重新连接)

答案 5 :(得分:0)

我认为你应该这样做。 在控制台

echo $PATH

使用其中一个

mv composer.phar {selected path}/composer
chmod +x {selected path}/composer

现在你可以随处调用作曲家

答案 6 :(得分:0)

如果您在根目录(在public_html下)安装了composer,则可能与PHP版本有关。作为Bluehost选择PHP版本"请注意,这只会修改你的〜/ public_html / php.ini文件。如果您选择使用PHP 5.4,那么您将确保您的crons使用" / usr / php / 54 / usr / bin / php"相反,否则它将使用PHP 5.2。"

所以你可以尝试使用命令

/usr/php/54/usr/bin/php-cli composer.phar install