ADSL宽带拨号提示“错误 676:电话占线”问题一则

前几天回老家,老妈说这几天上不了网,让我给看看怎么回事,打开电脑后,只见ADSL拨号程序一直在错误重连,一直也连不上,提示错误信息为“错误 676:电话占线”,检查了线路也没有问题,用自己的笔记本试了下,立马就连上,于是排除了线路问题。

接着就习惯性地在命令行输入 ipconfig /all ,猛的发现上面显示的网卡MAC地址变成了00-00-00-00-00-03,于是就考虑是不是这个原因造成的拨号连接失败,遂在网卡属性中将其修改为正常的网卡应该使用的MAC地址,如00-E0-4C-00-00-01,再次尝试拨号连接,立马就连上了,问题解决!

PS: 网卡MAC地址的修改方法请自行Google之

如何配置 CKEditor 使用 KCFinder?

要使 KCFinder 成为 CKEditor 的默认文件浏览器,很简单,你只需要编辑 CKEditor 主目录下的 config.js 文件如下:

CKEDITOR.editorConfig = function(config) {
   config.filebrowserBrowseUrl = '/kcfinder/browse.php?type=files';
   config.filebrowserImageBrowseUrl = '/kcfinder/browse.php?type=images';
   config.filebrowserFlashBrowseUrl = '/kcfinder/browse.php?type=flash';
   config.filebrowserUploadUrl = '/kcfinder/upload.php?type=files';
   config.filebrowserImageUploadUrl = '/kcfinder/upload.php?type=images';
   config.filebrowserFlashUploadUrl = '/kcfinder/upload.php?type=flash';
};

其中 /kcfinder/ 为你的 KCFinder 所在的路径,这里相对与站点根目录设置,你也可以使用 CKEditor API 来更改这些设置,详情请参见 CKEditor文档

如果 KCFinder 的路径需要相对与 CKEditor 设置,则配置文件写法如下(本例中 CKEditor 与 KCFinder 在相同目录下):

CKEDITOR.editorConfig = function(config) {
   config.filebrowserBrowseUrl = CKEDITOR.basePath+'../kcfinder/browse.php?type=files';
   config.filebrowserImageBrowseUrl = CKEDITOR.basePath+'../kcfinder/browse.php?type=images';
   config.filebrowserFlashBrowseUrl = CKEDITOR.basePath+'../kcfinder/browse.php?type=flash';
   config.filebrowserUploadUrl = CKEDITOR.basePath+'../kcfinder/upload.php?type=files';
   config.filebrowserImageUploadUrl = CKEDITOR.basePath+'../kcfinder/upload.php?type=images';
   config.filebrowserFlashUploadUrl = CKEDITOR.basePath+'../kcfinder/upload.php?type=flash';
};

当然,要使用 KCFinder ,还需要修改 KCFinder 的配置文件 config.php ,主要更改如下两个设置项:

    ...
    // 设置启用 KCFinder
    'disabled' => empty($_SESSION['upload_enabled']),
    ...
    // 更改你的上传路径
    'uploadURL' => "../../upload",

这里的上传路径与早期 FCKEditor 中自带的上传管理器不一样,是可以使用相对路径的,更多设置项请参见 KCFinder安装向导KCFinder集成指南之Session配置

使用 Google CDN 加载 jQuery 库的小技巧

使用 Google CDN 加载 jQuery 库的好处是可以提高加载的速度并节省流量,但由于国内糟糕的网络环境,Google的东西很可能加载失败,于是就需要一个可以 Failback 的代码,并且在本地离线状态下调试程序的时候也可以使用,代码很简单(以jQuery 1.5.1为例):

	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
	<script>
		!window.jQuery && document.write('<script src="js/jquery-1.5.1.min.js"><\/script>');
	</script>

打包修改过的文件的批处理,更新第2版

之前写过《打包修改过的文件的批处理》,现在这个批处理脚本已经过多次修改,增加了很多功能,新脚本代码如下:

@echo off
:: 网站更新文件打包程序
:: 作者: Mr.Lodar http://lodar.net/

:: 版本历史:
::
:: v2.4  2011年01月11日  随机临时目录
::                       防止多个批处理同时运行时产生冲突
:: v2.3  2011年01月11日  自动配置7-Zip安装目录
::                       自动检测7-Zip的安装目录,不需要再手工配置路径
:: v2.2  2010年12月03日  增加PATH环境变量设置
::                       在系统环境变量未加入7-Zip时不用复制程序文件到当前目录
:: v2.1  2010年11月16日  增加批打包支持 - 多个目录同时拖放并分别打包
::                       增加判断有修改的文件时才打包,不再生成空压缩包
:: v2.0  2010年11月16日  新增拖放打包支持 - 将目录拖放到脚本文件上自动打包
::                       (为了支持快速批打包,拖放模式只默认打包当天修改的文件)
:: v1.0  2010年06月某日  初始版本,实现了文件排除及默认值设置

