Linux


exFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。详细的介绍可以看Wiki上的介绍。目前,Linux已经支持exFat的读写
在Debian 下可以很方便的安装这个补丁,实现对exfat格式的读写。

  1. apt-get install scons  libfuse-dev subversion
  2. svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only
  3. cd exfat-read-only
  4. scons
  5. scons install

使用:
mount -t exfat-fuse -o allow_other /dev/sdc1 /mnt/

1. 打开需要的模块
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/proxy.load
ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load
ln -s /etc/apache2/mods-available/cache.load /etc/apache2/mods-enabled/cache.load
ln -s /etc/apache2/mods-available/disk_cache.load /etc/apache2/mods-enabled/disk_cache.load

2.ReWrite 配置
我这里文章都是这样子的: http://www.example.com/Article.php?id=124323
我希望将它改为更加友好的方式: http://www.example.com/list/124323.html
RewriteEngine On
RewriteRule /articlelist/(.+)\.html$ /Article.php?id=$1 [L]
经过Rewrite配置后,重启确定Rewrite生效.
/etc/init.d/apache2 restart

3. 静态化
虽然这样子外人看起来像是静态化的了,但是每次访问都需要去查一次数据库,为了真正的实现静态化,我们通过mod_proxy和mod_disk_cache模块来实现。
用这个办法的好处是你不需要在前面再架设一个Squid之类的代理服务器,直接用apache2内置模块就可以实现了。性能也足够高,静态化后性能可以提高10倍,这还是在用简单sql查询的前提下,如果sql比较复杂,那性能的提高就更加明显了。

A. 先创建cache目录
mkdir -p /var/cache/apache2/proxy
chmod 777 /var/cache/apache2/proxy
chown -R www-data.www-data /var/cache/apache2/proxy

B.  修改php程序。 mod_cache遵循标准rfc协议,如果你的php输出里面没有过期设置,它将不会cache这个文件。
在php程序前面加入几行代码,注意一定要在输出正文前输出HTTP头
// 过期时间设置为一个月,如果你的文章不可能变,那将这个值设的更大些
$offset = 3600 * 24 * 30;
// 过期日期,当前时间+ 过期时间
$expire = “Expires: ” . gmdate(“D, d M Y H:i:s”, time() + $offset) . ” GMT”;
//输出HTTP 头
Header($expire);

C. 代理配置
www.example.com 是你的实际域名,请在/etc/hosts 文件写入IP解析,避免每次都去查询
127.0.0.1 www.example.com

<IfModule mod_proxy.c>
ProxyPass /staticlist/ http://www.example.com/list/
ProxyPassReverse /staticlist/ http://www.example.com/list/
<IfModule mod_disk_cache.c>
CacheRoot /var/cache/apache2/proxy
CacheEnable disk /staticlist/
CacheDirLevels 3
CacheDirLength 2
</IfModule>
</IfModule>

D. 重启apache 让其生效
/etc/init.d/apache2 restart
记得要将页面的链接改为新的 http://www.example.com/staticlist/1234.html

4. 注意事项:

如果生效了,会在 /var/cache/apache2/proxy 生成目录和文件,这个目录记得要有足够的空间。apache不会自动清理这个目录,你可以用htcacheclean 来清理。

Debian真是非常好用的服务器操作系统啊,磁盘配额也非常容易实现。
Linux下限制磁盘配额可以按每个组或每个用户来限制,下面以每个用户限制为例说明一下:

实现磁盘配额限制步骤:
1. 内核里面打开了配额的支持,绝大部分发行版都打开的
2. 以配额方式加载文件系统
3.安装配额软件:
4.配置配额

原/etc/fstab的一项:

  1. /dev/hda1       /home       ext3    defaults           1       1

做如下修改:

  1. /dev/hda1       /home       ext3    defaults,usrquota           1       1

如何是对组限制就将usrquota改为grpquota
重新加载文件系统:

  1. mount -o remount,usrquota /home

加载内核模块,并让其开机的时候也会自动加载

  1. modprobe quota_v2
  2. echo 'quota_v2' >> /etc/modules

我们要在启用配额的分区创建文件并且限制root才能读写

  1. touch /home/aquota.user
  2. touch /home/aquota.group
  3. chmod 600 /home/aquota.user /home/aquota.group

现在来安装quota软件:

  1. apt-get install quota quotatool

现在到最后一步了,假设我们要对系统里的某个用户skx进行限制配额:

  1. quotatool -u skx -bq 20M -l '25 Mb' /home

对了,如果是20G,那就要写20000M,quotatool好像不认 20G的。
收工~~
其实现在一般情况下也用不到这个磁盘限额。

原来的文章

懒得转贴了,自己到这个网页看吧

花了周末整整两天时间和P牛一起合作,终于将漫游的论坛改为全文搜索了,个中辛苦不足为外人道也。

呵呵,其实开玩笑的。一切进行的都很顺利,最大的问题就是需要整理一个好用的词库。我们用了自带的中文词库,发现很不适合漫游使用,后来找了一个拼音加加的词库,一个google拼音的词库,一个搜狗拼音的词库,还有自己人肉整理了一些资料,终于弄了一个100万字的超大词库。

