curl/file_get_contents/get_headers "failed to open stream"
curl/file_get_contents/get_headers "failed to open stream"
隔离我的问题后,我正在使用以下代码测试我的 API:
$url = 'http://example.com/api/myendpoint;
print_r(get_headers($url));die();
有时它确实有效,但有时它 returns 404。
link 我只访问 returns 一个 JSON 响应。
这在我重新启动 Amazon EC2 服务器后开始发生。
如果我在本地使用它似乎效果更好(但即使在那里有时也不起作用)。
Array
(
[0] => HTTP/1.1 200 OK
[1] => Server: nginx/1.10.1
[2] => Content-Type: application/json
[3] => Connection: close
[4] => Cache-Control: private, must-revalidate
[5] => Date: Wed, 02 Nov 2016 14:47:36 GMT
[6] => pragma: no-cache
[7] => expires: -1
[8] => X-Debug-Token: fadeb4
[9] => Strict-Transport-Security: max-age=31536000; includeSubdomains;
)
我尝试在一些在线 php 测试人员中进行。同样的问题。
我认为这是服务器配置问题,但我不知道如何调试它。
感谢您的帮助。
更新
当我看到 request/response
的 htmlentities 时,我得到了这些数据
Array
(
[url] => http://example.com/api/myendpoint
[content_type] => text/html
[http_code] => 404
[header_size] => 163
[request_size] => 206
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.00557
[namelookup_time] => 0.004207
[connect_time] => 0.004851
[pretransfer_time] => 0.004874
[size_upload] => 0
[size_download] => 579
[speed_download] => 103949
[speed_upload] => 0
[download_content_length] => 579
[upload_content_length] => 0
[starttransfer_time] => 0.005555
[redirect_time] => 0
[redirect_url] =>
[primary_ip] => ::ffff:XX:XX:XX:XX
[certinfo] => Array
(
)
[primary_port] => 80
[local_ip] => ::ffff:YY.YY.Y.YY
[local_port] => 42744
)
问题是主ip XX:XX:XX:XX:XX 不是我的实际ip。这是我的旧 IP,在更改亚马逊网络服务器中的实例之前。
这可能是导致问题的原因,但我该如何解决?
我发现了它是什么:
当我更改我的亚马逊网络服务器时,在我的 OVH 托管中我更改了我的 dns 的 ipv4。
但是我没有改ipv6.
所以有时当我尝试访问该站点时,呼叫被重定向到正确的 ip(ipv4 中显示的路径),有时是旧的错误的 ip(ipv6 指示的路径)
隔离我的问题后,我正在使用以下代码测试我的 API:
$url = 'http://example.com/api/myendpoint;
print_r(get_headers($url));die();
有时它确实有效,但有时它 returns 404。 link 我只访问 returns 一个 JSON 响应。
这在我重新启动 Amazon EC2 服务器后开始发生。
如果我在本地使用它似乎效果更好(但即使在那里有时也不起作用)。
Array
(
[0] => HTTP/1.1 200 OK
[1] => Server: nginx/1.10.1
[2] => Content-Type: application/json
[3] => Connection: close
[4] => Cache-Control: private, must-revalidate
[5] => Date: Wed, 02 Nov 2016 14:47:36 GMT
[6] => pragma: no-cache
[7] => expires: -1
[8] => X-Debug-Token: fadeb4
[9] => Strict-Transport-Security: max-age=31536000; includeSubdomains;
)
我尝试在一些在线 php 测试人员中进行。同样的问题。
我认为这是服务器配置问题,但我不知道如何调试它。
感谢您的帮助。
更新
当我看到 request/response
的 htmlentities 时,我得到了这些数据Array
(
[url] => http://example.com/api/myendpoint
[content_type] => text/html
[http_code] => 404
[header_size] => 163
[request_size] => 206
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.00557
[namelookup_time] => 0.004207
[connect_time] => 0.004851
[pretransfer_time] => 0.004874
[size_upload] => 0
[size_download] => 579
[speed_download] => 103949
[speed_upload] => 0
[download_content_length] => 579
[upload_content_length] => 0
[starttransfer_time] => 0.005555
[redirect_time] => 0
[redirect_url] =>
[primary_ip] => ::ffff:XX:XX:XX:XX
[certinfo] => Array
(
)
[primary_port] => 80
[local_ip] => ::ffff:YY.YY.Y.YY
[local_port] => 42744
)
问题是主ip XX:XX:XX:XX:XX 不是我的实际ip。这是我的旧 IP,在更改亚马逊网络服务器中的实例之前。 这可能是导致问题的原因,但我该如何解决?
我发现了它是什么:
当我更改我的亚马逊网络服务器时,在我的 OVH 托管中我更改了我的 dns 的 ipv4。 但是我没有改ipv6.
所以有时当我尝试访问该站点时,呼叫被重定向到正确的 ip(ipv4 中显示的路径),有时是旧的错误的 ip(ipv6 指示的路径)