当前位置:春生的博客 > 技术笔记
纠结的IE6 Fixed Position

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

<!--[if IE 6]>

正文 | UED | 887次阅读 1条评论 王春生 发表于 2009-12-11 21:57:25
windows下面使用virtualbox,解决dns解析异常的问题

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

过程是这样的:

  1. FreeBSD的虚拟机设置了通过 DHCP方式来获取IP地址。
  2. 在获取IP地址的同时,也会在/etc/resolve.conf里面设置dns的解析服务器为10.0.2.3
  3. 但是10.0.2.3这个dns server在一段时间之后就会出现工作不正常的情况。
正文 | FreeBSD | 1751次阅读 0条评论 王春生 发表于 2008-12-21 10:41:15
windows下面使用virtualbox搭建FreeBSD的开发环境

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

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

谈到虚拟机,也有很多的选择。比如vmware,virtualbox。我最终选择了virutalbox。原因有两个,virtualbox很小,安装文件20多兆。运行起来的速度也很快。

正文 | FreeBSD | 2609次阅读 2条评论 王春生 发表于 2008-12-20 09:14:53
解决FreeBSD6.2下面subversion的Berkeley DB error错误

在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 | 2238次阅读 0条评论 wwccss 发表于 2007-12-02 19:28:15
配置FreeBSD6.2过程记录

一、安装基本的系统:

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

二、安装基本的工具:

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

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

三、安装ports:

按照FreeBSD的使用手册上面讲的,同步一份port到你的机器。如果网速比较慢,也可以指定一个比较快的镜像。

四、安装jail:

其实jail的安装没有那么复杂的,照着手册做就可以了。遇到的一点麻烦就是安装源代码的时候特别的慢。后来我是通过ftp连接到某一台镜像服务器,把它的源代码包都下载下来。然后直接包里面的install.sh all命令就可以了。

正文 | FreeBSD | 4453次阅读 2条评论 王春生 发表于 2007-11-26 21:16:09
跨站之间session共享的机制

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

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

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

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

1. 登录都是到http://www.1zsoft.com/register.php。
2. 签名网站www.91qm.com 的登录程序将form的action指向到上面的地址,将用户名和密码传递到1zsoft.com的这个登录程序。
3. 当1zsoft.com的登录程序验证之后,根据具体网站的需要登记不同的session。
4. 取得当前1zsoft.com session的id,session_id()不加任何参数就可以了。
5. 然后将页面跳转回www.91qm.com。但在后面附加一个参数sid=xxxx。后面的值就是第4步中取回的session_id。

正文 | 技术笔记 | 6426次阅读 3条评论 chunsheng.wang 发表于 2007-09-26 13:25:17
在AS4下面安装apache2.2 + php 5.2.4

一、安装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 \ 用于用户的跟踪。
--enable-unique-id \ 每一次会话都可以产生一个惟一的id。
--disable-userdir \ 禁止userdir功能。

正文 | 技术笔记 | 2269次阅读 1条评论 chunsheng.wang 发表于 2007-09-22 22:10:59
EasyCMS的首页摘要代码

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

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

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

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

下面是我的EasyCMS的截取代码,与大家分享。









正文 | 技术笔记 | 1819次阅读 4条评论 chunsheng.wang 发表于 2007-08-29 21:11:29
win2000下面安装apache2.2+php5.2+mysql

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变量中。重启机器。

正文 | 技术笔记 | 2845次阅读 2条评论 wwccss 发表于 2006-12-11 05:26:53
站点风格调整

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

1. 增加了google的广告。
2. 调整了文章标题的字体大小和颜色。
3. 将提交者和分类链接放在文章的下部。
4. 调整了node的表现形式,增加了一条边框。
5. 调整了footer信息的字体大小和布局方式。
6. 修改右边连接,将粗体去掉。

以上的修改都是通过修改theme/fancy/style.css完成的。

正文 | Drupal | 2714次阅读 3条评论 wwccss 发表于 2006-10-02 19:20:02
关于Bash编程的若干文档

最近因工作需要,需要学习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/

正文 | 技术笔记 | 3034次阅读 0条评论 wwccss 发表于 2006-09-30 06:10:45
关于框架和代码生成器的思考

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

在开发 PHPGEN的过程中,我也研究过其中的一些框架,但最后选择了是做一个代码生成器,而不是一个框架。框架有他的好处,可以封装很多的事情,你需要关注其中一小部分的事情就可以了。但框架,顾名思义,也会有它的局限。如果一个框架设计不好,在处理一些比较复杂或者特性的事情时,框架就会影响开发。同时框架还有另外一个问题,就是学习的成本。一个好的框架会有比较丰富的文档以及实例,可以很快上手。但如果一个框架没有太多的文档,或者文档更新不及时,学习成本就会比较高。还有一个问题就是开发人员的习惯。习惯这种东西是很难改变的。但框架的东西就是要改变一个开发人员长期以来养成的习惯,这种改变是很困难的。

