我们正在使用 OpenShift 3.4
。为 pod 使用 s2i
PHP 图像。当从 pod 到外部资源执行 curl
时,它返回 405 Not Allowed nginx/1.16.1
。代码在本地设置上运行良好。我从网上了解到,这是因为我们自己的服务器不允许 POST
请求,我们需要对其进行配置以允许相同的请求。
$ch = curl_init($ldapAuthURL);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec($ch);
我无法解决此问题,因为我对 OpenShift
没有任何经验,我尝试寻找 httpd
文件,但无处可寻。支持团队也无法提供帮助,他们说他们只支持图像推送和拉取,而且是我们的应用程序代码有问题。
答案 0 :(得分:1)
令我沮丧的是,支持团队是对的,这是一个应用程序问题。我的团队成员已配置了在 nginx
上运行 Angular 应用程序的前端的 URL。因此会出现神秘错误 405 nginx
,因为前端不支持该 URL 上的 post 请求。
这就是 PHP pod 中没有 Nginx 配置文件的原因,因为它使用 Apache
来提供文件。
解决步骤: