Cherokee设置WordPress伪静态规则

Cherokke设置wordpress的伪静态需要在后台操作。我们假设你已经添加好wordpress的虚拟主机devops.webres.wang,下面我们介绍如何配置wordpress伪静态。
1、选择创建好的虚拟主机,切换到“行为”,点击“规则管理”,把所有已存在的规则删除,除了默认的。
2、选择默认规则,切换到“处理程序”,处理程序下拉框选择“转发”,点击“Add New RegEx”增加转发规则,在转发规则对话框中,显示选择“内部”,正则表达式输入^(.+)$,替换输入index.php。
3、增加目录规则,网页目录输入“/wp-admin”,切换到处理程序,处理程序选择“列表和发现”。
4、克隆两次第三步的规则,分别把网页目录更改为/wp-content和/wp-includes。
5、最后添加php扩展支持。如不明白如何操作,请参考http://devops.webres.wang/2011/11/cherokee-vhost-configure/
配置的最终结果如图:
Cherokee
6、最后点save-》重载

Cherokee配置虚拟主机支持PHP

上次我们学习了cherokee php mysql的安装,但安装完全可以正常打开静态文件,但无法访问php文件,因为这需要配置cherokee支持PHP。下面学习cherokee虚拟主机配置。

1、登录cherokee后台

执行cherokee-admin -b命令获取后台密码,执行命令之后请不要中断或关闭当前ssh,否则无法登录后台。如图:
Cherokee

2、更换后台语言为简体中文

在后台的首页右侧,Language的下拉菜单选择chinese simplfied,如图:
Cherokee

3、添加数据源

1、切换Sources,点击左侧的“+”添加数据库:
Cherokee
2、在添加数据源对话框输入昵称php-fpm(可以输入任何),连接:/tmp/php-cgi.sock。
Cherokee
3、配置数据源。在类型选择“本地解析器”,解释器输入

  1. /usr/local/php/sbin/php-fpm –fpm-config /usr/local/php/etc/php-fpm.conf

之后点击右上角的save保存数据,接着点击“重载”。
Cherokee

4、添加配置虚拟主机

1、切换“vServers”,点击左侧“+”新建虚拟主机。在手动配置中的昵称输入域名(如:devops.webres.wang),输入网站根目录(如/home/www/devops.webres.wang,必须是已存在的目录),点击“增加”新建虚拟主机。
Cherokee
2、在目录列表中输入“index.html,index.php”定义默认首页
Cherokee
3、切换到“行为”,点击规则管理,删除已存在的两个规则。并点击“+”增加新规则。
Cherokee
4、配置规则。在增加规则对话框,选择规则类型为“扩展”,在扩展中输入“php”,并勾选“check”,点击“增加”添加规则。
Cherokee
5、切换到处理程序,在处理程序下拉框中选择“快速CGI”,在下面的负载均衡中选择“Round Robin”,设置数据源中应用程序选择刚才设置的数据源昵称”php-fpm”,点击save保存。
Cherokee
6、验证是否配置成功。在/home/www/devops.webres.wang目录下新建文件p.php,输入

  1. <?php
  2. phpinfo();
  3. ?>

如果能正常显示php配置信息,则表示已经配置成功,如图:
Cherokee

CentOS安装Cherokee php mysql

Cherokee 号称是目前最快的 Web 服务器软件,Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。Cherokee 内含一个名为 cherokee-admin 的工具,执行后,允许管理员直接通过浏览器进入 http://localhost:9090/ 对其进行管理和配置。比如,开启或关闭服务器,进行一般选项的设定,配置虚拟服务器、信息源、图标、Mime 类型等项目。下面以centos 5.5 32位系统为例介绍如何安装cherokee php mysql。

安装mysql

安装必要软件包

  1. yum -y install make gcc gcc-c++ ncurses-devel

下面的rpm只适用于CentOS-5 32位,其它的到http://mirrors.sohu.com/fedora-epel/这里查找。

  1. rpm -Uvh http://mirrors.sohu.com/fedora-epel/5/i386/epel-release-5-4.noarch.rpm

下载软件

  1. cd /tmp
  2. wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.17.tar.gz/from/http://mysql.he.net/
  3. wget -c http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz
  4. wget -c http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

安装cmake和bison

  1. cd /tmp
  2. tar zxvf cmake-2.8.6.tar.gz
  3. cd cmake-2.8.6
  4. ./bootstrap
  5. make && make install
  6. cd /tmp
  7. tar zxvf bison-2.5.tar.gz
  8. cd bison-2.5
  9. ./configure
  10. make && make install

开始安装mysql

  1. /usr/sbin/groupadd mysql
  2. /usr/sbin/useradd -g mysql mysql
  3. cd /tmp
  4. tar xvf mysql-5.5.17.tar.gz
  5. cd mysql-5.5.17/
  6. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
  7. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
  8. -DDEFAULT_CHARSET=utf8
  9. -DDEFAULT_COLLATION=utf8_general_ci
  10. -DWITH_EXTRA_CHARSETS=all
  11. -DWITH_MYISAM_STORAGE_ENGINE=1
  12. -DWITH_INNOBASE_STORAGE_ENGINE=1
  13. -DWITH_MEMORY_STORAGE_ENGINE=1
  14. -DWITH_READLINE=1
  15. -DENABLED_LOCAL_INFILE=1
  16. -DMYSQL_DATADIR=/var/mysql/data
  17. -DMYSQL_USER=mysql
  18.  
  19. make && make install

