php - 找不到套接字传输 "username"(cURL 或 docker 容器内的 composer)

标签 php ssl docker curl proxy

我在需要用户/密码身份验证的公司代理后面。我在 Windows 10 机器上的 docker 客户端中输入了凭据。这些设置过去曾有效。我在我的 docker build 进程中使用与 --build-arg 相同的凭据,它也有效。我可以构建基于 openSUSE 的镜像并运行它。

图像包含 cURL 和 composer(用于 PHP 开发)。我可以毫无问题地在公司代理网络之外使用这些工具。然而,在公司内部,我尝试:

curl --silent --show-error https://getcomposer.org/installer | php

composer self 更新

我收到了这个错误信息:

无法打开流:无法找到套接字传输“xxx” - 您是否在配置 PHP 时忘记启用它?

其中 xxx 是我在 docker 代理设置中的用户名 username:password@123.456.789.0:port

据我了解,curl 和 composer 认为我的用户名是一个应该用于下载文件的协议(protocol)。这可能应该是“http”或“ssl”等!?

非常感谢任何帮助!我正在使用 zypper 安装 curl:zypper --non-interactive install curl php7 php7-curl php7-openssl php-composer...

最佳答案

代理是开发工具的 hell 。您必须考虑每个工具的代理配置。 我的建议是安装一个工具来透明地将所有流量从主机路由到代理。

一旦这样的 Windows 工具是 proxycap .在您的机器上安装它后,所有流量都应重定向到代理,您不必为任何工具配置代理设置。

关于php - 找不到套接字传输 "username"(cURL 或 docker 容器内的 composer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534810/

相关文章:

php - 同时运行多个 cron 实例

Docker:来自守护进程的错误响应:无法获取摘要 sha256

java - 如何实现这样的流量

docker - 测试服务器的Docker架构

php - Mysql UPDATE查询,保持现有值为NULL

php - 如何将数组值保存为mysql数据库中的每条记录

javascript - 使用基于以下数组的多重更新语句

java - AWS 单实例 Tomcat SSL

android - 如何使用 Apache 客户端和 KeyChain API 从 Android 4.1 进行客户端证书身份验证

ssl - 如何在 Tomcat 中启用 TLS 重新协商?