| 春生的博客 | 记录点点滴滴 |
在开发ZenTaoPMS过程中,遇到这样的一个问题,我需要将一个导航条固定在页面的最下方。这个功能在其他浏览器下面都很容易实现,直接使用css的fixed属性就好了。但在IE6下面,它并不支持这个属性。在网上查了很多的资料,都是使用IE6的hack来完成的,通常的代码如下:
<!--[if IE 6]>
继上篇配置之后,运行一段时间发现域名无法解析。但通过ip地址还是可以访问。在网上查了一下,发现是virtualbox NAT方式下面的域名服务器会出现问题。
过程是这样的:
相比较于linux而言,我更喜欢freebsd的简洁的风格。所以我的服务器也是选用了FreeBSD作为操作系统。平时开发的时候,就需要有一个FreeBSD的开发环境来进行调试。
直接安装一个FreeBSD也是一个解决方案,不过就目前来讲,完全放弃windows平台也有很多的不方便。比如网上银行,还有公司内部的很多系统只支持windows。所以主机还是使用windows,不过我们可以使用虚拟机来解决这个问题。
谈到虚拟机,也有很多的选择。比如vmware,virtualbox。我最终选择了virutalbox。原因有两个,virtualbox很小,安装文件20多兆。运行起来的速度也很快。
正文 | FreeBSD | 2596次阅读 2条评论 王春生 发表于 2008-12-20 09:14:53在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
一、安装基本的系统:
首先是最小化安装,可以通过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 | 4448次阅读 2条评论 王春生 发表于 2007-11-26 21:16:09周末在搞几个网站之间的统一用户管理功能。发现了一个很棘手的问题,就是如果几个网站的域名不相同,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。
一、安装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功能。
博客列表页面需要显示一段摘要。但在截取摘要的时候,遇到了很多的问题。
1. 单纯的按照字数截取,会出现半截话的问题。
2. 在截取的时候,还要注意html标签的闭合问题。
可以解决的方案就是在添加文章的时候,添加一个特殊的分割符,比如drupal就是使用这样的方式来手工来决定何处作为截取。但这样不方便。
下面是我的EasyCMS的截取代码,与大家分享。
正文 | 技术笔记 | 1814次阅读 4条评论 chunsheng.wang 发表于 2007-08-29 21:11:29
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变量中。重启机器。
本站drupal使用的风格是fancy。它原来默认的样式不太适合中文,以前一直没有时间来改它,今天终于找了写时间改了一下:
1. 增加了google的广告。
2. 调整了文章标题的字体大小和颜色。
3. 将提交者和分类链接放在文章的下部。
4. 调整了node的表现形式,增加了一条边框。
5. 调整了footer信息的字体大小和布局方式。
6. 修改右边连接,将粗体去掉。
以上的修改都是通过修改theme/fancy/style.css完成的。
正文 | Drupal | 2704次阅读 3条评论 wwccss 发表于 2006-10-02 19:20:02最近因工作需要,需要学习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/
最近一段时间以来关于PHP开发框架的讨论非常多。在超越论坛上面有很多的网友在讨论国外的各种各样的框架,也有一些朋友在开发自己的框架。相关的资料,大家可以访问超越论坛:club.phpe.net
在开发 PHPGEN的过程中,我也研究过其中的一些框架,但最后选择了是做一个代码生成器,而不是一个框架。框架有他的好处,可以封装很多的事情,你需要关注其中一小部分的事情就可以了。但框架,顾名思义,也会有它的局限。如果一个框架设计不好,在处理一些比较复杂或者特性的事情时,框架就会影响开发。同时框架还有另外一个问题,就是学习的成本。一个好的框架会有比较丰富的文档以及实例,可以很快上手。但如果一个框架没有太多的文档,或者文档更新不及时,学习成本就会比较高。还有一个问题就是开发人员的习惯。习惯这种东西是很难改变的。但框架的东西就是要改变一个开发人员长期以来养成的习惯,这种改变是很困难的。
那么代码生成器和框架可以合作吗?我想是可以的。PHPGEN是一个开放的系统,它所生成的每一行代码,你都可以进行修改。而且我设计的PHPGEN将来可以支持模板,也就是说如果你不喜欢PHPGEN生成的代码,可以自己写一套模板。自己写的模板可以是基于某一种框架的。甚至变量的命名方式,文件的组织方式,数据库封装的方式,模板系统的选择,都可以自己来定义。我希望PHPGEN可以达到这个目标,为国内的PHP开发者提供一个比较好用的工具。
正文 | 技术笔记 | 2291次阅读 3条评论 wwccss 发表于 2006-09-13 20:59:27sudo是一种比较安全权限分配方案。如果你想让某个用户执行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 | 5390次阅读 4条评论 wwccss 发表于 2006-09-02 20:34:201. FreeBSD默认安装之后,登录的提示是一大段帮助文字,看过几次之后也就熟悉了。可以通过修改/etc/motd这个文件来改成你所希望的文字。
2. 可以通过修改/etc/ttys文件来禁止若干终端连接数量。如果你是通过远程ssh来连接的话,可以将其中不用的终端关掉,设成off。
Freebsd默认安装之后,默认是禁止root账号直接ssh登录的。可以通过修改/etc/ssh/sshd_config文件,将其中的PermitRootLogin改成yes,然后重新启动ssh服务就可以了。/etc/rc.d/sshd restart
正文 | FreeBSD | 4164次阅读 1条评论 wwccss 发表于 2006-09-02 20:06:08Freebsd默认安装之后用户的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.
昨天在单位配置内部系统的时候,发现了一个比较好看的风格,叫做fancy,就装了一下,今天把博客的站点也换成它了。
修改过程如下:
1. 下载phptemplate引擎,将其解压缩到thems/engine目录下面即可。
2. 下载fancy模板,将其解压缩到thems目录下面即可。
3. 进入后台,主题管理, 将fancy设为默认风格。
4. 设置fancy风格,设置主连接,次链接。
站长的一个重要工作就是备份网站的数据--程序、数据库、上传的附件以及各种各样的配置文件等。一旦服务器出现问题,可以通过备份的文件恢复。其重要性不用多说。
那么如何来做备份呢?我了解的有以下一些方式:
1. raid: raid也许不应该算做一种备份方式,应该是一种存储方案,呵呵。不过对一般的站长来讲做raid还是有些代价。如果钱比较多,还是做raid比较可靠一点。
2. 单机双硬盘备份。其中一个硬盘为工作硬盘,一个硬盘为备份硬盘,将备份数据备份到备份硬盘上面。
3. 通过网络进行备份:将备份数据下载到网络上面的一台机器上面,比如你办公室的一台机器。通过网络备份的话,可以通过rsync方式做及时的同步。
正在做的项目遇到了一个问题,使用什么格式来做配置文件。以前在单个项目的时候,都是直接使用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>