Chinaunix首页 | 论坛 | 博客
  • 博客访问: 566019
  • 博文数量: 434
  • 博客积分: 11187
  • 博客等级: 上将
  • 技术积分: 5221
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 01:00
文章分类

全部博文(434)

文章存档

2016年(2)

2013年(1)

2012年(115)

2011年(195)

2010年(32)

2009年(89)

分类: LINUX

2011-06-17 13:26:56

环境搭建
1、LAMP:centos5.5 32位 、 httpd-2.2.19、 mysql-5.1.50-linux-i686-glibc23、 php-5.2.9
2、postfix                  mta 邮件系统核心
3、courier-authlib     一个为courier-imap,maildrop,sasl2 提供用户信息的后台进程序,用户认证工具
4、courier-imap        提供pop3,pop3s,imap,imaps 服务的程序,
5、amavisd-new        提供内容过滤
6、clamav                   著名的杀毒软件
7、extmail                  一个著名的webmail程序
8、extman                  与extmail集成的后台管理程序
9、SpamAssassin       内容级别的反垃圾邮件工具,著名的SA,可以支持大量规则,但速度较慢
10、mailgraph_ext    日志分析及显示,在ExtMan中已经包含了
11、maildrop             邮件投递代理(MDA),支持过滤和强大功能

一、系统准备:
1、系统相关
# ifconfig eth0        //IP地址
IP:192.168.0.68
# cat /proc/version     //系统版本
2.6.18-238.12.1.el5xen
# hostname            //主机名称
mail.test.com
#vi /etc/sysconfig/i18n      修改系统字符集
LANG="en_US"
#LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

2、卸载系统原有组件:
#rpm -qa|egrep '(httpd|mysql|php|sendmail)'
# rpm -e --nodeps sendmail-8.13.8-8.el5
# rpm -qa |grep sasl
cyrus-sasl-plain-2.1.22-5.el5_4.3
cyrus-sasl-devel-2.1.22-5.el5_4.3
cyrus-sasl-2.1.22-5.el5_4.3
cyrus-sasl-md5-2.1.22-5.el5_4.3
cyrus-sasl-lib-2.1.22-5.el5_4.3
# for dd in  `rpm -qa |grep sasl` ;do echo $dd;rpm -e $dd --nodeps;done

3、更新系统软件包:
#yum -y update
更新完毕后,使用新的内核启动系统。

二、增加系统相关的用户和组
 
  1. groupadd -g 1001 vmail
  2. groupadd -g 1002 postfix
  3. groupadd -g 1003 postdrop
  4. groupadd -g 1004 amavis
  5. groupadd -g 1005 clamav
  6. useradd vmail -g vmail -u 1001
  7. useradd postfix -M -s /sbin/nologin -u 1002 -g postfix
  8. useradd postdrop -g postdrop -u 1003
  9. useradd amavis -g amavis -u 1004
  10. useradd clamav -g clamav -u 1005
其中vmail是用来登录Webmail的帐号,而postdrop则是在邮件中起postdrop的作用.

三、安装Mysql
#使用mysql_install.sh脚本安装 mysql-5.1.50-linux-i686-glibc23.tar.gz
#vi mysql_install.sh

  1. #!/bin/bash
  2. #set -x

  3. echo "Define variable"
  4. mysql_tg="mysql-5.1.50-linux-i686-glibc23.tar.gz"

  5. mysql_no_tg="${mysql_tg%.tar.gz}"

  6. echo "Decompress ${mysql_tg}"
  7. tar -zxvf $mysql_tg
  8. wait
  9. mv ${mysql_no_tg} /usr/local
  10. ln -s /usr/local/${mysql_no_tg} /usr/local/mysql
  11. cd /usr/local/mysql

  12. echo "Create mysql user"
  13. groupadd mysql
  14. useradd -g mysql -s /sbin/nologin mysql
  15. chown -R mysql .
  16. chgrp -R mysql .

  17. echo "init msyql db and Change the directory permissions"
  18. scripts/mysql_install_db --user=mysql
  19. chown -R root .
  20. chown -R mysql data

  21. echo "mysql start"
  22. bin/mysqld_safe --user=mysql &

  23. echo "Copy defalut Profile and Init mysqld script"
  24. cp support-files/mysql.server /etc/rc.d/init.d/mysqld
  25. cp support-files/my-huge.cnf /usr/local/mysql/my.cnf
  26. ln -s /usr/local/mysql/my.cnf /etc/my.cnf
  27. chmod 755 /etc/rc.d/init.d/mysqld
  28. chkconfig --add mysqld

  29. sed -i 's/^basedir=/basedir=\/usr\/local\/mysql/g' /etc/rc.d/init.d/mysqld
  30. sed -i 's/^datadir=.*/datadir=\/usr\/local\/mysql\/data/g' /etc/rc.d/init.d/mysqld

  31. echo "Mysql Restart"
  32. /etc/rc.d/init.d/mysqld start


  33. echo "Modify Mysql root password"
  34. ./bin/mysqladmin -u root password '123456'

  35. echo "Add Mysql bin Enviorment Variable"
  36. if grep -q "/usr/local/mysql/bin" /etc/profile ;then
  37.         echo "/usr/local/mysql/bin/ have been setted"
  38. elif grep -q "export PATH=" /etc/profile ;then
  39.         sed -i 's/export PATH=\(.*\)/export PATH=\/usr\/local\/mysql\/bin:\1/g' /etc/profile
  40.         echo "mysql bin Add path success!!!"
  41. else
  42.         echo "export PATH=/usr/local/mysql/bin:$PATH">>/etc/profile
  43.         source /etc/profile
  44.         echo "mysql bin Add /etc/profile success!!!"
  45. fi

  46. echo "Add Mysql lib path"
  47. echo "/usr/local/mysql/lib/" >>/etc/ld.so.conf
  48. ldconfig     