那么代码生成器和框架可以合作吗?我想是可以的。PHPGEN是一个开放的系统,它所生成的每一行代码,你都可以进行修改。而且我设计的PHPGEN将来可以支持模板,也就是说如果你不喜欢PHPGEN生成的代码,可以自己写一套模板。自己写的模板可以是基于某一种框架的。甚至变量的命名方式,文件的组织方式,数据库封装的方式,模板系统的选择,都可以自己来定义。我希望PHPGEN可以达到这个目标,为国内的PHP开发者提供一个比较好用的工具。

正文 | 技术笔记 | 2299次阅读 3条评论 wwccss 发表于 2006-09-13 20:59:27
FreeBSD配置笔记--设置sudo

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组的用户可以执行任何命令而不需要密码。:)

正文 | FreeBSD | 5397次阅读 4条评论 wwccss 发表于 2006-09-02 20:34:20
FreeBSD配置笔记--修改登录以后的提示信息,注销若干终端

1. FreeBSD默认安装之后,登录的提示是一大段帮助文字,看过几次之后也就熟悉了。可以通过修改/etc/motd这个文件来改成你所希望的文字。
2. 可以通过修改/etc/ttys文件来禁止若干终端连接数量。如果你是通过远程ssh来连接的话,可以将其中不用的终端关掉,设成off。

正文 | FreeBSD | 2328次阅读 0条评论 wwccss 发表于 2006-09-02 20:12:46
FreeBSD配置笔记--让root账号可以远程登录

Freebsd默认安装之后,默认是禁止root账号直接ssh登录的。可以通过修改/etc/ssh/sshd_config文件,将其中的PermitRootLogin改成yes,然后重新启动ssh服务就可以了。/etc/rc.d/sshd restart

正文 | FreeBSD | 4181次阅读 1条评论 wwccss 发表于 2006-09-02 20:06:08
FreeBSD配置笔记--让普通用户可以使用bash

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.

正文 | FreeBSD | 4769次阅读 0条评论 wwccss 发表于 2006-09-02 20:02:01
愚人节更换外观主题

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

修改过程如下:

1. 下载phptemplate引擎,将其解压缩到thems/engine目录下面即可。
2. 下载fancy模板,将其解压缩到thems目录下面即可。
3. 进入后台,主题管理, 将fancy设为默认风格。
4. 设置fancy风格,设置主连接,次链接。

正文 | Drupal | 2390次阅读 1条评论 wwccss 发表于 2006-04-02 00:45:41
不知道是不是ie的bug?
今天在写程序的时候,发现了一个问题,就是body标签之后的第一个div标签会有一行空白,即使你设置了body的topmargin为0,div的margin, padding都为零,也会有一个空白。 其代码如下: <body topmargin="0" style="margin:0px; padding:0px"> <div style="margin:0px; padding:0px;">test</div> 同样的代码在firefox下面则没有问题。可能是IE对css box的解释有点问题吧。后来将div的display设成inline就ok了。 正文 | 技术笔记 | 2015次阅读 2条评论 wwccss 发表于 2006-02-02 04:56:11
如何使用sftp自动备份

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

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

1. raid: raid也许不应该算做一种备份方式,应该是一种存储方案,呵呵。不过对一般的站长来讲做raid还是有些代价。如果钱比较多,还是做raid比较可靠一点。
2. 单机双硬盘备份。其中一个硬盘为工作硬盘,一个硬盘为备份硬盘,将备份数据备份到备份硬盘上面。
3. 通过网络进行备份:将备份数据下载到网络上面的一台机器上面,比如你办公室的一台机器。通过网络备份的话,可以通过rsync方式做及时的同步。

正文 | FreeBSD | 2472次阅读 0条评论 wwccss 发表于 2006-01-10 16:25:51
xml? ini? php

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

<projects>
  <project>
  <name>山东省泰山中学网站</name>
  <workingdir>first</workingdir>
  <dsn>
  <server>localhost</server>
  <username>root</username>

正文 | 技术笔记 | 2444次阅读 0条评论 wwccss 发表于 2005-12-27 16:04:07
42条记录,每页 条,页面:1/3 首页 上页 下页 末页
时间: 18.3 毫秒, 内存: 963.5 KB, 查询: 13.