一些相关设置

  1. chmod +w /usr/local/mysql
  2. chown -R mysql:mysql /usr/local/mysql
  3. ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
  4. mkdir -p /var/mysql/
  5. mkdir -p /var/mysql/data/
  6. mkdir -p /var/mysql/log/
  7. chown -R mysql:mysql /var/mysql/
  8. cd support-files/
  9. cp my-medium.cnf /var/mysql/my.cnf
  10. cp mysql.server /etc/rc.d/init.d/mysqld
  11.  
  12. /usr/local/mysql/scripts/mysql_install_db
  13. –defaults-file=/var/mysql/my.cnf
  14. –basedir=/usr/local/mysql
  15. –datadir=/var/mysql/data
  16. –user=mysql
  17.  
  18. chmod +x /etc/init.d/mysqld

vi /etc/init.d/mysqld(编辑此文件,查找并修改以下变量内容:)

  1. basedir=/usr/local/mysql
  2. datadir=/var/mysql/data
  1. chkconfig –add mysqld
  2. chkconfig –level 345 mysqld on
  3. service mysqld start
  4. /usr/local/mysql/bin/mysqladmin password [new-password]

安装PHP

安装必要软件包

  1. yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel autoconf pcre-devel libtool-libs freetype-devel gd libmcrypt-devel zlib-devel zip unzip gettext

开始安装php

  1. cd /tmp
  2. groupadd www
  3. useradd -s /sbin/nologin -g www www
  4. wget -c http://cn2.php.net/get/php-5.3.8.tar.gz/from/this/mirror
  5. tar xzvf php-5.3.8.tar.gz
  6. cd php-5.3.8
  7. ./configure –prefix=/usr/local/php –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d  –with-libxml-dir –with-openssl –with-zlib –with-curl –enable-ftp –with-gd –with-jpeg-dir –with-png-dir –with-zlib-dir  –with-freetype-dir –enable-gd-native-ttf –with-gettext –enable-mbstring –with-mcrypt  –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –without-pear
  8. make && make install
  9. cp php.ini-production /etc/php.ini
  10. cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  11. cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf

编辑php-fpm.conf,找到如下字段,删除前面的”;”号

  1. pid = run/php-fpm.pid
  2. pm.start_servers = 20
  3. pm.min_spare_servers = 5
  4. pm.max_spare_servers = 35

找到:

  1. listen = 127.0.0.1:9000

改为:

  1. listen = /tmp/php-cgi.sock
  1. chmod 755 /etc/init.d/php-fpm
  2. chkconfig –add php-fpm
  3. chkconfig –level 345 php-fpm on
  4. /etc/init.d/php-fpm start

安装cherokee

  1. yum -y install rrdtool
  2. groupadd www
  3. useradd -s /sbin/nologin -g www www
  4. wget http://www.cherokee-project.com/cherokee-latest-tarball -O -| tar zxvf –
  5. cd cherokee-1.2.101
  6. ./configure –prefix=/usr/local/cherokee –with-wwwroot=/home/www –with-wwwuser=www –with-wwwgroup=www
  7. make && make install
  8. wget http://devops.webres.wang/wp-content/uploads/2011/11/cherokee -O /etc/init.d/cherokee
  9. chmod +x /etc/init.d/cherokee
  10. chkconfig –add cherokee
  11. chkconfig –level 345 cherokee on
  12. ln -s /usr/local/cherokee/sbin/cherokee-admin /usr/sbin/
  13. service cherokee start

现在你已经可以访问默认的chreokee页面,执行cherokee-admin -b命令得到后台密码,并通过localhost:9090进入后台。关于配置cherokee支持PHP请看http://devops.webres.wang/2011/11/cherokee-vhost-configure/

nginx alias的设置

nginx也有像apache的别名功能,格式为:

  1. location ~ /alias {
  2.     root           /home/www/default;
  3.     index          index.php;
  4. }

但nginx在处理php脚本时,需要传递给fastcgi才能处理,所以比apache的别名设置多一个,下面我们以phpmyadmin别名设置为例:

  1. location ~ ^/phpmyadmin.+.php$ {
  2.     root          /home/www/default;
  3.     fastcgi_pass   127.0.0.1:9000;
  4.     fastcgi_index  index.php;
  5.     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  6.     include        fastcgi_params;
  7. }
  8. location ~ /phpmyadmin {
  9.     root           /home/www/default;
  10.     index          index.php;
  11. }

安装mod_rpaf让apache获取访客真实IP

mod_rpaf是apache的一个模块,目的是为了获取访客的真实IP,下面是安装方法:

  1. wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
  2. tar xvfz mod_rpaf-0.6.tar.gz
  3. cd mod_rpaf-0.6
  4. /usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