#/usr/local/mysql/bin/mysqlshow -p
Enter password:    输入密码     //测试数据库,如有下面显示则表示成功 
#ldconfig -v           //加入动态链接库中

四、安装Openssl
#yum -y install openssl*
# rpm -qa|grep openssl
openssl-0.9.8e-12.el5_5.7
openssl-devel-0.9.8e-12.el5_5.7
openssl097a-0.9.7a-9.el5_4.2

五、安装apache:
1、安装
安装Apache有两个要注意的地方,因为我这里用的Postfix的后台管理是extman这个程序,而它是通过CGI的方式来进行管理的,所以这里启用了suexec的功能,还有一个是关于网站的存放路径的,如果不指定,那么在启用suexec后会出现 suexec-docroot的错误.
wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz
tar zxvf httpd-2.2.19.tar.gz
cd httpd-2.2.19
./configure --prefix=/usr/local/apache --sysconfdir=/etc/apache \
--enable-so --enable-ssl --enable-track-vars --enable-rewrite \
--with-zlib --enable-mods-shared=most --enable-suexec --with-suexec-caller=daemon \
--with-suexec-docroot=/var/www/
make
make install
2、启动apache服务:
/usr/local/apache/bin/apachectl start
加入到自动运行队列
# echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local
3、修改/etc/apache/httpd.conf
修改根目录:
ServerRoot "/usr/local/apache"
Listen 80
DocumentRoot "/var/www"

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all


    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all


    AllowOverride None
    Options None
    Order allow,deny
    Allow from all


去掉一下两行前的注释#:
Include /etc/apache/extra/httpd-mpm.conf
Include /etc/apache/extra/httpd-vhosts.conf

六、安装GD库
GD库的主要作用是配置相关的图形及字符的正确显示,包括类似验证码的功能和后面的图形日志的显示.
1:安装libpng
# tar zxvf libpng-1.2.18.tar.gz
#cd libpng-1.2.18
# ./configure --prefix=/usr/local/png
# make
# make install
# ln -sv /usr/local/png/lib/* /usr/lib/

2:安装jpeg
#mkdir /usr/local/jpeg
# mkdir /usr/local/jpeg/{bin,lib,include,man}
# mkdir /usr/local/jpeg/man/man1
# tar zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b/
# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
# make
# make install
# ln -sv /usr/local/jpeg/lib/* /usr/lib/

3:安装freetype
# tar zxvf freetype-2.3.5.tar.gz
# cd freetype-2.3.5
# ./configure --prefix=/usr/local/freetype2
# make
#make install

4:安装fontconfig
# tar zxvf fontconfig-2.4.2.tar.gz
# cd fontconfig-2.4.2
# ./configure --prefix=/usr/local/fontconfig \
--with-freetype-config=/usr/local/freetype2/bin/freetype-config
# make
# make install
5:安装xmkmf    //安装xmkmf的原因是编译xpm时要用来这个工具
rpm -ivh freetype-devel-2.1.9-1.i386.rpm
rpm -ivh fontconfig-devel-2.2.3-7.i386.rpm
rpm -ivh xorg-x11-devel-6.8.1-23.EL.i386.rpm

6:安装xpm   xpm-devel  /在rhel5中有直接的rpm包,librxpm.rpm libxpm-devel.rpm
# tar zxvf xpm-3.4k.tar.gz
# cd xpm-3.4k
# xmkmf -a
# make
# make install

