織夢DedeCms在國外Linux主機下不能采集的解決方法
遂想起此前似乎見過文章說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);
最后大功告成。
以上就是織夢DedeCms在國外Linux主機下不能采集的解決方法的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。新聞熱點
疑難解答