易软博客->技术笔记 http://blog.1zsoft.com 易软开源 2005-2007 2009-12-11 21:57 +0800 纠结的IE6 Fixed Position Author: 王春生

在开发ZenTaoPMS过程中,遇到这样的一个问题,我需要将一个导航条固定在页面的最下方。这个功能在其他浏览器下面都很容易实现,直接使用css的fixed属性就好了。但在IE6下面,它并不支持这个属性。在网上查了很多的资料,都是使用IE6的hack来完成的,通常的代码如下:

<!--[if IE 6]>

<style type="text/css">

html{overflow:hidden;}

body{height:100%; overflow:auto;}

div#footer{position:absolute;}

</style>

<![endif]-->

但是同样的代码拷到ZenTaoPMS中后,发现滚动条没有了。忍了很久,后来改动了一番,将上面的代码改为: ]]>
http://blog.1zsoft.com/node78699.html http://blog.1zsoft.com/node78699.html 技术笔记 2009-12-11 21:57 +0800
windows下面使用virtualbox,解决dns解析异常的问题 Author: 王春生

继上篇配置之后,运行一段时间发现域名无法解析。但通过ip地址还是可以访问。在网上查了一下,发现是virtualbox NAT方式下面的域名服务器会出现问题。

过程是这样的:

FreeBSD的虚拟机设置了通过 DHCP方式来获取IP地址。

在获取IP地址的同时,也会在/etc/resolve.conf里面设置dns的解析服务器为10.0.2.3

但是10.0.2.3这个dns server在一段时间之后就会出现工作不正常的情况。

那么这个问题该如何解决呢?

只需要在/etc/resolve.conf里面设置正确的dns server就可以了。但问题又出来了,dhcp方式是每隔一段时间都会更新的。更新之后的dns server就又被改回去了。 ]]>
http://blog.1zsoft.com/node78425.html http://blog.1zsoft.com/node78425.html 技术笔记 2008-12-21 10:41 +0800
windows下面使用virtualbox搭建FreeBSD的开发环境 Author: 王春生

相比较于linux而言,我更喜欢freebsd的简洁的风格。所以我的服务器也是选用了FreeBSD作为操作系统。平时开发的时候,就需要有一个FreeBSD的开发环境来进行调试。

直接安装一个FreeBSD也是一个解决方案,不过就目前来讲,完全放弃windows平台也有很多的不方便。比如网上银行,还有公司内部的很多系统只支持windows。所以主机还是使用windows,不过我们可以使用虚拟机来解决这个问题。 

谈到虚拟机,也有很多的选择。比如vmware,virtualbox。我最终选择了virutalbox。原因有两个,virtualbox很小,安装文件20多兆。运行起来的速度也很快。 ]]>
http://blog.1zsoft.com/node78424.html http://blog.1zsoft.com/node78424.html 技术笔记 2008-12-20 09:14 +0800
推荐安装的几个firefox插件 Author: wwccss

下面这几个插件都是用来调试网页时用的。

1. view source chart: 可以非常完美将任何一个网页的源代码优雅的展现出来。哪怕是js代码运行之后write出来的东东。

2. jsview: 一个网页所调用的外部js和css全部包括会暴露在你的面前。

3. live http headers: 可以查看每一次请求,你的浏览器和服务器之间都说了哪些悄悄话,做个明白人:)。 还有推荐使用的就是firefox自己带的错误控制台。任何样式表错误和js错误都可以在这个控制台看到。是我们调试代码的一个很好的工具。 ]]>
http://blog.1zsoft.com/node78380.html http://blog.1zsoft.com/node78380.html 技术笔记 2007-02-10 21:46 +0800
如何快速启动应用程序 Author: wwccss

这是2004年我在西线工作时整理的小技巧:

目标: 可以快速的启动要运行的程序,而不是在一大堆的菜单里面进行查找。

方式

建立各种常见应用程序的快捷方式。

将带有中文名称的快捷方式名称改为英文的名称,比如将"快捷方式word"改为"word"

