-
DedeCms在海外Linux主机上无法采集的解决方案
- 时间:2025-03-30 10:48:01 来源: 人气:0
最近又重新研究了一下dedecms CMS,深入了解了dedecms 5.5的功能,发现其功能确实强大。于是将它上传到我的Dreamhost主机,并使用一个临时域名进行测试。然而,在测试过程中遇到了一些问题,例如无法采集内容,甚至DEDE发布文章时的“下载远程图片和资源”功能也无法正常使用。
经过一番排查,我回忆起之前有文章提到Dreamhost的主机禁用了allow_url_fopen,这可能是导致无法采集的原因。在网上搜索后,找到了几篇建议通过自己编译PHP来让Dreamhost支持采集的文章。参考Dreamhost官网的教程,通过SSH折腾了半天,终于成功编译了自己的PHP版本。满怀期待地再次尝试采集,但依旧失败。上传探针检查后发现,allow_url_fopen确实是启用状态,这让我感到非常困惑。
继续深入研究并反复测试后,我发现Dreamhost实际上已经默认启用了allow_url_fopen,网上那些教程大多是2008年以前的文章,可能当时Dreamhost确实禁用了这个功能,但现在显然已经放开限制。
经过两天的努力,虽然解决了部分问题,但dede的采集功能依然无法正常工作。为了验证是否是dede本身的问题,我上传了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);
完成以上修改后,问题迎刃而解。
通过这次经历,我深刻体会到,有时候问题的根源可能并不在于服务器配置,而是程序本身的兼容性问题。希望这篇文章能够帮助到遇到同样问题的朋友。
相关文章
-
在网站建设与维护的过程中,优化代码结构和功能是提升网站性能的重要步骤。本文将介绍如何通过自定义函数实现文章删除时自动清理相关资源的功能,从而提高系统的整洁性和存储效率。以下是具体的操作步骤及代码实现。首先, 在 `/include` 目录下创建一个名为 `extend.func.php` 的文件...2025-03-31
-
在进行图片上传操作时,用户可能会遇到302错误以及带有ERROR提示的图片上传失败问题。这些问题可能由多种原因引发,因此本文将对这些情况进行整理,以帮助大家更有效地定位并解决问题。 第一种情况:图片文件本身损坏。 这种情况会导致系统返回ERROR错误提示,不过发生概率较低。如果怀疑是图片损坏导致的...2025-03-31
-
如果您正在寻找一种高效的方法来使用Dedecms模板搭建网站或论坛,那么本文将为您提供详尽的指导。从模板解压到最终完成配置,每一步都将清晰呈现,帮助您快速掌握整个流程。 第一步:解压Dedecms模板 将下载的Dedecms模板文件解压出来,确保所有文件完整无误。如下图所示: 第二步:获取D...2025-03-31
-
Dedecms Dede 附加表自定义字段与主表文章关联方法
在使用DedeCMS开发装修网站时,设计师和设计作品之间的关联是一个重要的功能需求。通常情况下,文章(作品)的内容部分存储在主表dede_addonarticle中,而自定义字段则存储在附加表dede_archives中。为了实现这一功能,可以采用以下两种方法。 ① 根据发布人调用相关文章; ...2025-03-31