使用Putty通过SSH安装Composer遇PHP参数错误,求解决方法
解决PHP 4.4.9下安装Composer时
php -r命令报错的问题 问题描述
通过Putty按照Composer官方指引安装时,执行第一条命令:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
出现错误提示:
Error in argument 1, char 2: option not found r
当前使用的PHP版本为:
PHP 4.4.9 (cgi-fcgi) (built: Jul 7 2021 07:43:18) Copyright (c) 1997-2008 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
报错原因
- PHP版本过低导致参数不支持:
-r参数是从PHP 5.1.0才开始引入的CLI参数,PHP 4.4.9完全不支持该参数,这是直接报错的原因。 - Composer本身不兼容PHP 4:Composer的运行要求PHP 5.3.2及以上版本,PHP 4.4.9远远达不到最低要求,即使绕过当前报错,后续安装也会彻底失败。
解决方法
1. 升级PHP到符合要求的版本(唯一可行方案)
- 将PHP升级至5.3.2或更高版本(推荐升级到PHP 7.4及以上,PHP 5.x系列已停止安全维护)
- 升级完成后,重新执行官方提供的四条安装命令即可正常完成Composer安装:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
2. 临时绕过-r参数报错(仅作参考,无法完成Composer安装)
如果暂时无法升级PHP,可手动获取安装脚本,但无法完成后续安装:
- 在本地浏览器打开Composer安装脚本地址,将文件保存为
composer-setup.php - 通过Putty的SFTP功能将该文件上传到服务器的目标目录
- 注意:PHP 4.4.9不支持
hash_file函数,无法完成安装脚本校验;且执行php composer-setup.php时会因PHP版本过低直接失败
内容的提问来源于stack exchange,提问作者Michael Mathon
相关产品推荐
相关产品推荐

