2012-05-31 57 views
1

我想用facebook api讓我的網站用facebook登錄。 它正常工作,但它有錯誤消息。 我檢查錯誤日誌,它表明facebook api服務器錯誤500問題

[週四5月31日17點十分53秒2012] [錯誤] [客戶114.34.249.224] PHP致命錯誤:未捕獲CurlException:7:無法連接到2A03:2880: 2110:3f01:face:b00c:0:1:沒有路由到主機\ n在886行上拋出/home/fb3/src/base_facebook.php

我該如何解決這個問題?

謝謝。

更新:

我的路由表中沒有包括也INET6:

互聯網: 目的網關參考文獻標誌使用NETIF過期

默認的xxx.xxx.xxx.xxx UGS 57 1209297即bge0

127.0.0.1鏈路#2 UH 0 17 lo0的

xxx.xxx.xxx.xxx/24鏈路#1 U 0 2406 7即bge0

xxx.xxx.xxx.xxx鏈路#1 UHS 0 192 lo0的

Internet6:

目的網關標誌NETIF過期

:: 1 :: 1 UH lo0的

fe80 ::%lo0/64 link#2 U lo0

fe80 :: 1%lo0 link#2 UHS lo0

FF01:2 ::/32 FE80 :: 1%的lo0üLO0

FF02 ::%的lo0/32 FE80 :: 1%的lo0ü

和我inet4設置: $多個rc。 conf

- sysinstall generated deltas - #Tue Jul 13 18:02:58 2010 Created:Tue Jul 13 18:02:58 2010 爲方便用戶啓用網絡守護程序。 請對此文件進行所有更改,而不是/etc/defaults/rc.conf。 此文件現在只包含來自/etc/defaults/rc.conf的覆蓋。

鍵映射= 「us.iso」

defaultrouter中= 「xxx.xxx.xxx.xxx」

主機名= 「domain.com」

ifconfig_bge0 =「INET xxx.xxx.xxx .xxx網絡掩碼255.255.255。0"

的sshd_enable = 「YES」

apache22_enable = 「YES」

mysql_enable = 「YES」

sendmail_enable默認= 「NONE」

proftpd_enable = 「YES」

named_enable =「YES」

回答

0

看起來像是在嘗試要通向Facebook的IPv6地址,並且沿途的某些內容未針對IPv6進行正確設置。

作爲一個快速的手動入侵,在腳本中找到對graph.facebook.com的引用,並快速將其硬編碼爲graph.facebook.com的IPv4(xxx.xxx.xxx.xxx)地址。如果一切正常,然後更改腳本回來,或者:

  1. 讓您的服務器上運行僅IPv4(最簡單的,但沒有前瞻性)
  2. 檢查您與服務器之間的硬件不支持IPv6配置,並獲得它改變了(比它更難 - 可能意味着新路由器在某處,但如果你不這樣做,服務器上就沒有IPv6!)。
+0

我確定,我的服務器只運行IPV4。也許ISP的問題?我嘗試編輯base_facebook.php,並將代碼更改爲IPv4 IP,這是工作。但仍然不能使用fb登錄功能。我現在很困惑... – user1275529

+0

你的服務器已經運行IPv6了 - 從你的錯誤信息中可以清楚地看到。現在你會遇到一個不同的問題,我們需要新的信息來幫助你解決這個問題。 – Robbie

+0

謝謝,我已更新我的配置。 – user1275529

0

如果您正在運行Linux,您可能已加載IPv6內核模塊,並且在您加載DNS時,它會先返回給您一個IPv4地址,然後是IPv6地址。如果由於某種原因,您無法連接到IPv4,那麼您的系統將嘗試下一個地址,由於它是IPv6,並且您沒有IPv6連接,您將會收到上述錯誤。

+0

我正在運行freebsd 8.0,但我沒有設置任何有關v6的配置。 – user1275529