Linux


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 原版程序

eAccelerator 是在 mmcache PHP 加速器/编码器的基础上更新开发的产品。它利用预先编译的缓存来提高PHP脚本的表现, 这样几乎可以完全避免超负荷编译带来的系统性能降低。 eAccelerator 的加速效果是非常明显的。昨天在一台繁忙的论坛服务器(使用vbb 2.x)测试了,速度有明显的提升,系统负荷大幅度降低。eAccelerator在Debian下安装很简单:

apt-get install gcc cpp php4-dev
wget http://ovh.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.gz
tar zxf
eaccelerator-0.9.3.tar.gz
cd
eaccelerator-0.9.3
export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=$PHP_PREFIX/bin/php-config
make
make install
mkdir
/var/cache/eAcache
chmod 777
/var/cache/eAcache

然后设置 php.ini,我用的是Apache 2,php.ini是在 /etc/php4/apache2/php.ini ,在文件的最后加入如下设置:

;eAccelerator
extension="eaccelerator.so"
eaccelerator.shm_size = "1024"
eaccelerator.cache_dir = "/var/cache/eAcache"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.debug = "0"
eaccelerator.check_mtime = "1"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "7200"
eaccelerator.shm_only = "1"
eaccelerator.compress = "1"
eaccelerator.compress_level = "3"
eaccelerator.keys = "shm_only"
eaccelerator.sessions   = "shm_only"
eaccelerator.content = "shm_only"

因为服务器的内存颇多,为了降低系统负荷,我是将缓存页面全部保存在共享内存区的。重启apache,将 eaccelerator.php 拷贝到web目录,访问它就可以确认是否成功启用了 eaccelerator。

在这里您可以找到设置 php.ini 的相关细节.

(more…)

vhcs (virtual hosting control system) 是德国一家公司开发的虚拟主机控制平台。vhcs的特点:
1. 支持Linux 和 Freebsd(Freebsd 是在最新的 2.4.6版本才支持的,尚未完善)。
2. 遵循GNU  GPL, 开源并且免费,在他们的论坛能得到社区的技术支持。
3. 稳定而易用,支持多国语言(我向开发团队提供简体中文语言包)。

vhcs 支持多种linux发行版本,但是Debian才是它的最佳搭档,它的开发和测试平台是基于Debian Sarge的,下面是在Debian Sarge下的安装步骤。

在开始之前, 保证你使用的版本是Debian Sarge,网络正常并且拥有一个静态IP。
1. 更新Debian Sarge。
apt-get update; apt-get upgrade

2. 安装必要的软件。
apt-get install  ssh postfix proftpd-mysql courier-authdaemon courier-base \
         courier-imap courier-maildrop courier-pop  \
         perl-modules bind9 diff gzip iptables libmcrypt4 mysql-client \
         mysql-common   mysql-server patch php4 php4-mcrypt php4-mysql  \
         libsasl2-modules libsasl2 sasl2-bin apache2 apache2-common bzip2\
         libcrypt-blowfish-perl libcrypt-cbc-perl original-awk libterm-readpassword-perl \
         libmime-perl libnet-dns-perl libnet-netmask-perl libnet-perl \
       
php4-pear procmail tar original-awk libapache2-mod-php4
3. 下载并编译vhcs
     wget http://ovh.dl.sourceforge.net/sourceforge/vhcs/vhcs2.4.6.2.tar.bz2
     tar jxf vhcs2.4.6.2.tar.bz2
     cd vhcs2.4.6.2
     make install
     cd /tmp/vhcs2/
     cp -R etc /
     cp -R usr /
     cp -R var /
     chmod  -R 777 /var/www/vhcs2/gui/tools/webmail/database/

4. 修改mysql的root密码
 mysql -u root -p
    use mysql
    update user set password=password("new_pass") where user="root";
    flush privileges;

5. 安装 vhcs 2.4.6.2
(more…)

Next Page »