2011-06-06 122 views
3

我試圖做一些本地託管的Facebook開發,但我在大學網絡上,因此所有從我的計算機傳出的連接都需要通過我們的代理服務器。我遇到的主要問題是,我似乎無法找到任何設置Apache來使用代理服務器的文檔,而不是作爲代理服務器的ACT。PHP本地託管,通過代理服務器連接到外部資源

然而,考慮到這一點,也許當我做一個「cURL」請求或一個fopen,Apache不執行數據檢索,而是PHP驅動程序這樣做。舊版本允許您在PHP.ini文件中設置全局代理,但不是在PHP 5中。

我必須使用代碼來實際設置默認值,並且無法找到任何可以永久設置它們的配置文件。例如,該設置視頻流,以便FOPEN CAN功能:

$r_default_context = stream_context_get_default 
    (
    array 
     (
     'http' => array 
      (// All HTTP requests are passed through the local NTLM proxy server on port 8080. 
      'proxy' => 'tcp://proxy.munged.edu:8080', 
      'request_fulluri' => True, 
      ), 
     ) 
    ); 

但這不會設置這是需要作爲一切使用捲曲,我必須這樣做:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_PROXY, "http://proxy.munged.edu:8080"); 
    curl_setopt($ch, CURLOPT_PROXYPORT, 8080); 

是否有任何人誰知道如何設置所有需要傳出連接的東西來使用這個代理,因爲我不會編寫特定於此計算機的代碼(因爲我的計劃是在本地處理我的代碼,然後在完成時將其上傳到某個Web空間:更改/上傳/刷新週期比更改/刷新週期更耗時)

編輯:

爲了澄清,我已經將所有這些包含在一個名爲「proxyconfig.php」的文件中,然後檢查它是否存在,並將它包含在頂部。如果沒有辦法在配置文件中設置默認值,那麼讓方法設置facebook.php頁面用於其API所需的所有內容將是awesom。

+5

即時通訊不知道這是可能的,因爲臉書需要回撥到您的服務器,除非您的服務器可以通過代理和防火牆連接,否則無論傳出黑客,它都會失敗 – 2011-06-06 22:32:56

+0

http://forum.developers.facebook.net/viewtopic。 php?id = 6461 我在facebook論壇上發現了這個非常有用的話題 – 2011-07-03 22:48:10

回答

1

假設應用程序處於iframe模式(FBML應用程序要求Facebook能夠回撥到您的服務器),您的方法纔是正確的。

如果問題希望能夠在本地開發和部署到遠程站點以最小的修改你的文件,我建議擴大BaseFacebook一個名爲LocalBaseFacebook類新的和不斷變化的CURL_OPTS到:

public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 10, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_TIMEOUT  => 10, 
    CURLOPT_USERAGENT  => 'facebook-php-3.0', 
    CURLOPT_PROXY   => 'http://proxy.munged.edu:8080', 
    CURLOPT_PROXYPORT  => 8080 
); 

當部署出來時,根據主機名或某些唯一標識的屬性/配置(甚至可以使用$ _GET變量,例如?is_local = 1)實例化Facebook類時進行切換,並將其附加到您的末尾畫布網址。

相關問題