这个全文搜索程序很简单,核心sql 就一行 “select postid,threadid,title from search where match(title,pagetext) against(‘关键词’)”。我这里采用的是双数据库方案,原来的论坛数据库不动,新安装了一个支持中文全文搜索的Mysql。在里面建立搜索专用数据库,自己写了个程序每天增量将帖子加到这个数据库上就好了。具体的实现可以参考 hightman 的网站。

http://myft.twomice.net/show_hdr.php?xname=ILBS301&xpos=4&dname=

http://php.twomice.net/myft/s2.php

vhcs 开发基本处于停滞状态,今天看到了 ISPConfig, 觉得挺有意思的。有好几个引人注目的优点:

1. 支持的发行版非常多

2. 功能强大

3. 开发社区活跃,文档齐全

ISPConfig

ISPConfig is an open source hosting control panel for Linux. ISPConfig is licensed under BSD license.

Managed Services

  • Httpd (virtual hosts, domain and IP based)
  • FTP
  • Bind (A, CNAME, MX and SPF Records)
  • POP3 Auto-Responder
  • MySQL client-databases
  • Webalizer statistics
  • Harddisk quota
  • Mail-Quota
  • Traffic limits
  • IP-addresses
  • SSL
  • SSI
  • Shell-access
  • Mailscanner (Antivirus)
  • Firewall

Detailed Feature list

System Requirements

Supported Distributions

  • Mandrake Linux starting from version 8.1 to 10.2
  • Mandriva 2006 to 2007
  • Red Hat Linux starting from version 7.3 to 9.0
  • Fedora Core 1 – 6
  • SuSE Linux starting from version 7.2 to 10.2
  • Debian 3.0 (Woody), Debian 3.1 (Sarge), Debian 4.0 (Etch)
  • Ubuntu 5.04 (Hoary Hedgehog), 5.10 (Breezy Badger), 6.06 (Dapper Drake), 6.10 (Edgy Eft)
  • CentOS 4.1 to 4.4

Details

  • Operating System: Linux (Kernel 2.4 or later with glibc6) (the following distributions are supported: Mandrake Linux starting from version 8.1, Mandriva 2006 & 2007, Red Hat Linux starting from version 7.3, Fedora Core 1 – 6, SuSE Linux starting from version 7.2, Debian starting from version 3.0, Ubuntu 5.04, 5.10, 6.06, and 6.10, CentOS 4.1 – 4.4)
  • Apache Webserver version 1.3.12 or later / 2.0.40 or later
  • Sendmail or Postfix
  • Procmail
  • Quota Package
  • ProFTP as standalone version or vsftpd as inetd/xinetd/standalone version
  • Php 4.0.5 or newer as Apache module
  • MySQL data base
  • a POP3/IMAP daemon that supports either the traditional Unix-Mailbox format (e.g. gnu-pop3d, qpopper, ipop3d, popa3d or vm-pop3d) or the Maildir format (e.g. Courier-Imap)
  • OpenSSL and mod_ssl for the creation of SSL virtual hosts
  • BIND8 / BIND9
  • iptables or ipchains

虽然大部分情况下我们只要用ssh登录linux服务器就好了,但是有时候我们的程序需要在图形界面下运行,这时我们就要用到vnc server这个软件了。在Debian下安装vnc server很简单的,只要几步就可以了:

1. 安装软件

apt-get install tightvncserver tightvnc-java

2. 配置每个用户自己的vnc server。
启动命令:

vncserver -depth 24 -name aru_desktop -httpport 9001 -geometry 1024×768 :1
参数解释:

1. -depth 24 使用24位颜色,这里一般用16或者24

2. -name aru_desktop 桌面名字,这个参数并非必要,可以随便起个喜欢的名字

3. -httpport 9001 使用浏览器连接的端口,请用1024以上的端口,如果是多个用户都开vnc server,那每个用户要使用不同的端口
4. -geometry 1024×768 桌面分辨率,根据要求调整

5. :1 会话数字,同3

第一次运行会要求你输入一个密码,这个密码和你的ssh登录密码是分开的,当然你也可以用同样的密码

关闭命令:

vncserver -kill :1

:1 是会话数字,和启动的会话数字一致

3. 输入法和桌面环境

每个用户的vnc server启动脚本是 ~/.vnc/xstartup

下面是我的启动脚本:

#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
x-terminal-emulator -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
#x-window-manager &
#gnome-session &
xfce4-session &
scim -d

里面有3个窗口管理服务器:

#x-window-manager &

#gnome-session &

xfce4-session &

最上面两个是被注释掉的,选择自己喜欢的窗口管理就好了,将其余的窗口管理器注释掉。

scim -d

打开scim输入法.

4. 连接vnc server

打开vnc server后,可以通过http方式或者用专用客户端连接

http方式,在浏览器输入 http://ip:9001/

专用客户端,在地址输入 ip:1

Debian默认设置下是开反向域名解析的。我们连接ssh/ftp的时候就会有一个比较明显的延时,大概要等30秒后才能输入账号密码。解决方法有两个:

1. 将客户机IP和域名对应关系加入到 /etc/hosts上

2. 编辑 /etc/nsswitch.conf

找到 hosts  那行,将其改成下面这样:

hosts:          files dns [NOTFOUND=return]

今天终于将maemocjk 的输入法卸载了。因为我找到一个的更好的输入法: scim for maemo. 他有770和N800的版本,由wolfg 移植的。安装 很简单,直接点install 文件就可以了,然后需要重启机器,使用ctrl + 空格i打开输入法。刚才测试了一下,bug还是有不少的,比如要输入目前这个词,老是发现多输入了一个字母的样子,难道是因为我安装的虚拟键盘问题?明天将现在这个虚拟键盘去掉试试。另外当前只有智能拼音输入法,应该将五笔也加进去的。
项目主页

其实还没有正式宣布发布,但是文件已经冻结了,iso也出来了。

下载地址: http://cdimage.debian.org/debian-cd/4.0_r0/

发布声明应该会在一天内宣布的,当各大主力镜像将iso 镜像完毕,就会正式宣布发布了。

上一个稳定版本Debian 3.1 Sarge 是在 2005年6月6日发布的,距离现在已经快2年了。

Debian 的下一个版本代号为 lenny ,让我们祝愿 lenny 能够顺产吧~

update: 正式发布

lighttpd是一个高性能的http服务器,很多大型网站都用它来跑静态文件(图片、文件共享、视频网站)或使用它的fastcgi来跑动态网站。lighttpd 用fastcgi模式跑php据说有问题的,不推荐使用。但是跑其它的fastcgi应用强烈推荐。另外, lighttpd还有一个很强大的mod_proxy模块可以部分替换squid应用。

1.5.0 最振奋人心的功能就是它终于支持了linux aio 模式。在跑静态文件的时候性能能有 80%以上的提升。具体的测试结果大家可以看看这里:

linux-aio-and-large-files

下载: pre-release-lighttpd-1-5-0-r1454-tar-gz

不过现在版本还有很多bug,不推荐使用aio模式 :)

vhcs 2.4.x 发现一个重要的安全漏洞,请使用vhcs 2.4.x 的用户尽快更新。

更新方法:

1. 下载最新的补丁文件 vhcs_patch_2006-02-09.tar.bz2

2. 解压后用里面的 login.php 覆盖 /var/www/vhcs2/gui/include/login.php

3. 完成

The X’mas Edition :)
里面包括了我翻译的中文语言包,请大家指正。
官方下载地址: vhcs 2.4.7
查看更改记录
升级到2.4.7(英文)
我将在最近几天帖上一个完整的安装指南。

有幸在smth观摩了一次web加速技术的讨论,下面是windtear写的总结
原文地址http://windtear.net/archives/2005/12/02/000844.html

从论坛之争到web技术讨论
今天水木社区ITExpress版面比较热的一个主题是关于Discuz!的一条新闻
Discuz! 代表 Crossday Discuz! Board 论坛系统,是基于PHP、数据库的论坛系统
用的比较普遍

IT业界特快版面的讨论先是论坛系统的讨论
Discuz! PHPWind vbb IPB UT phpbb
很多人多比较推崇Discuz!
我在学校的时候玩过一些论坛系统 或者说折腾过
phpbb leobbs(雷傲) vbb 还帮别人维护过别的开源论坛系统
基于bbs的也一直跟进关注
门户网站的论坛系统也了解了一下
其实论坛最关键的在于两块 读和写
读牵涉到优化、加速、缓存
写牵涉到存储、效率、速度

数据重要 要安全
速度也重要 要有好的用户体验
还要有好的可维护性、可管理性

于是讨论很自然的就发散开去
展开了一场web技术大讨论
动态内容加速 静态内容加速
php的加速 eaccelerator Zend
fastcgi技术
后端realserver的比较 前端加速设备的比较 各种技术
lighttpd apache iis tux squid F5
mod_rewrite memcached

要是不关注这个领域 估计看的肯定很晕
说起来也是 现在web概念吵的这么火 web2.0 用户参与
搞来搞去还是80端口 还是http (这里不讨论p2p)
有用户参与就需要有论坛 有社区 有forum 有club 有bbs
有数据就要有存储 有数据库
有连接有流量就要压缩就要加速就要优化
怎么样最快怎么样最高效就怎么来

互联网发展一方面Simply The Best 越简单越好
一方面又要高性能 高可用 高效率

前两天收到vhcs开发团队的邮件,得知vhcs 2.4.7最近就要发布了,并且有了新的翻译。这几天花了点时间更新中文翻译,使用2.4.x版本的用户都可以用管理账号登录后更新语言。 繁体中文是由简体版本直接转码而成的,请繁体中文用户根据语言习惯自行调整。 本地下载:
简体中文语言包 vhcs2.4.7-chinese.rar
繁体中文 语言包vhcs2.4.7-chinese-big5.rar
vhcs2.4.6.2.tar.bz2 原版程序

下一页 »