这时所建立的快捷方式文件的扩展名时lnk,系统默认的不会执行这些文件,除非你将".lnk"也写上。但这不符合我们“快速启动应用程序” 的初衷。所以我们需要让系统执行lnk文件。 右键单击“我的电脑”=》“属性”=》“高级”=》“环境变量” 需要修改其中的两项:一项为PathExt,在这一个变量的后面增加lnk文件类型。 另外一个需要修改的地方就是系统的路径变量,将你的快捷方式存放的路径写入Path变量中去。 ]]>
http://blog.1zsoft.com/node78379.html http://blog.1zsoft.com/node78379.html 技术笔记 2007-01-02 09:31 +0800
windows下面vim编辑utf-8的文件乱码 Author: wwccss

最近在windows下面一直使用gvim来编辑文件,慢慢习惯了之后,感觉vim还是非常好用的一个编辑器。

我原来设置的vimrc里面是可以支持gbk和utf8的。但今天我在编辑一个文件的时候,设置了set encoding=utf8。然后再打开utf8文件后,就无法自动显示utf-8的文件了,都是乱码。必须要自己手工设置一下才可以。不爽。 一开始怀疑是自己将vimrc文件修改过了,但自己检查之后没有问题。后来又重新安装vim,还是乱码。

后来经过仔细观察,发现在用户目录下面有一个.gtkrc的文件,心想是不是这个文件在作怪呢?于是删之,重新启动vim,一切ok. 应该是vim使用了gtk的库,所以gtk方面的一些环境设置也会影响它。:) ]]>
http://blog.1zsoft.com/node78378.html http://blog.1zsoft.com/node78378.html 技术笔记 2006-12-28 22:27 +0800
我自己使用的一套样式表 Author: wwccss

这是我在做签名网站的时候使用的一套样式表,抛砖引玉,供大家参考,实际效果请查看:

/* Global setting. */

body{margin: 0px; padding: 0px; font-family: Tahoma; font-size: 12px; background-color: #FFF; }

table, input, textarea{font-family:Tahoma; font-size:12px;}

a, a:visited{text-decoration: none;}

/*a:hover {color:#FFF;}*/

form{margin:0}

label{display:block; margin:0; padding:0 20px 0 0; text-align:right; clear:none}

label input {margin:2px; padding:0;}

/* Special box area. */

.note {font-size:11px; color:red} /* Used in to show the help info for a item for example, Register.php. */ ]]>
http://blog.1zsoft.com/node78377.html http://blog.1zsoft.com/node78377.html 技术笔记 2007-02-10 20:53 +0800
win2000下面安装apache2.2+php5.2+mysql Author: wwccss

win2000下面安装apache2.2+php5.2+mysql需要注意的几个地方:

1. apache的配置文件里面的路径格式: PHPIniDir "C:/PHP" LoadModule php5_module "C:/PHP/php5apache2_2.dll" 注意,是"/",而不是""。

2. php.ini文件存放在c:php目录下面。 需要修改extension_dir extension_dir = "c:\php\ext" 注意,是"\",而不是"/"或者""

3. 修改环境变量,将c:php加入到path变量中。重启机器。 ]]>
http://blog.1zsoft.com/node78375.html http://blog.1zsoft.com/node78375.html 技术笔记 2007-01-02 09:33 +0800
解决FreeBSD6.2下面subversion的Berkeley DB error错误 Author: wwccss

在FreeBSD6.2下面配置了subversion+http之后,通过浏览器访问,报告下面的错误:

Internal error: Berkeley DB error for filesystem '/var/svn' while opening environment:\n