安装好了之后,需要对httpd.conf文件进行配置。
1、在httpd.conf加入如下代码:

  1. <IfModule mod_rpaf.c>
  2. RPAFenable On
  3. RPAFsethostname On
  4. RPAFproxy_ips 127.0.0.1
  5. RPAFheader X-Forwarded-For
  6. </IfModule>

加载模块代码:

  1. LoadModule rpaf_module   modules/mod_rpaf-2.0.so

2、并定义日志格式

  1. LogFormat "%{X-Forwarded-For}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" varnishcombined

3、以后可以使用如下代码启用此格式的日志:

  1. CustomLog "/home/wwwlogs/$domain.log" varnishcombined

CentOS安装Apache2带SSL支持(mod_ssl, openssl)

下面是介绍源码安装Apache并配置ssl支持的教程。

安装所需软件包

  1. yum -y install gcc openssl openssl-devel

下载Apache源码

到http://httpd.apache.org/下载最新稳定版的源码,现在最新稳定版是2.2.21。

  1. cd ~
  2. wget http://apache.deathculture.net//httpd/httpd-2.2.21.tar.gz
  3. tar xvfz httpd-2.2.21.tar.gz

安装Apache支持SSL/TLS

  1. cd httpd-2.2.21
  2. ./configure –enable-ssl –enable-so
  3. make
  4. make install

提示:默认安装路径为 /usr/local/apache2,如果你想改变路径,在./configure命令中使用–prefix自定义。

配置httpd.conf运行ssl

  1. vi /usr/local/apache2/conf/httpd.conf

然后取消Include conf/extra/httpd-ssl.conf的注释。
ssl配置文件在/usr/local/apache2/conf/extra/httpd-ssl.conf,默认就行,不需要更改。
httpd-ssl.conf配置文件显示,需要server.crt和server.key两个文件,下面来介绍如何生成。

创建server.crt和server.key

首先,使用openssl生成server.key。

  1. cd ~
  2. openssl genrsa -des3 -out server.key 1024

执行以上的命令会要求输入密码,请记住这个密码,后面的设置需要到。
下一步是使用上面生成的server.key文件创建server.csr证书文件。

  1. openssl req -new -key server.key -out server.csr

最后,根据上面的server.key和server.csr两个文件生成私人签名的server.crt证书。

  1. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

复制server.key和server.crt文件

  1. cd ~
  2. cp server.key /usr/local/apache2/conf/
  3. cp server.crt /usr/local/apache2/conf/

启动apache并验证ssl

  1. /usr/local/apache2/bin/apachectl start

接着会要求输入上面设置的私人密钥的密码。

  1. Apache/2.2.21 mod_ssl/2.2.21 (Pass Phrase Dialog)
  2. Some of your private key files are encrypted for security reasons.
  3. In order to read them you have to provide the pass phrases.
  4.  
  5. Server www.example.com:443 (RSA)
  6. Enter pass phrase:
  7.  
  8. OK: Pass Phrase Dialog successful.

之后,你就可以通过https://ip访问你的网站。

CentOS-5安装配置PowerDNS服务器

PowerDNS简介

PowerDNS是高性能的域名服务器,除了支持普通的BIND配置文件,PowerDNS还可以从MySQL,Oracle,PostgreSQL等的数据库读取数据。PowerDNS安装了Poweradmin,能实现Web管理DNS记录,非常的方便。本文我们以MySQL为后端数据库和Poweradmin网页管理DNS,在CentOS-5安装PowerDNS。

安装MySQL

  1. yum -y install mysql mysql-server

设置mysql开机自启并启动mysql

  1. chkconfig –levels 235 mysqld on
  2. /etc/init.d/mysqld start

修改mysql root密码:

  1. mysqladmin -u root password yourrootsqlpassword

安装PowerDNS

  1. yum -y install pdns pdns-backend-mysql

连接mysql:

  1. mysql -u root -p

创建powerdns数据库:

  1. CREATE DATABASE powerdns;

为PowerDNS创建powerdns数据库用户:

  1. GRANT ALL ON powerdns.* TO ‘power_admin’@’localhost’ IDENTIFIED BY ‘power_admin_password’;
  2. FLUSH PRIVILEGES;

请替换power_admin_password成自己的密码。
现在创建数据表:

  1. USE powerdns;
  1. CREATE TABLE domains (
  2. id INT auto_increment,
  3. name VARCHAR(255) NOT NULL,
  4. master VARCHAR(128) DEFAULT NULL,
  5. last_check INT DEFAULT NULL,
  6. type VARCHAR(6) NOT NULL,
  7. notified_serial INT DEFAULT NULL,
  8. account VARCHAR(40) DEFAULT NULL,
  9. primary key (id)
  10. );
  1. CREATE UNIQUE INDEX name_index ON domains(name);
  1. CREATE TABLE records (
  2. id INT auto_increment,
  3. domain_id INT DEFAULT NULL,
  4. name VARCHAR(255) DEFAULT NULL,
  5. type VARCHAR(6) DEFAULT NULL,
  6. content VARCHAR(255) DEFAULT NULL,
  7. ttl INT DEFAULT NULL,
  8. prio INT DEFAULT NULL,
  9. change_date INT DEFAULT NULL,
  10. primary key(id)
  11. );
  1. CREATE INDEX rec_name_index ON records(name);
  2. CREATE INDEX nametype_index ON records(name,type);
  3. CREATE INDEX domain_id ON records(domain_id);
  1. CREATE TABLE supermasters (
  2. ip VARCHAR(25) NOT NULL,
  3. nameserver VARCHAR(255) NOT NULL,
  4. account VARCHAR(40) DEFAULT NULL
  5. );

