Php 无法下载具有服务器ssh访问权限的composer-1和1

Php 无法下载具有服务器ssh访问权限的composer-1和1,php,composer-php,Php,Composer Php,我有1和1服务器的SSH访问权限。我正在尝试下载composer 按照 尝试1: user:~ > curl -sS https://getcomposer.org/installer | php X-Powered-By: PHP/4.4.9 Content-type: text/html <br /> <b>Parse error</b>: syntax error, unexpected '{' in <b>-</b>

我有1和1服务器的SSH访问权限。我正在尝试下载composer

按照

尝试1:

user:~ > curl -sS https://getcomposer.org/installer | php
X-Powered-By: PHP/4.4.9
Content-type: text/html

<br />
<b>Parse error</b>:  syntax error, unexpected '{' in <b>-</b> on line <b>316</b><br />
user:~>curl-sShttps://getcomposer.org/installer |php
X-Powered-By:PHP/4.4.9
内容类型:text/html

分析错误:语法错误,第316行中出现意外的“{”
尝试2:

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
Error in argument 1, char 2: option not found r
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>] 
       php <file> [args...]
  -a               Run interactively
  -b <address:port>|<port> Bind Path for external FASTCGI Server mode
  -C               Do not chdir to the script's directory
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse <file>.  Implies `-q'
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -q               Quiet-mode.  Suppress HTTP Header output.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.
php-r“eval('?>')。文件获取内容('https://getcomposer.org/installer'));"
参数1中的字符2出错:找不到选项r
用法:php[-q][h][s][v][i][f]
php[args…]
-以交互方式运行
-b |外部FASTCGI服务器模式的绑定路径
-C不chdir到脚本的目录
-c |在此目录中查找php.ini文件
-n不使用php.ini文件
-d foo[=bar]使用值“bar”定义INI条目foo
-e生成调试器/探查器的扩展信息
-f Parse.表示“-q”
-这有什么帮助
-我需要PHP信息
-仅限语法检查(lint)
-m显示在模块中编译
-安静模式。抑制HTTP头输出。
-s显示颜色语法高亮显示源。
-v版本号
-w显示带有删除注释和空白的源代码。
-z加载Zend扩展。
我是不是做错了什么

我知道它说我正在运行PHP4.4.9,但如果我运行phpinfo(),它会说
PHPVersion5.4.21
正在运行。对这里发生的事情有什么建议吗

phpinfo()

php-v

如果该服务器是您的生产服务器,您可能不应该使用它来完成应用程序,而应该使用本地开发机器下载所有内容,然后上载整个目录

从我在shell上看到的情况来看,您使用的是一个古老的PHP版本。它是用作命令行的PHP4.4版本,这显然不适用于composer。或者您在该机器上搜索PHP的5.3版本(我想知道它是否可以被称为
php53
或其他什么),然后希望安装了所有必要的扩展,很可能包括“GIT”命令行工具,也可能是“SVN”,否则搜索将不会真正帮助您,因为您仍然缺乏成功的作曲家体验所需的工具


Composer是一个开发依赖关系管理器。它可能不打算维护生产服务器的代码库。

在1和1上,虚拟服务器的PHP版本在您更新之前似乎已冻结。有一个“全局PHP版本”我刚刚找到了它,并将我的版本从4-something升级到了5.5。

目前1&1提供了一系列不同别名的PHP版本

但是,设置要使用的默认PHP版本的最简单方法是从1&1仪表板PHP设置中,并分别为每个域设置它。这位于Hosting和then PHP settings下。[]

请注意,1和1现在非常定期地更新PHP版本,而且CLI版本可能因呈现站点的用户而异

原始答案。已经很久了,我建议使用最新的7.x版本。
实际上,所有1和1 linux共享主机上都预装了4个版本的php

命令:

  • php
    :版本4.4(您实际与composer一起使用的版本)
  • php5
    :版本5.2
  • php5.5
    :版本5.5
  • php6
    :版本5.4

您必须使用php5.5调用composer,它才能正常工作。

您获得不同php版本的原因是1和1安装了不同的php版本,用于客户端和web

因此,如果您更改设置(在1和1控制面板中)以使用php5.4,则当您运行phpinfo()命令时,它将反映这一点

但是,命令行版本仍将反映1和1的默认php版本,即4.4.9(截至今天)

因此,在composer安装中强制使用php5版本,但同时将全局版本更改为5.4,这样就可以了

下面是我做这件事时发生的事情

~/demo > curl -sS https://getcomposer.org/installer | php6
X-Powered-By: PHP/5.4.28  
Content-type: text/html

#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /homepages/19/[my1and1info]/htdocs/demo/composer.phar
Use it: php composer.phar
(uiserver):[my1and1info]:~/demo> 

您应该使用正确版本的PHP
curl-sShttps://getcomposer.org/installer |php5.5

你最近运行过PHP吗?这是一件奇怪的事情……如果我运行phpinfo,我会得到
PHP版本5.4.21
PHP-v给你什么?php5.4.21(cgi fcgi)(构建时间:2013年10月18日08:45:55)版权(c)1997-2013 PHP Group Zend Engine v2.4.0版权所有(c)1998-2013 Zend Technologies我想知道X-Powered-By:PHP/4.4.9是从哪里来的。因为当我检查它的头时,它不在那里。感谢有用的信息。Composer是一个开发依赖关系管理器,但是我在开发中使用
Composer update
,在生产中使用
Composer install
。我删除了e
composer.lock
来自
.gitignore
。这样,当我推到bitbucket/github,然后投入生产时,我运行
composer install
来下载并安装包依赖项,按照我的
composer.lock
文件。我已经多年没有使用FTP进行部署了。我总是使用git&composer。回答得很好。欢迎虽然我知道我在运行php5.5.25,但对我来说是
php5
,省去了很多麻烦!