2230 [Sat Dec 01 20:19:41 2007] [error] [client 123.116.144.57] Could not fetch resource information. [500, #0]

2231 [Sat Dec 01 20:19:41 2007] [error] [client 123.116.144.57] Could not open the requested SVN filesystem [500, #1600

通过查找资料,发现可能是权限的问题。

在FreeBSD下面,apache2.2是以www用户身份运行的,它需要对svn的目录有读写的权限,于是就把/var/svn目录的属主改成www,再次访问,就没有问题了。  ]]>
http://blog.1zsoft.com/node586.html http://blog.1zsoft.com/node586.html 技术笔记 2007-12-02 19:28 +0800
配置FreeBSD6.2过程记录 Author: 王春生

一、安装基本的系统:

首先是最小化安装,可以通过ssh进行登录,远程控制就达到目的了。

二、安装基本的工具:

通过package安装vim-lite, subversion, curl, wget,lynx这几个必需的工具。

如果你的网速比较慢,可以设置PACAGEROOT=ftp://ftp.cn.freebsd.org/就可以了。然后通过pkg_add -r命令安装。

三、安装ports:

按照FreeBSD的使用手册上面讲的,同步一份port到你的机器。如果网速比较慢,也可以指定一个比较快的镜像。 ]]>
http://blog.1zsoft.com/node566.html http://blog.1zsoft.com/node566.html 技术笔记 2007-11-26 21:16 +0800
跨站之间session共享的机制 Author: chunsheng.wang

周末在搞几个网站之间的统一用户管理功能。发现了一个很棘手的问题,就是如果几个网站的域名不相同,session数据如何共享?

如果几个域名属于同一个域名下面的二级域名,还好办一些,可以通过设置session的domain。但如果几个网站域名压根就不相同,就比较麻烦了。

还是翻php的参考手册,后面发现有一个函数session_id,可以用来重新设置当前session的id。 于是问题就简单了。

以易软网站 + 签名网站 举例:

1. 登录都是到http://www.1zsoft.com/register.php。 ]]>
http://blog.1zsoft.com/node468.html http://blog.1zsoft.com/node468.html 技术笔记 2007-09-26 13:25 +0800
在AS4下面安装apache2.2 + php 5.2.4 Author: chunsheng.wang

一、安装apache2.2

1. 下载最新的apache2..2 http://www.apache.org 

2. 配置参数:

./configure

--prefix=/usr/local/httpd2 \

--enable-so \

--disable-include \

--enable-expires \

--enable-usertrack \

--enable-unique-id \

--disable-userdir \

--enable-rewrite

说明:  

--enable-so: 激活动态加载,这样可以以so的方式来编译php

--disable-include \ 不需要服务器端包含。

--enable-expires \ 可以动态设置每一个文件的过期时间。

--enable-usertrack \ 用于用户的跟踪。 ]]>
http://blog.1zsoft.com/node465.html http://blog.1zsoft.com/node465.html 技术笔记 2007-09-22 22:10 +0800
EasyCMS的首页摘要代码 Author: chunsheng.wang

博客列表页面需要显示一段摘要。但在截取摘要的时候,遇到了很多的问题。

1. 单纯的按照字数截取,会出现半截话的问题。

2. 在截取的时候,还要注意html标签的闭合问题。

可以解决的方案就是在添加文章的时候,添加一个特殊的分割符,比如drupal就是使用这样的方式来手工来决定何处作为截取。但这样不方便。

下面是我的EasyCMS的截取代码,与大家分享。 ]]>
http://blog.1zsoft.com/node459.html http://blog.1zsoft.com/node459.html 技术笔记 2007-08-29 21:11 +0800
win2000下面安装apache2.2+php5.2+mysql Author: wwccss

win2000下面安装apache2.2+php5.2+mysql需要注意的几个地方:

1. apache的配置文件里面的路径格式: PHPIniDir "C:/PHP" LoadModule php5_module "C:/PHP/php5apache2_2.dll" 注意,是"/",而不是""。

2. php.ini文件存放在c:php目录下面。 需要修改extension_dir extension_dir = "c:\php\ext" 注意,是"\",而不是"/"或者""

3. 修改环境变量,将c:php加入到path变量中。重启机器。 ]]>
http://blog.1zsoft.com/node350.html http://blog.1zsoft.com/node350.html 技术笔记 2006-12-11 05:26 +0800
站点风格调整 Author: wwccss

本站drupal使用的风格是fancy。它原来默认的样式不太适合中文,以前一直没有时间来改它,今天终于找了写时间改了一下:

1. 增加了google的广告。

2. 调整了文章标题的字体大小和颜色。

3. 将提交者和分类链接放在文章的下部。

4. 调整了node的表现形式,增加了一条边框。

5. 调整了footer信息的字体大小和布局方式。

6. 修改右边连接,将粗体去掉。

以上的修改都是通过修改theme/fancy/style.css完成的。 ]]>
http://blog.1zsoft.com/node346.html http://blog.1zsoft.com/node346.html 技术笔记 2006-10-02 19:20 +0800
关于Bash编程的若干文档 Author: wwccss

最近因工作需要,需要学习Bash。在网上搜集了一些资料,记录如下:

1. Bash手册:http://www.gnu.org/software/bash/manual/bashref.html

2. Bash高级编程手册:http://tldp.org/LDP/abs/html/

3. 中文参考手册:http://cmpp.linuxforum.net/ ]]>
http://blog.1zsoft.com/node345.html http://blog.1zsoft.com/node345.html 技术笔记 2006-09-30 06:10 +0800
关于框架和代码生成器的思考 Author: wwccss

最近一段时间以来关于PHP开发框架的讨论非常多。在超越论坛上面有很多的网友在讨论国外的各种各样的框架,也有一些朋友在开发自己的框架。相关的资料,大家可以访问超越论坛:club.phpe.net

在开发 PHPGEN的过程中,我也研究过其中的一些框架,但最后选择了是做一个代码生成器,而不是一个框架。框架有他的好处,可以封装很多的事情,你需要关注其中一小部分的事情就可以了。但框架,顾名思义,也会有它的局限。如果一个框架设计不好,在处理一些比较复杂或者特性的事情时,框架就会影响开发。同时框架还有另外一个问题,就是学习的成本。一个好的框架会有比较丰富的文档以及实例,可以很快上手。但如果一个框架没有太多的文档,或者文档更新不及时,学习成本就会比较高。还有一个问题就是开发人员的习惯。习惯这种东西是很难改变的。但框架的东西就是要改变一个开发人员长期以来养成的习惯,这种改变是很困难的。 ]]>
http://blog.1zsoft.com/node342.html http://blog.1zsoft.com/node342.html 技术笔记 2006-09-13 20:59 +0800
FreeBSD配置笔记--设置sudo Author: wwccss

sudo是一种比较安全权限分配方案。如果你想让某个用户执行root账号的权限,但又不想让他直接成为root账号,可以使用sudo来解决这个问题。

1. 安装sudo cd /usr/ports/security/sudo; make install clean;

2. 添加sudoers 使用visudo命令来编辑/usr/local/etc/sudoers文件。

%wheel ALL=(ALL) NOPASSWD: ALL

这样设置就是允许wheel组的用户可以执行任何命令而不需要密码。:) ]]>
http://blog.1zsoft.com/node340.html http://blog.1zsoft.com/node340.html 技术笔记 2006-09-02 20:34 +0800
FreeBSD配置笔记--修改登录以后的提示信息,注销若干终端 Author: wwccss

1. FreeBSD默认安装之后,登录的提示是一大段帮助文字,看过几次之后也就熟悉了。可以通过修改/etc/motd这个文件来改成你所希望的文字。

2. 可以通过修改/etc/ttys文件来禁止若干终端连接数量。如果你是通过远程ssh来连接的话,可以将其中不用的终端关掉,设成off。 ]]>
http://blog.1zsoft.com/node339.html http://blog.1zsoft.com/node339.html 技术笔记 2006-09-02 20:12 +0800
FreeBSD配置笔记--让root账号可以远程登录 Author: wwccss

Freebsd默认安装之后,默认是禁止root账号直接ssh登录的。可以通过修改/etc/ssh/sshd_config文件,将其中的PermitRootLogin改成yes,然后重新启动ssh服务就可以了。/etc/rc.d/sshd restart ]]>
http://blog.1zsoft.com/node338.html http://blog.1zsoft.com/node338.html 技术笔记 2006-09-02 20:06 +0800
FreeBSD配置笔记--让普通用户可以使用bash Author: wwccss

Freebsd默认安装之后用户的shell是sh,平时都已经习惯了使用bash。通过下面的步骤可以配置用户来使用bash作为shell。

1. 安装bash。 cd /usr/ports/shells/bash; make install clean 这样安装完之后,bash会被安装在/usr/local/bin/目录下面。

2. 在/bin目录下面做一个符号连接。 ln -f /usr/local/bin/bash /bin

3. 修改 /etc/shells文件,将bash增加进去,这样在添加用户的时候就可以指定使用bash作为shell了。否则的话,会警告pwd_mkdb: warning, unknown root shell

4. 如果已经添加过的用户,可以使用chsh命令来修改默认的shell. ]]>
http://blog.1zsoft.com/node337.html http://blog.1zsoft.com/node337.html 技术笔记 2006-09-02 20:02 +0800
愚人节更换外观主题 Author: wwccss

昨天在单位配置内部系统的时候,发现了一个比较好看的风格,叫做fancy,就装了一下,今天把博客的站点也换成它了。

修改过程如下:

1. 下载phptemplate引擎,将其解压缩到thems/engine目录下面即可。

2. 下载fancy模板,将其解压缩到thems目录下面即可。

3. 进入后台,主题管理, 将fancy设为默认风格。

4. 设置fancy风格,设置主连接,次链接。 ]]>
http://blog.1zsoft.com/node316.html http://blog.1zsoft.com/node316.html 技术笔记 2006-04-02 00:45 +0800
不知道是不是ie的bug? Author: wwccss

今天在写程序的时候,发现了一个问题,就是body标签之后的第一个div标签会有一行空白,即使你设置了body的topmargin为0,div的margin, padding都为零,也会有一个空白。
其代码如下:


test

同样的代码在firefox下面则没有问题。可能是IE对css box的解释有点问题吧。后来将div的display设成inline就ok了。 ]]>
http://blog.1zsoft.com/node289.html http://blog.1zsoft.com/node289.html 技术笔记 2006-02-02 05:04 +0800
如何使用sftp自动备份 Author: wwccss

站长的一个重要工作就是备份网站的数据--程序、数据库、上传的附件以及各种各样的配置文件等。一旦服务器出现问题,可以通过备份的文件恢复。其重要性不用多说。

那么如何来做备份呢?我了解的有以下一些方式:

1. raid: raid也许不应该算做一种备份方式,应该是一种存储方案,呵呵。不过对一般的站长来讲做raid还是有些代价。如果钱比较多,还是做raid比较可靠一点。

2. 单机双硬盘备份。其中一个硬盘为工作硬盘,一个硬盘为备份硬盘,将备份数据备份到备份硬盘上面。 ]]>
http://blog.1zsoft.com/node281.html http://blog.1zsoft.com/node281.html 技术笔记 2006-01-10 16:25 +0800
xml? ini? php Author: wwccss

正在做的项目遇到了一个问题,使用什么格式来做配置文件。以前在单个项目的时候,都是直接使用php代码做配置文件,但现在的这个项目用户可以修改配置文件,选择什么样的格式成了一个大问题。 首先我想到的是xml文件。xml文件表现力比较丰富,可以构造出任意结构的配置参数来,用户编辑起来也比较方便。 但存在一个问题是程序分析配置文件就比较麻烦了。我需要将xml文件转换成数组,还需要将数组再次转成xml文件。我前前后后试过很多的类库,有的要么就是xml->array->xml之后,两头的xml结构就不一样了,有的还保持一样,但是分析出来的数组结畸型,程序出来起来很麻烦。 后来我又想到了ini文件,linux系统下面绝大部分的参数配置文件都是ini格式的。php在分析ini文件的时候也还比较方便,有一个函数可以直接分析出来parse_ini_file()。但ini文件的表现力比较差,一般二级结构可以,三级,四级以上就比较麻烦了。 最后我还是选择了直接使用php代码来做参数文件。 ]]>
http://blog.1zsoft.com/node269.html http://blog.1zsoft.com/node269.html 技术笔记 2005-12-27 16:04 +0800
在VIM中使用空格space代替TAB Author: wwccss

修改home目录下面的.vimrc文件, 增加下面的几行:

set expandtab # 使用space代替tab.

set tabstop=4 # 四个空格。

set shiftwidth=4 # 自动缩进的宽度。

几篇比较有意思的文章:http://www.vim.org/tips/tip.php?tip_id=12 http://www.adamspiers.org/computing/why_no_tabs.html http://www.adamspiers.org/computing/why_no_tabs.html ]]>
http://blog.1zsoft.com/node256.html http://blog.1zsoft.com/node256.html 技术笔记 2005-12-14 16:04 +0800
在freebsd下面使用bash Author: wwccss

freebsd下面提供的shell默认是csh,在linux下面习惯了bash,感觉很不舒服。下面是几项改动:

1. 更改用户的shell为bash: 通过chsh命令来更改。注意,如果通过ports方式安装的bash,其目录在/usr/local/bin/bash

2. 修改.bash_profile文件,增加下面的选项:

export LANG="zh_CN.UTF-8"

export LC_LANG="zh_CN.UTF-8"

export XMODIFIERS="@im=fcitx"

alias ls='ls -A -G'

这样打开的应用程序会默认使用中文。 ]]>
http://blog.1zsoft.com/node246.html http://blog.1zsoft.com/node246.html 技术笔记 2005-12-02 19:00 +0800
Freebsd下面firefox的配置 Author: wwccss

安装完firefox后之后,发现有的网站字体比较正常,有的网站字体不正常。曾经自己试着指定字体,效果也不太理想。

通过查阅资料,发现在fonts.conf文件里面对一个系列的字体显示顺序有定义。知道了这个就非常简单了。修改你的fonts.conf文件,一般在/usr/X11R6/etc/fonts/fonts.conf。将tahoma和simsun放在前面就可以了。 ]]>
http://blog.1zsoft.com/node239.html http://blog.1zsoft.com/node239.html 技术笔记 2005-12-02 00:00 +0800
让abiword支持宋体 Author: wwccss

abiword安装完之后,无法输入中文。在字体选择框里面,看不到simsun的字体。abiword的包有一个ttfadmin和ttftool的脚本。通过查看ttftool的源文件,发现它现在不知持ttc格式的字体文件。从windows下面拷贝过去的字体文件是simsun.ttc,abiword无法识别这个字体。

在网上搜了一下,发现有一个工具叫做ttctool,可以将ttc格式的字体文件分解成ttf。然后将分解出的simsun.ttf拷贝到系统到目录下面,就可以了。 ]]>
http://blog.1zsoft.com/node238.html http://blog.1zsoft.com/node238.html 技术笔记 2005-12-01 23:55 +0800
FreeBSD安装步骤 Author: wwccss

1. 基本系统的安装:

从http://www.freebsd.org上面下载最新的稳定发行版,现在最新的版本是6.0,一共两个iso文件,下载之后刻盘。然后从光盘起动机器,安装基本的系统就可以了。

这个地方需要注意的是在安装过程中,如果选择安装其他的ports,将是一件比较痛苦的事情,由于包文件在不同的光盘上,所以要频繁的切换光盘。所以可以安装最小系统,然后通过网络进行安装。

2. 安装桌面系统。

建议阅读FreeBSD的中文手册,上面有比较详细的步骤来介绍如何安装桌面系统。 ]]>
http://blog.1zsoft.com/node237.html http://blog.1zsoft.com/node237.html 技术笔记 2005-12-01 23:42 +0800