2017-02-04 49 views
1

我有一個非常惱人的問題與MAMP和嘗試連接到外部源的所有功能。PHP MAMP fsockopen失敗,如果沒有IPv6 DNS條目可用

我在我的應用程序中有一個非常簡單的fsockopen。

$fp = fsockopen($this->port == 443 ? 'ssl://' . $this->host : $this->host, $this->port, $errno, $errstr, 20); 

這是我們的合作伙伴提供的一個庫。一切都被罰款,直到最後的MAMP或OSX更新我不確定。

該行產生以下錯誤:

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 

我已經讀了很多關於這個錯誤,如果名稱不解決出現的錯誤。所以我做了一些其他檢查,問題似乎是ipv6的決議。該網站沒有IPv6 DNS-Entry,但連接嘗試使用IPv6,並且出現錯誤並且連接已關閉。

,如果我嘗試在命令行上是相同的:

ping6: getaddrinfo -- nodename nor servname provided, or not known 

我得到了同樣的錯誤。那麼,如果沒有可用的名稱,爲什麼PHP不會回落到IPv4呢?

禁用IPv6不起作用。將v4地址添加到我的hosts文件沒有任何影響。

+0

好吧,我認爲這是一個10.12.4的問題,也許有人知道這個問題的一些問題。 – Stony

回答

0

確定該問題是由OSX的測試版引起的。我已經做了OSX 12.3的新安裝,並且運行良好。