:: 拖放到图标上执行的时候程序启动路径为用户目录
:: 如: "C:\Documents and Settings\User"
:: 这里把当前目录设置回批处理脚本所在目录
cd /d %~dp0

:: 检索7-Zip安装目录
for /f "tokens=2*" %%i in (
	'REG QUERY "HKLM\SOFTWARE\7-Zip" ^| find /i "Path"'
) do set "SevenZipPath=%%j"

:: 设置7-Zzip路径
SET PATH=%PATH%;%SevenZipPath%

:START
:: 设置临时目录:
set TEMP=temp_%random%

if not @%1@==@@ (
	set FROM=%~n1
) else (
	set /P FROM=源文件目录^(默认为www^):
	set /P TO=导出压缩包文件名^(默认为%FROM%-update-%date:~0,4%%date:~5,2%%date:~8,2%^):
	set /P DAY=修改时间^(m-d-y,默认为今天{%date:~5,5%-%date:~0,4%}^):
)

:: 设置变量默认值
if @%FROM%@==@@ set FROM=www
if @%TO%@==@@ set TO=%FROM%-update-%date:~0,4%%date:~5,2%%date:~8,2%
if @%DAY%@==@@ set DAY=%date:~5,5%-%date:~0,4%

:: 将要打包的文件复制到临时文件夹,将排除文件列表(excludelist.txt)中的文件排除在外
xcopy %FROM% %TEMP% /S /Y /I /D:%DAY% /EXCLUDE:excludelist.txt

IF EXIST %TEMP% (
	:: 使用7z命令行程序进行打包
	7z a -t7z %TO%.7z .\%TEMP%\*

	:: 删除临时文件
	rmdir /S /Q %TEMP%

	echo 文件已打包到 %TO%.7z
) else (
	echo %~n1 中没有需要打包的文件
)

:: 重置变量,防止默认值被设置为上次使用的值
set FROM=
set TO=
set DAY=
set TEMP=

:: 如果有更多目录要打包,则继续重新打包其它目录
if not @%2@==@@ shift && goto START

echo.

if @%1@==@@ (
	echo 打完收工! 按任意键退出...
	pause>nul
) else (
	echo 打完收工! 一会就退出...
	ping 127.0.0.1 -n 3 >nul
)

提示: 不要忘了 excludelist.txt 哦,参见之前的那篇文章《打包修改过的文件的批处理》。

WordPress 不兼容插件引发的惨案

前言

WordPress 从 2.x 升级到了 3.0.1,又恰逢更换了主机,从原来Windows的主机切换到了Linux主机上。

惨剧

某天在后台发现有插件可以更新了,于是点了自动更新,然后杯具的事情发生了,自动更新失败,以为是权限问题,登上FTP,到处查看修改权限,无果,于是念叨这主机是不是有问题,不能通过它访问网络?是不是差劲了点?然后手动上传覆盖了好几个插件的更新……

再过了几天,发现模板不支持3.0的菜单功能,于是换了模板,加入菜单,又发现了问题,新建菜单可以成功,但是不能修改,每次修改都失败……

随即要添加文章,新的问题又来了,新添的文章会自动生成固定链接,因为觉得固定链接生成的不是很好,想修改掉,结果也不能修改……

这下可让我烦起来了,想想肯定是哪里出问题了,静下心想了想,后台凡是Ajax的操作均无响应,并且数据也没有更新,之前出问题的部分都涉及Ajax,是不是这里出问题了?

上帝保佑

马上开启Firefox,用Firedebug查看XHR数据,发现admin-ajax.php返回HTTP响应头为

HTTP/1.1 500 Internal Server Error

很明显,后台程序运行出错了,WP本身应该不会烦这么低级的错误,我又没改过后台的代码,那么应该是插件引起问题无疑了,在wp-config.php文件中激活调试

define('WP_DEBUG', true);

然后在错误日志文件中找到了一些与插件文件相关的错误,将这些插件逐个禁用/启用排查问题,结果发现只要将“WordPress Thread Comment”插件(作者:偶爱偶家)禁用之后这些Ajax操作就都正常了,所以确定该问题是由“WordPress Thread Comment”插件导致

PS: 今天(2011年1月8日)升级及添加了些插件,发现又出了这个问题,这次查出来是“All in One SEO Pack”这个插件导致,抱着试试看的态度重新启用“WordPress Thread Comment”插件,发现又可以用了……

结局

就这样,之前所有的问题(包括自动更新的问题)就都解决了,不兼容插件惹的祸啊~ 差点错怪主机提供商了,汗~~