今天在给客户制作完网站后需要批量添加内容,所以就用到了织梦自动采集功能,这样省去了人工手动添加时间,但是采集规则写好后怎么测试都不好用,各种找问题问百度我的规则设置完全没有问题,但是就是解决不了,在就要放弃采集的时候,看到了一篇文章,是服务器函数设置问题,fsockopen函数需要开启一下就可以了,喜出望外啊。
下面说一下我的解决方法,我购买的是万网阿里云主机,阿里云默认是会把pfsockopen 函数禁用的,进入主机管理里面开启一下就可以了,如下图:
那么为什么大部分空间商会把 fsockopen 函数呢?
现在使用织梦 DedeCms 网站的站长越来越多,黑客也开始活动起来。争对 DEDECMS 的开源特性,很多能利 用的漏洞,都被黑客利用从而进行攻击等。做为站长或服务器 idc 商,肯定是想办法解决这些隐患的!所 以很多 idc 空间商, 都把虚拟主机用户的 php.ini 中的 fsockopen 函数给禁用了! 导致 dedecms 无法采集。
以上是通过修改主机的解决方法,但是如果你购买的是非阿里云主机,很多IDC商是没有自定义设置的,这样需要你改动一下程序了,如下步骤:
解决办法。(注意修改文件前记得备份)如下:
第一: 原理我们是把 fsockopen 函数替换成 pfsockopen 函数, 因为 pfsockopen 可保持 keep-alive 连接, 使黑客无法持续性的攻击。
第二:涉及到的 dedecms 文件有如下:
dedecms5.6 有如下:
include/dedehttpdown.class.php
include/dedecollection.func.php:
include/mail.class.php dede/module_main.php
dede/api_ucenter.php
dedecms5.7 有如下:
include/dedehttpdown.class.php
include/sphinxclient.class.php
include/dedecollection.func.php:
include/mail.class.php ask/data/scores.inc.php:
dede/module_main.php
dede/api_ucenter.php plus/bshare.php
找到这些文件把其中的 fsockopen 替换成 pfsockopen 就可以了。
以上是织梦自带采集功能不好用的2中解决方法,希望对你有用。
评论