<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>小米の网志 &#187; 知识收藏</title>
	<atom:link href="http://imox.me/category/cmd/feed" rel="self" type="application/rss+xml" />
	<link>http://imox.me</link>
	<description>又一个 WordPress 站点</description>
	<lastBuildDate>Sun, 01 Jan 2012 13:55:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>几个小知识点</title>
		<link>http://imox.me/%e5%87%a0%e4%b8%aa%e5%b0%8f%e7%9f%a5%e8%af%86%e7%82%b9.shtml</link>
		<comments>http://imox.me/%e5%87%a0%e4%b8%aa%e5%b0%8f%e7%9f%a5%e8%af%86%e7%82%b9.shtml#comments</comments>
		<pubDate>Sun, 01 Jan 2012 13:55:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[nohup]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://imox.me/?p=609</guid>
		<description><![CDATA[感谢洪川的邮件分享，这几个小知识点我这里再记录下。 Q : 如何让（bash shell）前台的任务到后台运行？ A: 按Ctrl+z, 然后执行命令bg Q: 如何让后台的程序在退出shell 的时候继续运行？ A: 启动命令时这样启动： nohup /home/xxxx/bin/command &#038;>/dev/null &#038; 假如你想保留日志观察： nohup /home/xxxx/bin/command &#038;>/home/xxxx/logs/command.log &#038; Q: 已经启动的前台的命令，被我放到后台之后，我想退出shell，又想让后台的程序继续在跑（注意，一定要知道自己在干什么，这样跑起来的任务，假如自己不会退出，会一直在后台运行），怎么办？ A: 执行disown [%n] [%n] 表示可选，%n是后台的作业号。查看后台的作业使用jobs命令。 disown 是bash的内置命令。作用是通知后台作业忽略“父进程退出信号”，这样，当父进程退出时，子进程（作业）会变成“孤儿进程”被init接管，变成daemon。 Bash有很多内建命令，输入help命令，会显示所有内建命令，help 内建命令名，会显示相关命令的帮助。 Q：有十个磁盘，如何快速格式化？（并发） A：原脚本： n=1 for i in {a..j} ; do mkfs.ext4 /dev/sd${i}1 –L /disk${n} ((n++)) done 并发（一个磁盘一个格式化任务）： n=1 for I in {a..j} ; [...]]]></description>
			<content:encoded><![CDATA[<p>感谢洪川的邮件分享，这几个小知识点我这里再记录下。<br />
Q : 如何让（bash shell）前台的任务到后台运行？<br />
A: 按Ctrl+z, 然后执行命令bg</p>
<p>Q: 如何让后台的程序在退出shell 的时候继续运行？<br />
A: 启动命令时这样启动：<br />
         nohup /home/xxxx/bin/command &#038;>/dev/null &#038;<br />
   假如你想保留日志观察：<br />
nohup /home/xxxx/bin/command &#038;>/home/xxxx/logs/command.log &#038;</p>
<p>Q: 已经启动的前台的命令，被我放到后台之后，我想退出shell，又想让后台的程序继续在跑（注意，一定要知道自己在干什么，这样跑起来的任务，假如自己不会退出，会一直在后台运行），怎么办？<br />
A: 执行disown [%n]<br />
[%n] 表示可选，%n是后台的作业号。查看后台的作业使用jobs命令。<br />
disown 是bash的内置命令。作用是通知后台作业忽略“父进程退出信号”，这样，当父进程退出时，子进程（作业）会变成“孤儿进程”被init接管，变成daemon。<br />
Bash有很多内建命令，输入help命令，会显示所有内建命令，help 内建命令名，会显示相关命令的帮助。</p>
<p>Q：有十个磁盘，如何快速格式化？（并发）<br />
A：原脚本：<br />
    n=1<br />
for i in {a..j} ; do<br />
         mkfs.ext4 /dev/sd${i}1 –L /disk${n}<br />
         ((n++))<br />
done</p>
<p>         并发（一个磁盘一个格式化任务）：<br />
n=1<br />
for I in {a..j} ; do<br />
         mkfs.ext4 /dev/sd${i}1 –L /disk${n} &#038;>/dev/null &#038;<br />
         ((n++))<br />
done</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/%e5%87%a0%e4%b8%aa%e5%b0%8f%e7%9f%a5%e8%af%86%e7%82%b9.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用Extmail搭建web企业邮局</title>
		<link>http://imox.me/extmail-webmail.shtml</link>
		<comments>http://imox.me/extmail-webmail.shtml#comments</comments>
		<pubDate>Sun, 01 Jan 2012 12:04:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[Extmail]]></category>
		<category><![CDATA[webmail]]></category>

		<guid isPermaLink="false">http://imox.me/?p=605</guid>
		<description><![CDATA[我们的目标是:用postfix为主建立一套邮件系统，然后用extmail&#038;extman对这套邮件系统实现web管理。 官方文档：http://www.extmail.org/docs/extmail_solution_linux/ 前情提要： 服务器ip：192.168.0.8 apache安装在/usr/local/apache，运行用户和组都叫www，uid和gid都是48 mysql安装在/usr/local/mysql，用户名root，密码sa，sock文件在/tmp/mysql.sock extmail&#038;extman将要被安装在/data/htdocs/extsuite目录下 mail的保存目录是/var/spool/mail 文中类似 cat >>xxoo /usr/local/apache/conf/httpd.conf>/usr/local/nginx/conf/nginx.conf webmail.cf sed -i ’s/\/home\/domains/\/var\/spool\/mail/’ webmail.cf sed -i ’s/db_user/root/’ webmail.cf sed -i ’s/db_pass/shopex/’ webmail.cf sed -i ’s/\/var\/lib\/mysql/\/tmp/’ webmail.cf 第一个sed是修正extmail的存放目录，和web服务器定义的文档路径一致。 第二个sed是修正邮件的存放的跟目录，要和下面安装的postfix设置的保持一致。 第三 ～ 第五个sed是修正mysql的连接帐号 下面是修改extman的，extman负责邮箱管理 cd data/htdocs/extsuite/extman sed -i ’s/\/var\/www/\/data\/htdocs/’ webman.cf sed -i ’s/\/home\/domains/\/var\/spool\/mail/’ webman.cf sed -i ’s/db_user/root/’ webman.cf sed -i ’s/db_pass/shopex/’ webman.cf sed -i [...]]]></description>
			<content:encoded><![CDATA[<p>我们的目标是:用postfix为主建立一套邮件系统，然后用extmail&#038;extman对这套邮件系统实现web管理。</p>
<p>官方文档：http://www.extmail.org/docs/extmail_solution_linux/</p>
<p>前情提要：</p>
<p>服务器ip：192.168.0.8<br />
apache安装在/usr/local/apache，运行用户和组都叫www，uid和gid都是48<br />
mysql安装在/usr/local/mysql，用户名root，密码sa，sock文件在/tmp/mysql.sock<br />
extmail&#038;extman将要被安装在/data/htdocs/extsuite目录下<br />
mail的保存目录是/var/spool/mail</p>
<p>文中类似<br />
<code><br />
cat >>xxoo<<’EOF’<br />
xxx<br />
ooo<br />
000<br />
EOF<br />
</code><br />
这的意思是用shell的管道和cat来建立一个新文件，或向已存在的文件追加一段文字，详尽的说明在这里。<br />
要是你更信任vi或者emacs，复制中间的文本xxxooo000就行了。</p>
<p>前情提要介绍完毕，下面开始正文<br />
<span id="more-605"></span><br />
一、建立一下必要的帐号和目录<br />
<code><br />
groupadd postfix -g 2001<br />
groupadd postdrop -g 2002<br />
groupadd vmail -g 2003<br />
useradd postfix -u 2002 -g postfix -G postdrop<br />
useradd vmail -g 2002 -s /sbin/nologin<br />
</code><br />
-G是属于多个组的意思了</p>
<p>建立保存email的目录</p>
<p>mkdir -pv /var/spool/mail<br />
chown apache:apache /var/spool/mail<br />
俺的apache是用apache用户跑的，所以归apache所有，否则extman不能自动建立域目录和用户目录。<br />
不过postfix和courier-imap也将要对它进行操作，嗯…. 权限是个大问题，先放一边,要先能跑起来再说，”好读书不求甚解” T_T</p>
<p>二、extmail和extman</p>
<p>下载extmail和extman，其中extman的docs目录中有写得很好的和mysql进行关联postfix配置文件，自己敲多累啊。</p>
<p>将它们解包到/var/www/extsuite目录下，cd进入extman的docs目录，执行<br />
<code><br />
/usr/local/mysql/bin/mysql -uroot -pshopex < extmail.sql<br />
/usr/local/mysql/bin/mysql -uroot -pshopex < init.sql<br />
</code><br />
或者登陆mysql控制台，然后用source命令导入数据。</p>
<p>修改apache的配置文件，让它们跑起来，哈哈，我们先造好车外壳，等下再打造发动机，轮子…..<br />
cat >> /usr/local/apache/conf/httpd.conf<</p>
<p>NameVirtualHost *:80</p>
<p>ServerName mail.zzzrc.com<br />
DocumentRoot /data/htdocs/extsuite/extmail/html/<br />
ScriptAlias /extmail/cgi /data/htdocs/extsuite/extmail/cgi<br />
ScriptAlias /extman/cgi /data/htdocs/extsuite/extman/cgi<br />
Alias /extmail /data/htdocs/extsuite/extmail/html<br />
Alias /extman /data/htdocs/extsuite/extman/html<br />
#SuexecUserGroup vuser vgroup</p>
<p>AllowOverride None<br />
Options None<br />
Order allow,deny<br />
Allow from all</p>
<p>Options +ExecCGI</p>
<p>Options +ExecCGI</p>
<p>EOF<br />
如果想用fastcgi方式跑perl，推荐用nginx代替apache。nginx运行perl的配置方法请参考这里。下面给一个针对extman&#038;extmail的nginx配置参考:</p>
<p>cat >>/usr/local/nginx/conf/nginx.conf<</p>
<p>server<br />
{<br />
listen 80;<br />
server_name mail.imox.me ;<br />
index index.html index.htm index.cgi;<br />
root /data/htdocs/extsuite/extmail/html;</p>
<p>location ~ /(extmail|extman)/cgi/.*\.cgi?<br />
{<br />
root /data/htdocs/extsuite;<br />
include perl_fcgi.conf;<br />
}</p>
<p>location /extmail/ {<br />
alias /data/htdocs/extsuite/extmail/html/;<br />
}</p>
<p>location /extman/ {<br />
alias /data/htdocs/extsuite/extman/html/;<br />
}</p>
<p>access_log /var/log/nginx/mail.imox.me.log access;<br />
}</p>
<p>EOF<br />
接下来需要修改extmail和extmail的配置文件webmail.cf、webman.cf改</p>
<p>cd /data/htdocs/extsuite/extmail<br />
sed 's/\/var\/www/\/data\/htdocs/' webmail.cf.default > webmail.cf<br />
sed -i ’s/\/home\/domains/\/var\/spool\/mail/’ webmail.cf<br />
sed -i ’s/db_user/root/’ webmail.cf<br />
sed -i ’s/db_pass/shopex/’ webmail.cf<br />
sed -i ’s/\/var\/lib\/mysql/\/tmp/’ webmail.cf<br />
第一个sed是修正extmail的存放目录，和web服务器定义的文档路径一致。<br />
第二个sed是修正邮件的存放的跟目录，要和下面安装的postfix设置的保持一致。<br />
第三 ～ 第五个sed是修正mysql的连接帐号</p>
<p>下面是修改extman的，extman负责邮箱管理</p>
<p>cd data/htdocs/extsuite/extman<br />
sed -i ’s/\/var\/www/\/data\/htdocs/’ webman.cf<br />
sed -i ’s/\/home\/domains/\/var\/spool\/mail/’ webman.cf<br />
sed -i ’s/db_user/root/’ webman.cf<br />
sed -i ’s/db_pass/shopex/’ webman.cf<br />
sed -i ’s/\/var\/lib\/mysql/\/tmp/’ webman.cf<br />
sed -i ’s/SYS_DEFAULT_UID = 1000/SYS_DEFAULT_UID = 48/’ webman.cf<br />
sed -i ’s/SYS_DEFAULT_GID = 1000/SYS_DEFAULT_GID = 48/’ webman.cf<br />
LDAP的统统注释掉了，最后给extman创建保持session的目录</p>
<p>mkdir -pv /tmp/extman &#038;&#038; chmod 0777 /tmp/extman<br />
建邮件存放目录</p>
<p>pushd /data/htdocs/extsuite/extman/tools<br />
./maildirmake.pl /var/spool/mail/extmail.org/postmaster/Maildir<br />
chown -R www:www /var/spool/mail/extmail.org<br />
popd<br />
改一下本地的hosts文件，用浏览器打开http://mail.imox.me应该可以看到extmail的界面。</p>
<p>http://mail.zzzforerver.com/extman/可以登录邮件系统管理后台，初始账号是：</p>
<p>root@extmail.org<br />
extmail*123*</p>
<p>如果页面提示缺少perl的模块，根据extmail的错误提示，一一补齐：<br />
perl　-MCPAN　-e　shell　<br />
或者上http://www.cpan.org/找也很快，安装方法都很简单</p>
<p>perl Makefile.PL &#038;&#038; make &#038;&#038; make test &#038;&#038; make install</p>
<p>Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &#038;Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86.<br />
报这个错误是缺少syslog<br />
安装方法<br />
perl -MCPAN -e shell<br />
cpan>install Unix::Syslog</p>
<p>或者用 cpan -i Unix::Syslog 安装都一样</p>
<p>Can’t locate DBI.pm in @INC (@INC contains: /var/www/extsuite/extman/libs /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /var/www/extsuite/extman/libs/Ext/Mgr/MySQL.pm line 13. BEGIN failed–compilation aborted at /var/www/extsuite/extman/libs/Ext/Mgr/MySQL.pm line 13. Compilation failed in require at /var/www/extsuite/extman/libs/Ext/Mgr.pm line 37.</p>
<p>缺少DBI DBD<br />
Extman登录进去就报下面这个错：<br />
Need AUTH code! at /var/www/extsuite/extman/libs/Ext/Cmd/Client.pm line 12.<br />
解决办法是在webman.cf里增加一行：<br />
SYS_CMDSERVER_AUTHCODE = eExXtTMmAaiIlL</p>
<p>然后浏览“系统信息”的时候提示“Peer info not know”，下面信息全无。<br />
又在webman.cf里增加一行：<br />
SYS_CMDSERVER_SOCK = /var/run/extmail/cmdserver.sock</p>
<p>初始化cpan的时候一路回车，到这里的时候写上相应的，和选择源<br />
Parameters for the ‘perl Makefile.PL’ command?<br />
Typical frequently used settings:</p>
<p>PREFIX=~/perl non-root users (please see manual for more hints)</p>
<p>Your choice: []<br />
Parameters for the ‘make’ command?<br />
Typical frequently used setting:</p>
<p>-j3 dual processor system</p>
<p>Your choice: [] -j3<br />
Parameters for the ‘make install’ command?<br />
Typical frequently used setting:</p>
<p>UNINST=1 to always uninstall potentially conflicting files</p>
<p>Your choice: [-j3] UNINST=1</p>
<p>没有底层程序的支援，现在这个webmail啥都干不了，下面开始打造实际干活的东东。</p>
<p>编译比较搞的地方也就是指定sasl库和mysql库的地址了，只要对了一般就不会有问题，我的MySQL是编译安装的</p>
<p>-I/usr/local/mysql/include<br />
-L/usr/local/mysql/lib</p>
<p>ls一下上面的目录保证分别有.h和.so文件就可以了<br />
三、 courier-authlib</p>
<p>官方网址：http://www.courier-mta.org/download.php#authlib</p>
<p>./configure –without-authuserdb –without-authpam –without-authldap –without-authpwd –without-authshadow –without-authvchkpw –without-authpgsql –without-authcustom –with-authmysql –with-mysql-libs=/usr/local/lib/mysql –with-mysql-includes=/usr/local/include/mysql –with-mailuser=postfix –with-mailgroup=postfix –with-redhat<br />
这个包要在非root的环境下编译，configure和make以后再切换到root环境下make install<br />
配置authdaemon进程<br />
cat >>/usr/local/etc/authlib/authdaemonrc<</p>
<p>authmodulelist="authmysql"<br />
authmodulelistorig="authmysql"<br />
daemons=1<br />
authdaemonvar=/var/spool/authdaemon<br />
DEBUG_LOGIN=0<br />
DEFAULTOPTIONS=""<br />
LOGGEROPTS=""</p>
<p>EOF<br />
配置authdaemon和MySQL的关联<br />
cat >>/usr/local/etc/authlib/authmysqlrc<</p>
<p>MYSQL_SERVER 127.0.0.1<br />
MYSQL_SOCKET /tmp/mysql.sock<br />
MYSQL_DATABASE extmail<br />
MYSQL_USERNAME extmail<br />
MYSQL_PASSWORD extmail<br />
MYSQL_USER_TABLE mailbox<br />
MYSQL_LOGIN_FIELD username<br />
MYSQL_CRYPT_PWFIELD password<br />
MYSQL_CLEAR_PWFIELD clearpwd<br />
MYSQL_UID_FIELD uidnumber<br />
MYSQL_GID_FIELD gidnumber<br />
MYSQL_HOME_FIELD homedir<br />
MYSQL_MAILDIR_FIELD maildir<br />
MYSQL_NAME_FIELD name<br />
MYSQL_QUOTA_FIELD quota<br />
MYSQL_WHERE_CLAUSE active='1'<br />
#DEFAULT_DOMAIN clans.cn</p>
<p>EOF<br />
启动courier-authlib</p>
<p>/usr/local/sbin/authdaemond start</p>
<p>验证一下 :</p>
<p>[root@zzz sbin]# pwd<br />
/usr/local/sbin<br />
[root@zzz sbin]# authtest -s login postmaster@extmail.org<br />
Authentication succeeded.</p>
<p>Authenticated: postmaster@extmail.org (uid 1000, gid 1000)<br />
Home Directory: extmail.org/postmaster<br />
Maildir: extmail.org/postmaster/Maildir/<br />
Quota: 104857600S<br />
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0<br />
Cleartext Password: (none)<br />
Options: (none)<br />
[root@zzz sbin]#</p>
<p>s login是要测试登陆验证服务的一下，postmaster@extmail.org要和extmail库中mailbox表username字段的值对应，并且clearpw是空白。如果成功说明我们的authmysqlrc是正确，否则就要在authdaemonrc中将DEBUG_LOGIN的值设为5，然后在/var/log中看mail.log中的错误提示信息上Google查原因。</p>
<p>安装maildrop<br />
./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=2002 --enable-maildrop-gid=2001 --with-trashquota --with-dirsync CPPFLAGS="-D_FILE_OFFSET_BITS=64"</p>
<p>vi /etc/maildroprc<br />
logfile "/var/mailbox/maildrop.log"<br />
to "$HOME/Maildir"</p>
<p>三、cyrus-sasl-2.x<br />
官方地址：http://ftp.andrew.cmu.edu/pub/cyrus-mail/<br />
./configure \<br />
--enable-plain \<br />
--enable-cram \<br />
--enable-digest \<br />
--enable-login \<br />
--enable-sql \<br />
--disable-anon \<br />
--disable-ntlm \<br />
--disable-gssapi \<br />
--disable-krb4 \<br />
--disable-otp \<br />
--disable-srp \<br />
--disable-srp-setpass \<br />
--with-authdaemond=/usr/local/var/spool/authdaemon/socket \<br />
--with-mysql=/usr/local/mysql \<br />
--with-mysql-includes=/usr/local/mysql/include \<br />
--with-mysql-libs=/usr/local/mysql/lib \<br />
make<br />
make install</p>
<p>ln -sv /usr/local/lib/sasl2 /usr/lib/sasl2</p>
<p>cat >>/usr/local/lib/sasl2/smtpd.conf<</p>
<p>pwcheck_method: authdaemond<br />
log_level: 7<br />
mech_list: PLAIN LOGIN<br />
authdaemond_path: /usr/local/var/spool/authdaemon/socket</p>
<p>EOF<br />
log_level设这么高是为了方便调试，正式运行要调小一点。</p>
<p>四、postfix<br />
官方地址： http://www.postfix.org<br />
make tidy</p>
<p>make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lm -lz -L/usr/local/lib -lsasl2'</p>
<p>make<br />
make install<br />
如有有报这样的错误<br />
bin/postconf: error while loading shared libraries: libsasl2.so.2: cannot open shared object file: No such file or directory<br />
执行命令</p>
<p>ln -sv /usr/local/lib/libsasl2.so.2 /usr/lib/libsasl2.so.2<br />
然后再make install<br />
系统会问你很多问题，一路回车就行了。设置一下postfix的别名</p>
<p>mv /etc/aliases /etc/aliases.old<br />
ln -s /etc/postfix/aliases /etc/aliases<br />
echo 'root: me@imox.me'>>/etc/postfix/aliases<br />
/usr/bin/newaliases<br />
postfix主配置文件</p>
<p>cat >> /etc/postfix/main.cf<<'EOF'</p>
<p>#turn it to 1 in produce environment<br />
debug_peer_level = 2<br />
inet_interfaces = all<br />
mail_owner = postfix<br />
setgid_group = postdrop<br />
unknown_local_recipient_reject_code = 550</p>
<p>mydomain = imox.me<br />
myhostname = mail.imox.me<br />
mydestination = $myhostname,localhost.$mydomain,localhost<br />
myorigin = $mydomain</p>
<p>alias_maps = hash:/etc/aliases<br />
command_directory = /usr/sbin<br />
config_directory = /etc/postfix<br />
daemon_directory = /usr/libexec/postfix<br />
mailq_path = /usr/bin/mailq<br />
manpage_directory = /usr/local/man<br />
newaliases_path = /usr/bin/newaliases<br />
queue_directory = /var/spool/postfix<br />
sample_directory = /etc/postfix<br />
sendmail_path = /usr/sbin/sendmail<br />
html_directory = no<br />
readme_directory = no</p>
<p>virtual_transport = virtual</p>
<p>virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf<br />
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf<br />
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf</p>
<p>virtual_uid_maps = static:1003<br />
virtual_gid_maps = static:1002</p>
<p>virtual_mailbox_base = /var/spool/mail<br />
virtual_mailbox_limit = 102400000<br />
virtual_minimum_uid = 1005</p>
<p>broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_unauth_destination, permit<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_local_domain = $myhostname<br />
smtpd_sasl_security_options = noanonymous<br />
smtpd_sasl_application_name = smtpd<br />
smtpd_banner=$myhostname ESMTP "Land moon Version"</p>
<p>EOF<br />
其中的virtual_uid_maps和vitrual_gid_maps是vmail的uid和gid</p>
<p>如果你细心的话会发现上面的EOF是被单引号引起了的，原因是我们的文本里有$myhostname这样的变量，要用单引表示其只是一个普通文本，不是变量</p>
<p>配置好postfix和mysql中extmail库的链接<br />
cat >>/etc/postfix/mysql_virtual_alias_maps.cf<</p>
<p>user = root<br />
password = shopex<br />
hosts = localhost<br />
dbname = extmail<br />
table = alias<br />
select_field = goto<br />
where_field = address<br />
additional_conditions = AND active = '1'</p>
<p>EOF<br />
cat >>/etc/postfix/mysql_virtual_domains_maps.cf<</p>
<p>user = root<br />
password = shopex<br />
hosts = localhost<br />
dbname = extmail<br />
table = domain<br />
select_field = domain<br />
where_field = domain<br />
additional_conditions = AND active = '1'</p>
<p>EOF<br />
cat >>/etc/postfix/mysql_virtual_mailbox_maps.cf<</p>
<p>user = root<br />
password = shopex<br />
hosts = localhost<br />
dbname = extmail<br />
table = mailbox<br />
select_field = maildir<br />
where_field = username<br />
additional_conditions = AND active = '1'</p>
<p>EOF<br />
设置目录权限</p>
<p>chown postfix:postfix /var/spool/postfix/ -R<br />
chown root:root /var/spool/postfix<br />
chown postfix:postdrop /var/spool/postfix/public<br />
chown postfix:postdrop /var/spool/postfix/maildrop<br />
启动postfix</p>
<p>postfix start<br />
看看/var/log/mail.log有没有错误，如果没有就ok了，验证一下:</p>
<p>perl -e 'use MIME::Base64; print encode_base64("用户名@saunix.cn")'<br />
eHh4QHNob3BleC5jbg== （返回值等下认证用的）<br />
perl -e 'use MIME::Base64; print encode_base64("密码")'<br />
eHh4<br />
telnet 192.168.0.8 25</p>
<p>220 mail.zzzrc.com ESMTP “Land moon Version”<br />
ehlo localhost<br />
250-mail.zzzrc.com<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-AUTH PLAIN LOGIN<br />
250-AUTH=PLAIN LOGIN<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250 DSN<br />
auth login<br />
334 VXNlcm5hbWU6<br />
eHh4QHNob3BleC5jbg==<br />
334 UGFzc3dvcmQ6<br />
eHh4<br />
235 2.0.0 Authentication successful</p>
<p>验证成功！postmaster@extmail.org和extmail必须用base64编码才能和服务器交流，可以这么搞:<br />
五、Courier-IMAP<br />
官方地址：http://www.courier-mta.org/download.php</p>
<p>./configure --enable-plain --enable-cram --enable-digest --enable-login --enable-sql --disable-anon --disable-ntlm --disable-gssapi --disable-krb4 --disable-otp --disable-srp --disable-srp-setpass --with-authdaemond=/usr/local/var/spool/authdaemon/socket --with-mysql=/usr/local --with-mysql-includes=/usr/local/include/mysql --with-mysql-libs=/usr/local/lib/mysql<br />
make<br />
make install<br />
cp /usr/lib/courier-imap/etc/imapd.dist /usr/lib/courier-imap/etc/imapd<br />
cp /usr/lib/courier-imap/etc/imapd-ssl.dist /usr/lib/courier-imap/etc/imapd-ssl<br />
cp /usr/lib/courier-imap/etc/pop3d.dist /usr/lib/courier-imap/etc/pop3d<br />
cp /usr/lib/courier-imap/etc/pop3d-ssl.dist /usr/lib/courier-imap/etc/pop3d-ssl<br />
配置Courier-IMAP，为用户提供pop3服务：</p>
<p>sed -i 's/POP3DSTART=NO/POP3DSTART=yes/' /usr/lib/courier-imap/etc/pop3d<br />
IMAP服务的配置类似。</p>
<p>cp courier-imap.sysvinit /etc/rc.d/init.d/imapd<br />
chmod +x /etc/rc.d/init.d/imapd<br />
cd /etc/rc.d/rc3.d<br />
ln -sv ../init.d/imapd S75imapd<br />
启动</p>
<p>/etc/rc.d/init.d/imapd start<br />
验证imap</p>
<p>telnet 192.168.0.8 110</p>
<p>+OK Hello there.<br />
user postmaster@extmail.org<br />
+OK Password required.<br />
pass extmail<br />
+OK logged in.<br />
遇到的错误</p>
<p>ec 26 02:27:44 localhost postfix/trivial-rewrite[6447]: fatal: mysql:/etc/postfix/mysql_virtual_alias_maps.cf(0,lock|fold_fix): table lookup problem<br />
Dec 26 02:27:45 localhost postfix/master[6444]: warning: process /usr/libexec/postfix/trivial-rewrite pid 6447 exit status 1<br />
Dec 26 02:27:45 localhost postfix/pickup[6446]: 7928A710283: uid=502 from=<br />
Dec 26 02:27:45 localhost postfix/master[6444]: warning: /usr/libexec/postfix/trivial-rewrite: bad command startup — throttling</p>
<p>原因是postfix是运行在chroot环境中无法找到</p>
<p>连接配置文件中</p>
<p>hosts = localhost</p>
<p>都改成</p>
<p>hosts = 127.0.0.1</p>
<p>用tcp方式去连接，</p>
<p>http://ubuntuforums.org/archive/index.php/t-251119.html</p>
<p>Recipient address rejected: User unknown in local recipient table;</p>
<p>apache改用postfix帐号来运行</p>
<p>pop3信取不下来</p>
<p>三个地方用户身份要统一</p>
<p>apache运行用户（/usr/local/apache2_webmail/conf/httpd.conf ）</p>
<p>User postfix<br />
Group postfix</p>
<p>postfix运行用户（/etc/mail.cf）</p>
<p>virtual_uid_maps = static:2002<br />
virtual_gid_maps = static:2001</p>
<p>authlib运行用户（/usr/local/etc/authlib/authmysqlrc)</p>
<p>MYSQL_UID_FIELD 2002<br />
MYSQL_GID_FIELD 2001</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/extmail-webmail.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通过IPMITOOL添加远程管理账户</title>
		<link>http://imox.me/ipmitool-add-user.shtml</link>
		<comments>http://imox.me/ipmitool-add-user.shtml#comments</comments>
		<pubDate>Sun, 25 Dec 2011 04:57:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[BMC]]></category>
		<category><![CDATA[ipmitool]]></category>
		<category><![CDATA[带外管理]]></category>

		<guid isPermaLink="false">http://imox.me/?p=602</guid>
		<description><![CDATA[service ipmi restart; //重启下ipmi服务，可省略 ipmitool user set name 6 admin; //在ID6添加admin账户 ipmitool user set password 6 password; //设置ID6的密码为password ipmitool user priv 6 4 1;//赋予管理员权限 6指ID号 4指管理员权限 1指频道号 ipmitool sol payload enable 1 6;//允许payload ipmitool user enable 6;//激活ID6的账户 ipmitool user list 1 //列出用户]]></description>
			<content:encoded><![CDATA[<p>service ipmi restart; //重启下ipmi服务，可省略</p>
<p>ipmitool user set name 6 admin; //在ID6添加admin账户</p>
<p>ipmitool user set password 6 password; //设置ID6的密码为password</p>
<p>ipmitool user priv 6 4 1;//赋予管理员权限 6指ID号 4指管理员权限 1指频道号</p>
<p>ipmitool sol payload enable 1 6;//允许payload</p>
<p>ipmitool user enable 6;//激活ID6的账户</p>
<p>ipmitool user list 1 //列出用户</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/ipmitool-add-user.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xen环境虚拟机安装</title>
		<link>http://imox.me/xen-virtual-install.shtml</link>
		<comments>http://imox.me/xen-virtual-install.shtml#comments</comments>
		<pubDate>Sun, 25 Dec 2011 04:42:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[xen]]></category>
		<category><![CDATA[虚拟机]]></category>

		<guid isPermaLink="false">http://imox.me/?p=598</guid>
		<description><![CDATA[yum install -y xen* yum install -y virt-manager yum install -y kernel-xen* yum install -y vnc* vi /etc/xen/xend-config.sxp 在这个文件中其实主要修改以下两行 (vnc-listen ’0.0.0.0’) （将监听地址改为0.0.0.0表示启用本宿主机上的所有网卡地址） (vncpasswd ’123456’) (将VNC的连接密码设置为123456) 1、安装windows虚拟机 virt-install \ &#8211;name win \ &#8211;ram 2048 \ &#8211;vcpus=2 \ &#8211;os-type=windows \ &#8211;os-variant=vm0 \ &#8211;hvm \ &#8211;cdrom=/home/cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso \ &#8211;file=/home/xen/vm01.img \ -s 20 \ &#8211;vnc \ -v \ &#8211;prompt 2.创建linux [...]]]></description>
			<content:encoded><![CDATA[<p>yum install -y xen*<br />
yum install -y virt-manager<br />
yum install -y kernel-xen*<br />
yum install -y vnc*</p>
<p>vi /etc/xen/xend-config.sxp<br />
在这个文件中其实主要修改以下两行<br />
(vnc-listen ’0.0.0.0’) （将监听地址改为0.0.0.0表示启用本宿主机上的所有网卡地址）<br />
(vncpasswd ’123456’) (将VNC的连接密码设置为123456)<br />
1、安装windows虚拟机</p>
<p>virt-install \<br />
&#8211;name win \<br />
&#8211;ram 2048 \<br />
&#8211;vcpus=2 \<br />
&#8211;os-type=windows \<br />
&#8211;os-variant=vm0 \<br />
&#8211;hvm \<br />
&#8211;cdrom=/home/cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso \<br />
&#8211;file=/home/xen/vm01.img \<br />
-s 20 \</p>
<p>&#8211;vnc \</p>
<p>-v \<br />
&#8211;prompt</p>
<p>2.创建linux 虚拟机 半虚拟化+kickstart<br />
virt-install \<br />
&#8211;name pxe1 \<br />
&#8211;ram 512 \<br />
&#8211;os-type=linux \<br />
&#8211;os-variant=rhel5 \<br />
&#8211;paravirt \<br />
&#8211;location http://172.XX.XX.254/centos5u5/ \<br />
&#8211;disk path=/var/xen/pxe1.img \<br />
&#8211;nographics \<br />
&#8211;extra-args=”cmdline ks=http://172.XX.XX.254/php/getks.php?hostname=xen1 ksdevice=eth0 ip=dhcp”</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/xen-virtual-install.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UltraEdit 常用正则表达式</title>
		<link>http://imox.me/ultraedit-syntax.shtml</link>
		<comments>http://imox.me/ultraedit-syntax.shtml#comments</comments>
		<pubDate>Fri, 11 Mar 2011 07:42:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>

		<guid isPermaLink="false">http://imox.me/?p=511</guid>
		<description><![CDATA[正则表达式 (UltraEdit Syntax): % 匹配行首 &#8211; 表明要搜索的字符串一定在行首. $ 匹配行尾 &#8211; 表明要搜索的字符串一定在行尾 ? 匹配除换行符外的任一单个字符. * 匹配任意个数的字符出现任意次数（不包括换行符） + 匹配前导字符或者表达式出现一次或者更多次（不包括换行符） ++ 匹配前导字符或者表达式不出现或者出现一次以上（不包括换行符） ^b 匹配页中断符 ^p 匹配DOS文件的换行符 ^r 匹配MAC文件的换行符(CR Only) ^n 匹配UNIX文件的换行符 (LF Only) ^t 匹配一个制表符 [ ] 匹配方括号中的单个的字符 删除空行: 替换 %[ ^t]++^p 为 空串 删除行尾空格: 替换 [ ^t]+$ 为 空串 删除行首空格: 替换 %[ ^t]+ 为 空串 每行设置为固定的4个空格开头: 替换 [...]]]></description>
			<content:encoded><![CDATA[<p>正则表达式 (UltraEdit Syntax):<br />
% 匹配行首 &#8211; 表明要搜索的字符串一定在行首.<br />
$ 匹配行尾 &#8211; 表明要搜索的字符串一定在行尾<br />
? 匹配除换行符外的任一单个字符.<br />
* 匹配任意个数的字符出现任意次数（不包括换行符）<br />
+ 匹配前导字符或者表达式出现一次或者更多次（不包括换行符）<br />
++ 匹配前导字符或者表达式不出现或者出现一次以上（不包括换行符）<br />
^b 匹配页中断符<br />
^p 匹配DOS文件的换行符<br />
^r 匹配MAC文件的换行符(CR Only)<br />
^n 匹配UNIX文件的换行符 (LF Only)<br />
^t 匹配一个制表符<br />
[ ] 匹配方括号中的单个的字符 </p>
<p><span id="more-511"></span><br />
删除空行: 替换 %[ ^t]++^p 为 空串 </p>
<p>删除行尾空格: 替换 [ ^t]+$ 为 空串 </p>
<p>删除行首空格: 替换 %[ ^t]+ 为 空串 </p>
<p>每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 ” ^1&#8243; </p>
<p>每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 ” ”<br />
(如果一行是以空格开始的,则视之为一段的开始行) </p>
<p>将一段合并为一行: 替换 [ ^t]++^p^([~ ^t^p]^) 为 ^1<br />
(注意: 此处假定文本是以DOS方式回车换行 &#8211; CR/LF) </p>
<p>去掉HTML TAG: 替换 ^{<*>^}^{<*^p*>^} 为 空串 </p>
<p>删除HTML中的所有: 替换 <[ ]++a *[ ]++href[ ]++=*> 为 空串 </p>
<p>删除文本中指定的前2列字符: 替换 %?? 为 空串 </p>
<p>在第4列后插入2列空白字符: 替换 %^(????^)^(?^) 为 “^1 ^2&#8243; </p>
<p>查找所有的数字: [0-9]+[.]++[0-9]+ </p>
<p>查找所有的单词: [a-z]+ </p>
<p>查找所有的网址: http://[a-z0-9^~`_./^-^?=&#038;]+ </p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/ultraedit-syntax.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>提取CA证书</title>
		<link>http://imox.me/get-ca.shtml</link>
		<comments>http://imox.me/get-ca.shtml#comments</comments>
		<pubDate>Mon, 24 Jan 2011 01:11:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>

		<guid isPermaLink="false">http://imox.me/?p=491</guid>
		<description><![CDATA[上公司内网需要安全证书．在家，在公司重装系统，或者要别的浏览器支持都需要重新申请安全证书． 很是纠结． 软件名也取得牛B:JailBreak 下载地址：　传送门 注意：部分杀毒软件会报毒，不过请放心使用，绝对无毒。解压前请确保杀毒软件已退出，不然被杀了可就提取不到了哦~ 软件大概65K左右，解压缩后有六个文件(另外还有一个无用的README.txt). 不要执行jailbreak.msc而是应该双击没有图标的jailbreak.exe． 展开树形目录，找到证书目录． 右键选择＂所有任务＂－＂导出＂． 进入欢迎界面，点击＂下一步＂． 在弹出的对话框里选择＂是，导出私钥(Y)＂，然后下一步，再出现的对话框不用选择，只管默认，＂下一步＂． 记得输入一个创建的密码，确认后，选择＂保存路径和设定文件名＂后，安全证书就备份OK了． 备份OK之后就是导入了，IE系的浏览器直接双击，然后输入之前输入的密码就OK鸟. 非IE系的浏览器找到＂证书＂选项，直接导入就OK鸟． 备份安全证书主要难在默认无法导出私钥，需要借助第三方软件来进行，一旦能够保存了，其它的操作都是小case啦．]]></description>
			<content:encoded><![CDATA[<p>上公司内网需要安全证书．在家，在公司重装系统，或者要别的浏览器支持都需要重新申请安全证书．<br />
很是纠结．</p>
<p>软件名也取得牛B:JailBreak<br />
下载地址：　<a title="JailBreak下载" href="http://down.imox.me/dd.rar">传送门</a><br />
<strong>注意：部分杀毒软件会报毒，不过请放心使用，绝对无毒。解压前请确保杀毒软件已退出，不然被杀了可就提取不到了哦~</strong></p>
<p>软件大概65K左右，解压缩后有六个文件(另外还有一个无用的README.txt).<br />
不要执行jailbreak.msc而是应该双击没有图标的jailbreak.exe．</p>
<p>展开树形目录，找到证书目录．</p>
<p>右键选择＂所有任务＂－＂导出＂．</p>
<p>进入欢迎界面，点击＂下一步＂．<br />
在弹出的对话框里选择＂是，导出私钥(Y)＂，然后下一步，再出现的对话框不用选择，只管默认，＂下一步＂．<br />
记得输入一个创建的密码，确认后，选择＂保存路径和设定文件名＂后，安全证书就备份OK了．</p>
<p>备份OK之后就是导入了，IE系的浏览器直接双击，然后输入之前输入的密码就OK鸟.<br />
非IE系的浏览器找到＂证书＂选项，直接导入就OK鸟．</p>
<p>备份安全证书主要难在默认无法导出私钥，需要借助第三方软件来进行，一旦能够保存了，其它的操作都是小case啦．</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/get-ca.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux常用快捷键分享</title>
		<link>http://imox.me/linux-key.shtml</link>
		<comments>http://imox.me/linux-key.shtml#comments</comments>
		<pubDate>Thu, 20 Jan 2011 14:10:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[快捷键]]></category>

		<guid isPermaLink="false">http://imox.me/?p=476</guid>
		<description><![CDATA[下面是一些shell的常用快捷键,快捷键玩熟悉了在一定程度上是可以提高工作效率滴… Ctrl + a 切换到命令行开始 Ctrl + e 切换到命令行末尾 Ctrl + l 清除屏幕内容 Ctrl + u 清除光标之前的内容 Ctrl + k 清除光标之后的内容 Ctrl + h 类似于退格键 Ctrl + r 在历史命令中查找 （这个非常好用，输入关键字就调出以前的命令了） Ctrl + c 终止命令 Ctrl + d 退出shell Ctrl + z 转入后台运行.. alt键比较少用,因为很多地方与远程登陆工具是有冲突的.. Alt + f 切换光标前的字母 Alt + b 切换光标后的字母]]></description>
			<content:encoded><![CDATA[<p>下面是一些shell的常用快捷键,快捷键玩熟悉了在一定程度上是可以提高工作效率滴…<br />
Ctrl + a 切换到命令行开始<br />
Ctrl + e 切换到命令行末尾<br />
Ctrl + l 清除屏幕内容<br />
Ctrl + u 清除光标之前的内容<br />
Ctrl + k 清除光标之后的内容<br />
Ctrl + h 类似于退格键<br />
Ctrl + r 在历史命令中查找 （这个非常好用，输入关键字就调出以前的命令了）<br />
Ctrl + c 终止命令<br />
Ctrl + d 退出shell<br />
Ctrl + z 转入后台运行..<br />
alt键比较少用,因为很多地方与远程登陆工具是有冲突的..<br />
Alt + f 切换光标前的字母<br />
Alt + b 切换光标后的字母</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/linux-key.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache开启gzip压缩模块</title>
		<link>http://imox.me/apache-open-gzip.shtml</link>
		<comments>http://imox.me/apache-open-gzip.shtml#comments</comments>
		<pubDate>Tue, 18 Jan 2011 20:26:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[gzip]]></category>

		<guid isPermaLink="false">http://imox.me/?p=493</guid>
		<description><![CDATA[         Apache开启gzip压缩功能需要用到模块mod_deflate.so，你可以到%Apache安装路径%/modules文件夹下找到mod_deflate.so这样一个文件。在 %Apache安装路径%/conf 下的httpd.conf文件里面是没有加载这一模块的，所以你必须手动进行配置，在httpd.conf文件里面添加上以下内容： #加载mod_deflate.so模块 LoadModule deflate_module modules/mod_deflate.so #对text/html text/php text/png text/jpg text/plain text/css text/xml text/javascript #启用GZIP压缩 AddOutputFilterByType DEFLATE text/html text/php text/png text/jpg text/plain text/css text/xml text/javascript #压缩级别 9 性能最佳 DeflateCompressionLevel 9 #启用deflate模块对本站点的所有输出进行GZIP压缩 SetOutputFilter DEFLATE 最后重启Apache就可以了。。。 下面摘抄一下网上介绍的在linux下开启gzip压缩功能的文章内容： 而如果是 Linux/Unix 操作系统，如果你没有在编译安装的过程中将所需要的两个模块 mod_deflate 和 mod_headers 编译进去的话，那就稍微有点麻烦，首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块，请在执行 configure 程序时增加两个参数分别是： # ./configure –enable-deflate –enable-headers 这样在编译完 Apache 后就可以直接在 [...]]]></description>
			<content:encoded><![CDATA[<p>         Apache开启gzip压缩功能需要用到模块mod_deflate.so，你可以到%Apache安装路径%/modules文件夹下找到mod_deflate.so这样一个文件。在 %Apache安装路径%/conf 下的httpd.conf文件里面是没有加载这一模块的，所以你必须手动进行配置，在httpd.conf文件里面添加上以下内容：<br />
#加载mod_deflate.so模块<br />
LoadModule deflate_module modules/mod_deflate.so<br />
#对text/html text/php text/png text/jpg text/plain text/css text/xml text/javascript<br />
#启用GZIP压缩<br />
AddOutputFilterByType DEFLATE text/html text/php text/png text/jpg text/plain text/css text/xml text/javascript<br />
#压缩级别 9 性能最佳<br />
DeflateCompressionLevel 9<br />
#启用deflate模块对本站点的所有输出进行GZIP压缩<br />
SetOutputFilter DEFLATE</p>
<p>最后重启Apache就可以了。。。</p>
<p><strong>下面摘抄一下网上介绍的在linux下开启gzip压缩功能的文章内容：</strong><br />
而如果是 Linux/Unix 操作系统，如果你没有在编译安装的过程中将所需要的两个模块 mod_deflate 和 mod_headers 编译进去的话，那就稍微有点麻烦，首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块，请在执行 configure 程序时增加两个参数分别是：</p>
<p># ./configure –enable-deflate –enable-headers<br />
这样在编译完 Apache 后就可以直接在 httpd.conf 中启用并配置 deflate 模块了，配置的方法跟 Windows 平台下是相同的。<br />
如果说您的 Apache 已经在运行了，不想再重新编译一次，那也可以选择只编译 deflate 模块所需的文件 mod_deflate.c 和 mod_headers.c。这两个文件位于 {apache-src}/modules/filters/ 目录下（其中 {apache-src} 为 apache 源文件所在的目录）。使用如下命令来单独编译这两个源文件。</p>
<p># {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c<br />
# {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c<br />
When install the header module the src directory is {apache-src}/modules/metadata/mod_headers.c<br />
So we need change the command as follows:{apache-bin}/apxs -i -a -c {apache-src}/modules/metadata/mod_headers.c</p>
<p>其中 {apache-bin} 为 Apache 安装目录下的 bin 目录，接下来在 httpd.conf 直接配置该模块即可。<br />
很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误，提示是：<br />
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate<br />
解决的方法如下：<br />
编辑 /usr/local/apache2/bin/apr-config 文件修改其中的 LDFLAGS 值为 “-lz”，然后再重新编译 mod_deflate 模块，apxs -ica mod_deflate.c 即可。<br />
为了省却不必要的麻烦，请尽量在编译安装时直接加上 –enable-deflate –enable-headers 参数。</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/apache-open-gzip.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手动删除cache指定链接脚本</title>
		<link>http://imox.me/clean-squid-chache.shtml</link>
		<comments>http://imox.me/clean-squid-chache.shtml#comments</comments>
		<pubDate>Sat, 15 Jan 2011 10:54:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[删除指定链接]]></category>

		<guid isPermaLink="false">http://imox.me/?p=483</guid>
		<description><![CDATA[   此脚本可删除指定链接的缓存，用于删H图 #!/bin/sh squidcache_path="/usr/local/squid/var/cache" squidclient_path="/usr/local/squid/bin/squidclient" grep -a -r $1 $squidcache_path/* &#124; strings &#124; grep "http:" &#124; awk -F'http:' '{print "http:"$2;}' &#62;cache_list.txt for url in `cat cache_list.txt`; do $squidclient_path -m PURGE -p 80 $url done]]></description>
			<content:encoded><![CDATA[<p><code>   此脚本可删除指定链接的缓存，用于删H图<br />
#!/bin/sh<br />
squidcache_path="/usr/local/squid/var/cache"<br />
squidclient_path="/usr/local/squid/bin/squidclient"<br />
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' &gt;cache_list.txt<br />
for url in `cat cache_list.txt`; do<br />
$squidclient_path -m PURGE -p 80 $url<br />
done<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/clean-squid-chache.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unset : command not found诡异问题解决</title>
		<link>http://imox.me/unset-command-not-found.shtml</link>
		<comments>http://imox.me/unset-command-not-found.shtml#comments</comments>
		<pubDate>Mon, 20 Dec 2010 21:46:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[知识收藏]]></category>

		<guid isPermaLink="false">http://imox.me/?p=495</guid>
		<description><![CDATA[每次登录SSH终端，就会冒出一句Unset : command not found。 解决办法： 检查 /etc/profile 和 ~/.bash_profile，原来在/etc/profile末尾多了一句“unset MAILCHECK”，删除这句即可]]></description>
			<content:encoded><![CDATA[<p>每次登录SSH终端，就会冒出一句Unset : command not found。<br />
解决办法：<br />
检查 /etc/profile 和 ~/.bash_profile，原来在/etc/profile末尾多了一句“unset MAILCHECK”，删除这句即可</p>
]]></content:encoded>
			<wfw:commentRss>http://imox.me/unset-command-not-found.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