最后退出mysql shell:

  1. quit;

现在配置PowerDNS以使用mysql后端:

  1. vi /etc/pdns/pdns.conf

增加如下内容到pdns.conf

  1. […]
  2. #################################
  3. # launch        Which backends to launch and order to query them in
  4. #
  5. # launch=
  6. launch=gmysql
  7. gmysql-host=127.0.0.1
  8. gmysql-user=power_admin
  9. gmysql-password=power_admin_password
  10. gmysql-dbname=powerdns
  11. […]

设置PowerDNS自启动并立即启动PowerDNS。

  1. chkconfig –levels 235 pdns on
  2. /etc/init.d/pdns start

现在PowerDNS已经正常运行,下面我们为PowerDNS安装Poweradmin实现Web管理。

安装Poweradmin

Poweradmin运行在PHP环境中,我们现在配置Web环境。

  1. yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

设置apache自启动,并启动apache。

  1. chkconfig –levels 235 httpd on
  2. /etc/init.d/httpd start

Poweradmin还需要安装两个PEAR软件包。

  1. yum install php-pear-DB php-pear-MDB2-Driver-mysql

现在Poweradmin所需的环境已经配置完成,我们将把Poweradmin安装在目录/var/www/html,这是apache默认的文档根目录。
到https://www.poweradmin.org/trac/wiki/GettingPoweradmin找到最新的版本下载:

  1. cd /tmp
  2. wget https://www.poweradmin.org/download/poweradmin-2.1.5.tgz

然后安装在/var/www/html/poweradmin目录。

  1. tar xvfz poweradmin-2.1.5.tgz
  2. mv poweradmin-2.1.5 /var/www/html/poweradmin
  3. touch /var/www/html/poweradmin/inc/config.inc.php
  4. chown -R apache:apache /var/www/html/poweradmin/

