我正在尝试使用命令行安装Composer for Windows,并进行以下调用:
php -r" readfile(https://getcomposer.org/installer);" | PHP
但是,我收到此错误消息:
警告:readfile():无法找到包装器" https" - 你在配置PHP时忘了启用它吗?在第1行的命令行代码中
调用堆栈: 0.0010 224336 1. {main}()命令行代码:0 0.0010 224488 2. readfile()命令行代码:1
警告:readfile(https://getcomposer.org/installer):无法打开流:第1行的命令行代码中的无效参数
调用堆栈: 0.0010 224336 1. {main}()命令行代码:0 0.0010 224488 2. readfile()命令行代码:1
我已经取消注释&#34 ;; extension = php_openssl.dll"在php5.5.12目录下行,重新启动浏览器,并尝试其他变种。当我只使用“'在https中删除,我得到:
您计算机上的某些设置使Composer无法正常工作。确保您已修复下面列出的问题并再次运行此脚本:
缺少openssl扩展,这意味着无法进行安全的HTTPS传输。如果可能,您应该启用它或使用--with-openssl
重新编译php我已尝试在各个地方加入--with-openssl旗帜,但它似乎没有做到这一点。
答案 0 :(得分:8)
这听起来好像你的安装没有启用openssl。
找到您的php.ini
文件(在Windows上,这可能与php.exe
(我机器上的c:\php
)位于同一位置。
在您喜欢的编辑器中打开它,然后找到
行;extension=php_openssl.dll
删除分号
extension=php_openssl.dll
现在,HTTPS应该可以在php中使用。
答案 1 :(得分:4)
通过使用Havenard的答案。只需添加' ..'附上网址
php -r "readfile('http://getcomposer.org/installer');" | php -- --disable-tls
答案 2 :(得分:3)
好吧,既然解决方案无论出于何种原因似乎都不适合您,您可以观察到所有这些命令正在下载文件并将其打印到另一个php
进程中。这是一个相当简单的问题,可以通过微小的改编来解决。
您可以删除https
并使用http
:
php -r "readfile(http://getcomposer.org/installer);" | php -- --disable-tls
或者让其他工具获取此文件,例如:
wget -s -O - "https://getcomposer.org/installer" | php -- --disable-tls
甚至:
curl -sSk "https://getcomposer.org/installer" | php -- --disable-tls
选项--disable-tls
与installer
脚本相关,它会告诉它在安装过程中将执行的更新下载中使用http
而不是https
。
答案 3 :(得分:0)