DEDECMS5.5在國外Linux主機下無法擷取怎麼辦?
這陣子又把玩了下dedecms,看看這dedecms5.5的功能到底何等強大。於是乎上傳到我的Dreamhost主機下,用個臨時的網域跑了起來。玩著玩著便發現無法採集,連DEDE發布文章的下載遠端圖片和資源都無法使用。怪哉。
建議學習:織夢cms
遂想起先前似乎看過文章說Dreamhost的主機停用了allow_url_fopen,導致無法擷取。於是乎在網路上找啊找,找到了幾篇文章都是自己編譯php讓Dreamhost支援採集。於是乎也參考Dreamhost官網的介紹,透過ssh,折騰了大半天終於完成了編譯好自己的php,興高采烈的跑上系統採集一下,依舊失敗告終。上傳個探針一看,allow_url_fopen確實是啟用著,怪哉。再繼續Google之,隨後反覆測試證明,其實Dreamhost預設是啟用了allow_url_fopen的,網路上那些介紹的文章基本上都是08年或以前的文章,所以想必是Dreamhost自己想通了放開這個限製吧。
折騰了兩天,偏不信邪,上傳多個Supesite和php168上去,安裝、採集一氣呵成。你個乖乖,原來是dede自己採集不了。納悶。上dede官網搜尋一番,也發現有些網友也是在反應在國外Linux主機下採集不了。於是乎,終於找到了解決方法,就是改個文件而已。原先發現解決方法的文章忘記在哪裡看了,只有本機的一個改後的文件而已,在此謝過那位老兄。
出問題的文件在include/dedehttpdown.class.php這個文件,用本文提供的附件覆蓋上去後,便可以暢快的使用採集功能,在發表文章時亦能舒爽的使用“下載遠端圖片和資源」這個功能。經過比對這個文件,發現修改了兩處地方。
1、註解掉第280行的程式碼,如下:
程式碼如下:
// fputs($this->m_fp, $headString);
2、找到304行的程式碼,替換成如下程式碼:
程式碼如下:
$headString .= "Connection: Close\r\n\r\n"; //fputs($this->m_fp,"Connection: Close\r\n\r\n");
3、找到308行的程式碼,替換成如下程式碼:
程式碼如下:
$headString .= "\r\n"; //fputs($this->m_fp,"\r\n");
4、在315行的程式碼“ //取得應答頭狀態資訊」上面插入如下程式碼:
程式碼如下:
fputs($this->m_fp, $headString);
以上是DEDECMS5.5在國外Linux主機下無法採集怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!