安装DEDECMS出现Deprecated: Function ereg_replace() is deprecated in 的原因
2011-12-12 17:24:33| 分类:dede|举报|字号订阅
安装DEDECMS出现
Deprecated: Function ereg_replace() is deprecated in 的原因是服务器PHP环境使用了PHP5.3乃至更高的PHP版本,
目前DEDE中有很多地方的正则函数都用的ereg_replace,而这个函数现在在PHP5.3中已经被废止了。
Deprecated: Function ereg_replace() is deprecated in 的解决办法:在:dede目录找到config.php,在第二行,把
define('DEDEADMIN', ereg_replace("[/\\]{1,}", '/', dirname(__FILE_ _) ) );
换成
define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/",'/', dirname(__F ILE__) ) );
即可。
就这样轻松解决了DEDECMS安装时遇到的
Deprecated: Function ereg_replace() is deprecated in问题。
第一种:
安装WampServer #1045出错提示处理方法
2012-05-08 22:55:28| 分类:PHP技术| 标签:wampserver #1045 |举报|字号订阅在XP或在WIN7时安装WampServer登入phpMyAdmin 常会提示文档#1045 - Access denied for user 'root'@'localhost' (using password: NO) ,可试试用下面方法处理。
方法1
1.打开wamp\apps\phpmyadmin3.
2.0.1路径下找到“config.inc.php”文件,修改
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
$cfg['Servers'][$i]['AllowNoPassword'] = flase;
2. 管理员登陆系统,停止mysql服务或者结束mysqld进程
3. 进入命令行,来到mysql的安装目录.假设安装目录为d:\mysql\ , CMD进入命令行
4. 运行d:\mysql\bin\mysqld --skip-grant-tables 启动mysql,关闭权限的检查
5. 运行d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root 密码
6. 重新启动mysql服务
再进phpMyAdmin,打上用户名密码试试,如果不成功,直接用用户名ROOT 密码空也可以进入phpMyAdmin了。。。
方法2
1、如果MySQL服务器正在运行,停止它。
如果是作为Windows服务运行的服务器,进入服务管理器:开始菜单->控制面板->管理工具->服务
如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。
2、在C盘新建C:\mysql-init.txt,内容如下:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); 保存该文件。
3、开始菜单->运行-> cmd 在DOS命令提示符下,执行命令:
c:\wamp\bin\mysql\mysql5.5.20\bin\mysqld --init-file=C:\mysql-init.txt
刷新网页就能成功链上数据库了。
第二种
登陆首页显示:Fatal error: Call to undefined function ParCv() in /include/dedesql.class.php on line 489
登陆后台显示:Deprecated: Function ereg_replace() is deprecated in /dede/config.php on line 2
Fatalerror: Call to undefined function ParCv() in \include\dedesql.class.php on line 489
(为保护客户的隐私,程序的完整路径没有写出,只写出错误路径。)
其实这个问题是因为function ParCv() 并没有封装在类dedesql.class.php里。
下面给大家分享一下解决方法:
打开include/dedesql.class.php找到if(isset($GLOBALS[‘arrs1′])){ $v1 = $v2 = ”; for($i=0;isset($arrs1[$i]);$i++) { $v1 .= ParCv($arrs1[$i]); } for($i=0;isset($arrs2[$i]);$i++) { $v2 .= ParCv($arrs2[$i]); } $GLOBALS[$v1] .= $v2;}
替换为
if(isset($GLOBALS[‘arrs1′])){ $v1 = $v2 = ”; for($i=0;isset($arrs1[$i]);$i++) { $v1 .= chr($arrs1[$i]); } for($i=0;isset($arrs2[$i]);$i++) { $v2 .= chr($arrs2[$i]); } $GLOBALS[$v1] .= $v2;}
替换后清除下浏览器缓存,在进入前台和后台就显示正常运行了。无忧主机小编希望这篇文章能帮到遇到同样问题的站长朋友们。
第三种:
安装DEDECMS出现Deprecated: Function ereg_replace() is deprecated in 的原因是服务器PHP 环境使用了PHP5.3乃至更高的PHP版本,
目前DEDE中有很多地方的正则函数都用的ereg_replace,而这个函数现在在PHP5.3中已经被废止了。
Deprecated: Function ereg_replace() is deprecated in 的解决办法(注:在linux系统的主机下测试有效,在本地windows仍报错):
在:dede目录找到config.php,在第二行,把
define(‘DEDEADMIN’, ereg_replace(“*/\\+,1,-”, ‘/’, dirname(__FILE__) ) );
换成
define(‘DEDEADMIN’, preg_replace(“/*\/\\\\+,1,-/”,’/’, dirname(__FILE__) ) );
即可。
windows本地用wamp测试解决办法:
将
define(‘DEDEADMIN’, ereg_replace(“*/\\+,1,-”, ‘/’, dirname(__FILE__) ) );
改为
define(‘DEDEADMIN’,strtr(dirname(__FILE__),’\\/’,’//’));
就不报错了
就这样轻松解决了DEDECMS安装时遇到的Deprecated: Function ereg_replace() is deprecated in问题。
如何取消服务器/主机空间目录脚本的执行权限
如何取消服务器/主机空间目录脚本的执行权限
支持版本:
浏览:227081
2011-11-15来源:作者:天涯编辑:admin
网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。
Windows下的IIS
IIS6.0
打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。(如图1)
(图1)
IIS7
IIS7也类似于IIS6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”(如图2)
(图2)
在“编辑功能权限……”中,我们直接去除脚本的执行权限即可。(如图3)
(图3)
Apache下目录脚本的执行权限设置
独立主机配置
在Apache中,没有Windows 下IIS的图形管理界面,我们需要手工修改下apache的配置文件,来进行目录脚本的执行权限的设定。
首先我们找到apache的配置文件httpd.conf,通常情况下,该配置文件在apache安装目录下的conf文件夹中(如图4)。
(图4)
打开httpd.conf文件,找到内容中如图5的位置:
(图5)
将需要限制执行脚本文件的目录配置添加到下方:
配置内容为:
配置内容中的DIR为需要限制执行脚本文件的目录,FilesMatch后的内容为需要限定的执行的脚本后缀名。例如:这里需要禁止测试站点uploads文件夹下的PHP,ASP,JSP 脚本的运行,则进行如下图6配置:
(图6)
在配置完成后,重启一下apache,配置便生效!
在操作前,uploads文件夹下我新建了一个index.php文件,图7为未作配置前访问情况
(图7)
图8为重启apache后访问该页面的效果。
(图8)
虚拟主机/空间配置
在配置前需要确认你的空间是否支持.htaccess和rewrite,该方法基于.htaccess文件中使用rewrite来达到禁止指定脚本的运行效果。
规则内容如下:
针对uploads,data,templets 三个目录做了执行php脚本限制;
将如上内容存储至到.hatccess文件中,将该文件存放到你的站点根目录下,
这样,目录脚本的执行权限就控制好了,规则上传前后的效果同图7,图8。
感谢:djks、织梦的鱼参与编辑
如何将系统的data目录迁移到web以外目录
如何将系统的data目录迁移到web以外目录
支持版本:
浏览:195252
2012-01-05来源:作者:天涯编辑:admin
data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更是非常危险,所以我们建议将这个data目录搬移出Web可访问目录之外。本篇将介绍如何将data目录搬移出Web访问目录。
本操作需要用户对DedeCMS系统有较高的了解,如果您感觉自己不太掌握,可以考虑选择官方安全相关服务。点击查看
1.将data目录转移到非Web目录
我们这里举例“D:\dedecms\v57”为我们系统的根目录,我们需要将目录下的data文件夹(如图1)迁移要上一级目录(非Web目录),简单的办法直接剪切或者拷贝即可。
我们移动上一级目录中,注意观察文件路径。
2.修改DEDEDATA目录的配置常量
找到系统目录下/include/common.inc.php文件,修改DEDEDATA常量为你的系统目录。
3.配置tplcache缓存文件目录
进入系统后台,在配置中修改tplcache目录为你想对目录。
好了,这样我们就将data目录顺利迁移出去了。
本操作目前仅在V57系统中测试有效,其他版本系统可能需要进行调整。
Apache使用localhost可以访问但使用本机IP (局域网)不能访问
Apache 使用localhost(127.0.0.1)可以访问,使用本机IP(局域网)不能访问,为什么本机ip地址不能访问localhost,wampserver 用ip访问不了
<----------------------------------------------------------------------->
本机ip是:192.168.1.25,输入后提示:
Forbidden
You don't have permission to access / on this server
<----------------------------------------------------------------------->
对于此问题的解决办法,打开apache安装路径中的http.conf(有些是httpd.conf)文件,(如果找不到就搜索http.conf,或者httpd.conf)
找打以下内容
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
在Deny from all 前加上#来注释掉此行,并在Allow from 127.0.0.1 后面加上一行Allow from 192.168.1.* 即可。修改后如下:
# onlineoffline tag - don't remove
Order Deny,Allow
# Deny from all
(或者在此加个“Allow from all”)
Allow from 127.0.0.1
Allow from 192.168.1.*
上面全部改好后,保存文件
最重要的是要重新启动一次服务器,在用本机ip查看