现在打开浏览器运行安装程序(如:http://devops.webres.wang/poweradmin/install或http://192.168.0.100/poweradmin/install)。
1、选择语言为英文,并点击Go to step 2
PowerDNS
2、点击“Go to step 3”到安装的第三步,填入数据库详细信息。输入root用户和密码,和输入Poweradmin的admin用户的密码。
PowerDNS
3、点击下一步,填入在安装powerdns那一步所创建的power_admin mysql用户的信息,并且填入域名服务器地址:
PowerDNS
4、下一步是需要执行mysql语句,我们不需要执行了,因为前面我们已经执行过了,直接点击下一步即可。
PowerDNS
5、继续点击下一步。
PowerDNS
6、现在poweradmin安装完成。
PowerDNS
7、为了安全,需要删除安装目录。

  1. rm -fr /var/www/html/poweradmin/install/

现在你可以进入http://devops.webres.wang/poweradmin或者http://192.168.0.100/poweradmin页面,输入用户admin和执行安装程序时设置的密码进入管理界面。

Linux环境用Sendmail架设Mail服务器

人们在互联网上最常使用的就是电子邮件了,很多企业用户也经常使用免费的电子邮件系统。今天我就给大家介绍一种在Red Hat Linux 9.0环境下运行的邮件服务器软件Sendmail.Sendmail作为一种免费的邮件服务器软件,已被广泛的应用于各种服务器中,它在稳定性、可移植性、及确保没有bug等方面具有一定的特色,且可以在网络中搜索到大量的使用资料。
  

一、安装Sendmail

  完全安装Red Hat Linux 9.0时,Sendmail就会自动内置,版本号为8.12.8-4.如果你不确定Linux是否已经安装有sendmail,可以输入以下命令查看:
 

  1.  [root@ahpeng root] rpm –qa grep sendmail

  如果确定没有安装,请在图形界面下依次选择单击“主菜单-系统设置-添加删除应用程序”,然后在打开的“软件包管理”窗口里选中“邮件服务器”选项,点“更新”后按照提示安装即可。
  另一种办法是:直接插入Linux第1张安装光盘,选择/RedHat/RPMS目录下的sendmail-8.12.8-4.i386.rpm安装包,之后运行[root@ahpeng RPMS] # rpm -ivh sendmail-8.12.8-4.i386.rpm即可开始安装,再用此方法在第3张安装光盘的同目录下依次安装sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm.
  

二、启动Sendmail服务系统

  笔者建议使用带参数的Sendmail命令控制邮件服务器的运行:
  

  1. [root@ahpeng root]# sendmail -bd –q12h

  -b:设定Sendmail服务运行于后台。
  -d:指定Sendmail以Daemon(守护进程)方式运行。
  -q:设定当Sendmail无法成功发送邮件时,就将邮件保存在队列里,并指定保存时间。上面的12h表示保留12小时。
  此外,要检测Sendmail服务器是否正常运行,可以使用命令行:

  1. [root@ahpeng root]#  /etc/rc.d/init.d/sendmail status

  

三、配置Sendmail

  sendmail.cf的配置语法比较难懂,一般资料上都是采用m4宏处理程序来生成所需的sendmail.cf文件(使用m4编译工具一般不容易出错,还可避免某些带有安全漏洞的宏对服务器造成的破坏)。其配置文件位于/etc/mail/sendmail.cf,在创建的过程中还需要一个模板文件,Linux自带有一个模板文件,位于/etc/mail/sendmail.mc.故可以直接通过修改sendmail.mc模板来达到定制sendmail.cf文件的目的,而不必去死啃哪些难理解的配置命令。配置步骤为:
  第一步:用模板文件sendmail.mc生成sendmail.cf配置文件,并导出到/etc/mail/目录下,使用命令行:m4

  1. /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

  第二步:再用

  1. [root@ahpeng root] /etc/rc.d/init.d/sendmail restart

命令行重启sendmail.
  至此,邮件服务系统配置完成,已经正常工作。接下来就是创建具体的帐户了。

四、建立电子邮件新帐号

  此步骤相对简单,只需在Linux里新增一个用户即可。依次进入“主菜单-系统设置-用户和组群”选项,接着打开“Red Hat用户管理器”对话框,点“添加用户”按钮,在接着出现的“创建新用户”窗口中输入用户名及密码即可。
  创建mail使用帐号,命令行方式为:

  1. [root@ahpeng root]#adduser mailA -p Pass

表示创建了一个mailA的帐号,密码为Pass.
  

五、限制单个用户邮箱容量

  如果对用户的邮件容量不加限制,服务器的硬盘是不堪重负的。这可以使用“邮件限额”功能来实现:因为电子邮件的暂存空间是位于/var/spool/mail目录下的,所以只需通过磁盘配额设定每一个邮件帐户在此目录下能使用的最大空间即可。
  

六、单一用户设定多个邮件地址

  使用别名(alias)可以解决这个问题。别名是sendmail最重要的功能之一。它在aliases这个文本文件中定义,aliases文件的位置由sendmail.cf指定,一般位于/etc目录下。比如前面我们建立的mailA用户要拥有2个邮件地址:[email protected][email protected],可以这样设置:
  首先,新增一个账号mailC,然后用Linux的文本编辑器打开/etc/aliases,在里面加上dearpeter: mailC和truepeter: mailC这两个命令行;然后在命令窗口运行newaliases命令,以要求Sendmail重新读取/etc/aliases文件。如果正确无误,会出现一段回应消息,表示配置成功。这样就可以使用2个地址给mailC发信,而mailC则只需用其中一个账号就可接收寄给以上2个地址的所有邮件。
  经过以上步骤后,应该就可以用Outlook Express正常发送邮件了,但这时还不能用Outlook Express从服务器端收取邮件的,因为sendmail默认状态并不具备POP3功能,我们还得自己安装并启用它。
  1.POP3(IMAP)服务器安装。
  第一步:用以下命令行检查系统是否安装:
  

  1. [root@ahpeng root]# rpm -qa imap

  imap-2001a-18
  第二步:插入第2张安装光盘,使用下面的命令行开始安装:

  1.   [root@ahpeng root]#cd /mnt/cdrom/RedHat/RPMS
  2.   [root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm

  2.启用POP3(IMAP)服务。
  POP3服务:请先修改/etc/xinetd.d/ipop3文件,将其中的disable=yes改为disable=no后保存;然后重新启动xinetd程序来读取这个修改过的配置文件,使之生效。
 

  1.  [root@ahpeng root]#/etc/rc.d/init.d/xinetd reload

  启动IMAP服务的步骤跟POP3一样,只不过IMAP的配置文件为/etc/xinetd.d/imap.
转自:http://linux.chinaitlab.com/server/731736.html

CentOS-5安装配置ExtMail Web邮件收发系统

本文参考http://wiki.extmail.org/extmail_solution_for_linux_centos-5,内容和病毒过滤不在本文之内,如需配置请参考官方文档。下面是在CentOS-5 32位系统的安装实录。

制作_yum_仓库

编译CentOS-Base.repo文件

  1. vi /etc/yum.repos.d/CentOS-Base.repo

加入如下内容:

  1. # EMOS-Base.repo
  2. #
  3. # Created by ExtMail Dev Team: http://www.extmail.org/
  4. #
  5. # $Id$
  6.  
  7. [EMOS-base]
  8. name=EMOS-Base
  9. baseurl=http://mirror.extmail.org/yum/emos/1.5/os/$basearch/
  10. gpgcheck=0
  11. priority=0
  12. protect=0
  13.  
  14. [EMOS-update]
  15. name=EMOS-Updates
  16. baseurl=http://mirror.extmail.org/yum/emos/1.5/updates/$basearch/
  17. gpgcheck=0
  18. priority=0
  19. protect=0

保存后,然后尝试执行一下yum list 等操作,看看是否已经成功;

配置mta-postfix

1、安装postfix

  1. # yum -y install postfix
  2. # yum remove sendmail

2、配置postfix

  1. # postconf -n > /etc/postfix/main2.cf
  2. # mv /etc/postfix/main.cf /etc/postfix/main.cf.old
  3. # mv /etc/postfix/main2.cf /etc/postfix/main.cf

编辑main.cf:

  1. # vi /etc/postfix/main.cf

增加如下内容:

  1. # hostname
  2. mynetworks = 127.0.0.1
  3. myhostname = mail.webres.wang
  4. mydestination = $mynetworks $myhostname
  5.  
  6. # banner
  7. mail_name = Postfix – by extmail.org
  8. smtpd_banner = $myhostname ESMTP $mail_name
  9.  
  10. # response immediately
  11. smtpd_error_sleep_time = 0s
  12.  
  13. # Message and return coolcode control
  14. message_size_limit = 5242880
  15. mailbox_size_limit = 5242880
  16. show_user_unknown_table_name = no
  17.  
  18. # Queue lifetime control
  19. bounce_queue_lifetime = 1d
  20. maximal_queue_lifetime = 1d

注:myhostname改为自己的。
设置postfix开机自启:

  1. # chkconfig postfix on

配置courier-authlib

1、安装Courier-Authlib

安装以下软件包:

  1. # yum -y install courier-authlib
  2. # yum -y install courier-authlib-mysql

删除并编辑/etc/authlib/authmysqlrc文件:

  1. # cat /dev/null >/etc/authlib/authmysqlrc
  2. # vi /etc/authlib/authmysqlrc

增加如下内容:

  1. MYSQL_SERVER            localhost
  2. MYSQL_USERNAME          extmail
  3. MYSQL_PASSWORD          extmail
  4. MYSQL_SOCKET            /var/lib/mysql/mysql.sock
  5. MYSQL_PORT              3306
  6. MYSQL_OPT               0
  7. MYSQL_DATABASE          extmail
  8. MYSQL_USER_TABLE        mailbox
  9. MYSQL_CRYPT_PWFIELD     password
  10. MYSQL_UID_FIELD         uidnumber
  11. MYSQL_GID_FIELD         gidnumber
  12. MYSQL_LOGIN_FIELD       username
  13. MYSQL_HOME_FIELD        homedir
  14. MYSQL_NAME_FIELD        name
  15. MYSQL_MAILDIR_FIELD     maildir
  16. MYSQL_QUOTA_FIELD       quota
  17. MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,
  18.                         CONCAT(‘/home/domains/’,homedir),               
  19.                         CONCAT(‘/home/domains/’,maildir),               
  20.                         quota,                                         
  21.                         name                                           
  22.                         FROM mailbox                                   
  23.                         WHERE username = ‘$(local_part)@$(domain)’

修改authdaemonrc文件

  1. # vi /etc/authlib/authdaemonrc

修改如下内容:

  1. authmodulelist="authmysql"
  2. authmodulelistorig="authmysql"

或者使用如下命令直接修改:

  1. sed -i ‘s/authmodulelist=.*/authmodulelist="authmysql"/g’ /etc/authlib/authdaemonrc
  2. sed -i ‘s/authmodulelistorig=.*/authmodulelistorig="authmysql"/g’ /etc/authlib/authdaemonrc

2、启动courier-authlib:

  1. # service courier-authlib start

修改authdaemon socket目录权限

  1. # chmod 755 /var/spool/authdaemon/

配置maildrop

1、安装maildrop

  1. # yum -y install maildrop

配置master.cf 为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,并改为:

  1. maildrop   unix        –       n        n        –        –        pipe
  2.   flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}

注意:flags前面有“两个空格”

配置main.cf 由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:

  1. # vi /etc/postfix/main.cf
  1. maildrop_destination_recipient_limit = 1

2、测试maildrop对authlib支持

  1. # maildrop -v

看是否出现以下内容:

  1. maildrop 2.1.0 Copyright 1998-2005 Double Precision, Inc.
  2. GDBM/DB extensions enabled.
  3. Courier Authentication Library extension enabled.
  4. Maildir quota extension enabled.
  5. This program is distributed under the terms of the GNU General Public
  6. License. See COPYING for additional information.

配置apache

1、安装httpd

  1. # yum -y install httpd

2、虚拟主机设置

编辑httpd.conf文件:

  1. # vi /etc/httpd/conf/httpd.conf

在最后一行加上:

  1. NameVirtualHost *:80
  2. Include conf/vhost_*.conf

编辑 vhost_extmail.conf

  1. # vi /etc/httpd/conf/vhost_extmail.conf

里面定义虚拟主机的相关内容:

  1. # VirtualHost for ExtMail Solution
  2. <VirtualHost *:80>
  3. ServerName mail.webres.wang
  4. DocumentRoot /var/www/extsuite/extmail/html/
  5.  
  6. ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/
  7. Alias /extmail /var/www/extsuite/extmail/html/
  8.  
  9. ScriptAlias /extman/cgi/ /var/www/extsuite/extman/cgi/
  10. Alias /extman /var/www/extsuite/extman/html/
  11.  
  12. # Suexec config
  13. SuexecUserGroup vuser vgroup
  14. </VirtualHost>

注意:把ServerName修改成自己的。
设置apache开机启动并重启apache

  1. # chkconfig httpd on
  2. # service httpd restart

配置webmail-extmail

1、安装ExtMail

  1. # yum -y install extsuite-webmail

2、编辑webmail.cf

  1. # cd /var/www/extsuite/extmail
  2. # cp webmail.cf.default webmail.cf
  3. # vi webmail.cf

主要变动的内容见下:

  1. SYS_MYSQL_USER = extmail
  2. SYS_MYSQL_PASS = extmail
  3. SYS_MYSQL_DB = extmail

更新cgi目录权限 由于SuEXEC的需要,必须将extmail的cgi目录修改成vuser:vgroup权限:

  1. # chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/

配置管理后台-extman

1、yum安装ExtMan

  1. # yum -y install extsuite-webman

更新cgi目录权限 由于SuEXEC的需要,必须将extman的cgi目录修改成vuser:vgroup权限:

  1. # chown -R vuser:vgroup /var/www/extsuite/extman/cgi/

链接基本库到Extmail

  1. # mkdir /tmp/extman
  2. # chown -R vuser:vgroup /tmp/extman

注意事项:
由于RedHat发行版中包含了一个叫tmpwatch的工具,该工具会定期扫描/tmp/下的文件,如果这些文件很久都没被使用,将被删除,因此如果后台长期不使用,/tmp/extman目录有可能被tmpwatch删除,所以要么定期登陆后台,要么修改 webman.cf将临时目录修改到另一个地方。此处暂以/tmp/extman默认值为例。

2、安装mysql数据库

  1. # yum -y install mysql mysql-server

3、数据库初始化

启动Mysql

  1. # service mysqld start
  2. # chkconfig mysqld on

导入mysql数据库结构及初始化数据,root密码默认为空

  1. # mysql -u root -p < /var/www/extsuite/extman/docs/extmail.sql
  2. # mysql -u root -p < /var/www/extsuite/extman/docs/init.sql

注意事项:
上述导入初始化SQL时,默认的uidnumber/gidnumber都是1000,这和vuser:vgroup 的uid/gid一致,是因为maildrop投递时会从数据库里取uidnumber/gidnumber,而在master.cf里已经定义好了投递时的运行身份(vuser:vgroup),所以这两个字段的内容必须为1000,否则将出现投递错误,例如报0×06等错误。

4、设置虚拟域和虚拟用户的配置文件

  1. # cd /var/www/extsuite/extman/docs
  2. # cp mysql_virtual_alias_maps.cf /etc/postfix/
  3. # cp mysql_virtual_domains_maps.cf /etc/postfix/
  4. # cp mysql_virtual_mailbox_maps.cf /etc/postfix/
  5. # cp mysql_virtual_sender_maps.cf /etc/postfix/

配置main.cf:

  1. # vi /etc/postfix/main.cf

增加以下内容:

  1. # extmail config here
  2. virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
  3. virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
  4. virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
  5. virtual_transport = maildrop:

重启postfix :

  1. # service postfix restart

5、测试authlib

  1. # /usr/sbin/authtest -s login [email protected] extmail

结果如下:
Authentication succeeded.

Authenticated: [email protected] (uid 1000, gid 1000)
Home Directory: /home/domains/extmail.org/postmaster
Maildir: /home/domains/extmail.org/postmaster/Maildir/
Quota: 104857600S
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
Cleartext Password: extmail
Options: (none)

这样表明ExtMan的正确安装,数据库也正确导入,courier-authlib能正确连接到mysql数据库

最后访问http://mail.webres.wang/extmail/,如无意外,将看到webmail的登陆页,不过此时还没有加正式的用户,所以不能登陆,包括[email protected]也不行。必须要登陆到http://mail.webres.wang/extman/ 里增加一个新帐户才能登陆。

ExtMan的默认超级管理员帐户:[email protected],初始密码:extmail*123*,登陆成功后,建议将密码修改,以确保安全。

6、配置图形化日志

启动mailgraph_ext

  1. # /usr/local/mailgraph_ext/mailgraph-init start

启动cmdserver(在后台显示系统信息)

  1. # /var/www/extsuite/extman/daemon/cmdserver –daemon

加入开机自启动:

  1. # echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.d/rc.local
  2. # echo "/var/www/extsuite/extman/daemon/cmdserver -v -d" >> /etc/rc.d/rc.local

使用方法: 等待大约15分钟左右,如果邮件系统有一定的流量,即可登陆到extman里,点“图形日志”即可看到图形化的日志。具体每天,周,月,年的则点击相应的图片进入即可。

配置cyrus-sasl

1、安装cyrus-sasl

删除系统的cyrus-sasl:

  1. # rpm -e cyrus-sasl –nodeps

安装新的支持authdaemon的软件包

  1. # yum -y install cyrus-sasl cyrus-sasl-plain

2、配置main.cf文件

Postfix的SMTP认证需要透过Cyrus-SASL,连接到authdaemon获取认证信息。
编辑main.cf

  1. # vi /etc/postfix/main.cf

增加如下内容:

  1. # smtpd related config
  2. smtpd_recipient_restrictions =
  3.         permit_mynetworks,
  4.         permit_sasl_authenticated,
  5.         reject_non_fqdn_hostname,
  6.         reject_non_fqdn_sender,
  7.         reject_non_fqdn_recipient,
  8.         reject_unauth_destination,
  9.         reject_unauth_pipelining,
  10.         reject_invalid_hostname,
  11.  
  12. # SMTP sender login matching config
  13. smtpd_sender_restrictions =
  14.         permit_mynetworks,
  15.         reject_sender_login_mismatch,
  16.         reject_authenticated_sender_login_mismatch,
  17.         reject_unauthenticated_sender_login_mismatch
  18.  
  19. smtpd_sender_login_maps =
  20.         mysql:/etc/postfix/mysql_virtual_sender_maps.cf,
  21.         mysql:/etc/postfix/mysql_virtual_alias_maps.cf
  22.  
  23. # SMTP AUTH config here
  24. broken_sasl_auth_clients = yes
  25. smtpd_sasl_auth_enable = yes
  26. smtpd_sasl_local_domain = $myhostname
  27. smtpd_sasl_security_options = noanonymous

3、编辑smtpd.conf文件

  1. # vi /usr/lib/sasl2/smtpd.conf

确保其内容为:

  1. pwcheck_method: authdaemond
  2. log_level: 3
  3. mech_list: PLAIN LOGIN
  4. authdaemond_path:/var/spool/authdaemon/socket

重新启动postfix:

  1. # service postfix restart

4、测试SMTP认证

通过以下命令获得[email protected]的用户名及密码的BASE64编码:

  1. # perl -e ‘use MIME::Base64; print encoolcode_base64("[email protected]")’

内容如下:
cG9zdG1hc3RlckBleHRtYWlsLm9yZw==

  1. # perl -e ‘use MIME::Base64; print encoolcode_base64("extmail")’

内容如下:
ZXh0bWFpbA==
然后本机测试:

  1. # telnet localhost 25

其过程如下:
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
220 mail.extmail.org ESMTP Postfix – by extmail.org
ehlo demo.domain.tld << 输入内容
250-mail.extmail.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUScoolcodeS
250-8BITMIME
250 DSN
auth login << 输入内容
334 VXNlcm5hbWU6
cG9zdG1hc3RlckBleHRtYWlsLm9yZw== << 输入内容
334 UGFzc3dvcmQ6
ZXh0bWFpbA== << 输入内容
235 2.0.0 Authentication successful
quit << 输入内容
221 2.0.0 Bye
最后出现235 Authentication Successful 表明认证成功了。

配置courier-imap

1、安装Courier-imap

默认的courier-authlib及courier-imap都会增加系统自启动设置,因此下一次服务器启动将自动启动相应的authlib及POP3服务

  1. # yum -y install courier-imap

配置courier-imap
由于Courier-imap的IMAP目录是按UTF-7编码的,ExtMail目前还没有正式支持IMAP目录,因此需要屏蔽IMAP,只提供pop3服务。而就目前的使用情况来看,IMAP使用的非常少,绝大部分OutLook/Foxmail用户都习惯使用POP3而非IMAP。

  1. # vi /usr/lib/courier-imap/etc/imapd

修改内容如下:

  1. IMAPDSTART=NO
  1. # vi /usr/lib/courier-imap/etc/imapd-ssl

修改内容如下:

  1. IMAPDSSLSTART=NO

然后重新启动courier-imap:

  1. # service courier-imap start

测试POP3 请按如下步骤输入pop3命令测试其是否正常工作,注意蓝色的信息是我们输入到POP3服务器的(请首先登录extman自行建立[email protected]用户,密码:extmail)

  1. # telnet localhost 110

其过程如下:
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
+OK Hello there.
user [email protected] << 输入内容
+OK Password required.
pass extmail << 输入内容
+OK logged in.
list << 输入内容
+OK POP3 clients that break here, they violate STD53.
.
quit << 输入内容
+OK Bye-bye.
Connection closed by foreign host.

最后说明

至此,ExtMail的安装配置基本完成,如想配置内容,病毒过滤请到官方网站学习配置。登录extmail系统后台后,请及时修改密码或者用户名。最后需要确认的是,是否已经设置好邮件域名的MX记录或者A记录,这样才能正常收取邮件。

FAQ

1、64位系统可能安装不上courier-imap。请参考http://hahayong.blog.51cto.com/231965/530016