這陣子又把玩了下dedecms,看看這dedecms5.5的功能到底何等強(qiáng)大。于是乎上傳到我的Dreamhost主機(jī)下,用個(gè)臨時(shí)的域名跑了起來(lái)。玩著玩著便發(fā)現(xiàn)無(wú)法采集,連DEDE發(fā)布文章的下載遠(yuǎn)程圖片和資源都無(wú)法使用。
遂想起此前似乎見(jiàn)過(guò)文章說(shuō)Dreamhost的主機(jī)禁用了allow_url_fopen,導(dǎo)致無(wú)法采集。于是乎在網(wǎng)上找啊找,找到了幾篇文章均是自己編譯php來(lái)讓Dreamhost支持采集。于是乎也參照Dreamhost官網(wǎng)的介紹,透過(guò)ssh,折騰了大半天終于完成了編譯好自己的php,興高采烈的跑上系統(tǒng)采集一下,依舊失敗告終。上傳個(gè)探針一看,allow_url_fopen確實(shí)是啟用著,怪哉。再繼續(xù)Google之,隨后反復(fù)測(cè)試證明,其實(shí)Dreamhost默認(rèn)是啟用了allow_url_fopen的,網(wǎng)上那些介紹的文章基本都是08年或以前的文章,所以想必是Dreamhost自己想通了放開(kāi)這個(gè)限制吧。
折騰了兩天,偏不信邪,上傳多個(gè)Supesite和php168上去,安裝、采集一氣呵成。你個(gè)乖乖,原來(lái)是dede自己采集不了。納悶。上dede官網(wǎng)搜尋一番,也發(fā)現(xiàn)有些網(wǎng)友也是在反應(yīng)在國(guó)外Linux主機(jī)下采集不了。于是乎,終于找到了解決方法,就是改個(gè)文件而已。原先發(fā)現(xiàn)解決方法的那篇文章忘記在哪看了,只有本機(jī)的一個(gè)改后的文件而已,在此謝過(guò)那位老兄。
出問(wèn)題的文件在include/dedehttpdown.class.php這個(gè)文件,用本文提供的附件覆蓋上去后,便可以暢快的使用采集功能,在發(fā)表文章時(shí)亦能舒爽的使用“下載遠(yuǎn)程圖片和資源”這個(gè)功能。經(jīng)過(guò)比對(duì)這個(gè)文件,發(fā)現(xiàn)修改了兩處地方。
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行的代碼“//獲取應(yīng)答頭狀態(tài)信息”上面插入如下代碼:
代碼如下:
fputs($this->m_fp, $headString);