7:安装gd
# tar zxvf gd-2.0.36.tar.gz
# cd gd-2.0.36
#./configure --prefix=/usr/local/gd --with-png=/usr/local/png/ \
--with-jpeg=/usr/local/jpeg/ --with-freetyp=/usr/local/freetype2/ \
--with-fontconfig =/usr/local/fontconfig/--with-xpm
# cp /usr/local/png/include/png.h ./
# cp /usr/local/png/include/pngconf.h ./
# make
# make install

七、安装php
1、安装php-5.2.10
#yum install  libevent-devel.i386
#yum install libXpm.i386 libXpm-devel.i386

#wget http://us3.php.net/get/php-5.2.17.tar.gz/from/cn.php.net/mirror
#wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz

#tar zxvf php-5.2.17.tar.gz
#gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
#cd php-5.2.17
#./configure --prefix=/usr/local/php  --with-config-file-path=/usr/local/php/etc \
--enable-fastcgi --enable-fpm --enable-force-cgi-redirect --with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir \
--with-png-dir=/usr/local/png/ --with-jpeg-dir=/usr/local/jpeg/  --with-freetype-dir  \
--with-zlib --with-libxml-dir --enable-xml --disable-debug --disable-rpath \
--enable-discard-path --enable-pcntl  --with-ldap --with-ldap-sasl  --enable-bcmath \
--enable-shmop --enable-sysvsem --enable-inline-optimization  --enable-mbregex  \
--enable-mbstring --with-mcrypt --enable-ftp --with-curl --with-curlwrappers --enable-sockets  \
--enable-zip --enable-soap --with-libxml-dir=/usr/include/libxml2/libxml \
--with-gd=/usr/local/gd/ --with-xpm   --enable-exif   --enable-magic-quotes \
--enable-libgcc  --with-gnu-ld  --with-zlib   --enable-mbstring --with-mcrypt \
--enable-gd-native-ttf   --with-openssl --with-mhash

#make ZEND_EXTRA_LIBS='-liconv'
#make install
#
#cp php.ini-dist /usr/local/php/etc/php.ini
注意:
这里需要注意的一个问题是,不要设置--with-apxs2=/usr/local/apache2/bin/apxs,我们知道它是告诉PHP编译成模块方式让Apache来支持。
如果设置了该选项的话,编译安装之后,Apache会无法启动,报错信息:
/usr/lib/apache2/modules/libphp5.so: undefined symbol: -fpm-event-base-free

因此这里也就意味着,我们编译PHP以PHP-FPM的方式来支持FastCGI的话,基本上就不能和Apache一起使用了,也就是说我们决定使用nginx+PHP+PHP-FPM的话,这里的PHP就没法和Apache一起使用了。

如果非还想要使用,那可以另外编译安装一个PHP,编译的时候在./configure的时候设置--with-apxs2=/usr/local/apache2/bin/apxs,而且不要打PHP-FPM的补丁。


#vi /usr/local/php/etc/php-fpm.conf
取消以下两行注释:
 nobody
 nobody
#/usr/local/php/sbin/php-fpm start
#echo "/usr/local/php/sbin/php-fpm start" >>/etc/rc.local

另外,如果该步骤出现错误,通常是缺乏依赖包,请按照错误信息安装依赖包即可。

2、配置相关文件支持
//建立相关网页路径
mkdir -pv /var/www/extsuite

//配置httpd.conf文件
# vi /etc/apache/httpd.conf
LoadModule 条目最后增加:
LoadModule php5_module        modules/libphp5.so

AddType application/x-gzip .gz .tgz下增加:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps


DirectoryIndex index.html index.html.var index.php index.htm

//配置httpd-vhost.conf文件
# vi /etc/apache/extra/httpd-vhosts.conf

ServerName mail.test.com
        DocumentRoot /var/www/extsuite/extmail/html/
        ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
        Alias /extmail /var/www/extsuite/extmail/html
        ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
        Alias /extman /var/www/extsuite/extman/html
        SuexecUserGroup vmail vmail
        Alias /phpadmin /var/www/phpadmin
        ErrorLog "logs/mail.test.com-error_log"
        CustomLog "logs/mail.test.com-access_log" common


3:配置phpmyadmin用于管理mysql,测试启动apache
#tar jxvf phpMyAdmin-3.4.2-all-languages.tar.bz2
#mv phpMyAdmin-3.4.2 /var/www
#cd /var/www/phpadmin/
#cp ./libraries/config.default.php ./config.inc.php
#vi config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'http'; //修改144行

//建立测试文件,启动Apache
# vi ./phpamin/phpinfo1.php

#/usr/local/apache/bin/apachectl start
Warning: DocumentRoot [/var/www/extsuite/extmail/html/] does not exist
//不存在的原因是还没建立相关文件,将在后面进行

mysql>GRANT ALL PRIVILEGES ON * TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges;

防火墙打开80 3306端口

测试:http://mail.harrytest.com/phpadmin/phpinfo1.php


阅读(1401) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~