64位CENTOS 5(RED HAT AS5)安装配置(web服务、邮件服务、WEB邮件)小记

时间:2022-06-27 09:16:25
Red Hat Enterprise Linux是收费的,但是对于中小型IT企业来说,使用CENTOS也是不错的选择。CENTOS是将Red Hat Enterprise Linux的源码进行部分修改然后重新编译,发布出的可以免费使用的企业级服务器操作系统,提供免费的在线升级服务,但不提供技术支持。因此需要企业有熟悉Linux操作的维护人员。

CENTOS的版本是与Red Hat Enterprise Linux的版本同步的。
我从CENTOS网站上下载了64位的CENTOS DVD ISO,安装非常简单,将ISO文件刻录成DVD,然后插入光盘,从光盘启动安装,选择图形方式,一路都很顺利。
在选择安全方式时,采用推荐的SELinux方式。XWINDOW我选择的是GNOME。

安装完成后,按CTL+ALT+F7可进入XWINDOW。

先配置好网络,通过firefox上网试试看,字体等各方面都不错,但是唯一遗憾的,Adobe目前仍未提供64位的Flash Player,因此无法观赏网页内的Flash,不过网上有一些第三方的解决办法据说可以解决这个问题。因为我主要是将这台服务器作为web server,所以无须关心这个问题。

vsftp是系统自带的ftp服务器程序,默认是未启动,在服务中启动vsftpd服务,但是通过 ftp客户端连接该服务器进行测试,报cannot change directory to /home/<user>类似的错误。原来这是SELinux的安装配置阻止了ftp客户端访问home目录。具体的信息及处理方法如下:
Summary
    SELinux is preventing the ftp daemon from reading users home directories (home).Detailed Description
    SELinux has denied the ftp daemon access to users home directories (home). Someone is attempting to login via your ftp daemon to a user account. If you only setup ftp to allow anonymous ftp, this could signal a intrusion attempt.Allowing AccessIf you want ftp to allow users access to their home directories you need to turn on the ftp_home_dir boolean:
 "setsebool -P ftp_home_dir=1"
The following command will allow this access:
setsebool -P ftp_home_dir=1

后面我还要安装tomcat、qmail+extmail等各种网络服务。
因时间关系,先随时记下这些东西,等以后有空再慢慢整理。

========
SAMBA配置部分,我配置好SAMBA的访问用户和目录,从WINDOWS端访问CENTOS服务器总是无法访问,经查证,也是因为SELINUX的安全策略原因,解决办法如下:
Summary
SELinux is preventing the samba daemon from reading users home directories.
Detailed Description
SELinux has denied the samba daemon access to users home directories. Someone is attempting to access your home directories via your samba daemon. If you only setup samba to share non home directories, this probably signals a intrusion attempt. For more information on SELinux integration with samba, look at the samba_selinux man page. (man samba_selinux)Allowing AccessIf you want samba to share home directories you need to turn on the samba_enable_home_dirs boolean: "setsebool -P samba_enable_home_dirs=1"
The following command will allow this access:
setsebool -P samba_enable_home_dirs=1

================
64位CENTOS 5默认JAVA SDK的版本是1.4。
第一次从sun网站上下载AMD 64的JDK 6,安装后,运行eclipse总是报ExitCode 13的错误。

因为我的服务器的CPU是INTEL XEON 64位的,但是在sun的网站上就没有x86 64位的jdk可以下载。只有下载x86的jdk版本了。

用rpm -e jdk先卸载第一次安装的amd64版本的jdk6,再安装这个x86版本的jdk,运行Eclipse,没有任何问题。

====================
如何配置telnet服务?
CENTOS 5默认并未安装telnet server,因此需要从其光盘上找到telnet-server-0.17-38.el5.x86_64.rpm进行安装。
然后打开/etc/xinetd.d/telnet文件:
将disable = yes改为disable = no
重启xinetd服务即可。
====================
如何使新安装的JDK6成为系统的默认JDK?
/etc/profile.d目录下创建一个文件java.sh,内容如下:
#set java environment
JAVA_HOME=/usr/java/jdk1.6.0_03
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export  JAVA_HOME  CLASSPATH  PATH

需要将java.sh的属性改为可执行。
===================
如何安装新版的MySql?
我下载了msql 5.0的64位最新版本,直接安装,报“安装包更新错误,可能是网络连接问题”,一开始以为这个安装程序要上网下载一些资料,而安装程序无法通过代理服务器访问互联网。经过屡次尝试都无效后,只能想办法将老版本的mysql(因我安装CENTOS时选择安装了SERVER包,所以包含MySQL)卸载掉,由于IMAP服务器Dovecot使用了MySQL服务器,因此必须先卸载Dovecot,具体卸载命令如下:
rpm -e dovecot
rpm -e mysql

再安装新版的MySQL,没有任何问题,成功!

至于Dovecot,由于后面我不打算使用这个IMAP服务器,就不用再重新安装了。


必须安装mysql 5.0 client,才能在terminal中使用mysql命令行工具!一开始我以为server安装包已经包含了命令行工具。

mysql server的root用户默认情况下是不允许远程访问的,需要通过mysql命令手工打开。

要在/etc/sysconfig/iptables中打开centos的3306端口,然后使用以下命令重启防火墙服务:
/sbin/service iptables restart

===================
安装TOMCAT 6.0.14,并和Apache进行整合:
1、httpd使用CENTOS 5系统自带的软件包,并基于默认配置;
2、下载64位的apache-tomcat-6.0.14.tar.gz,并解压缩到/usr/local/tomcat目录下;
3、下载64位的mod_jk-1.2.25-httpd-2.2.4.so,并复制到/etc/httpd/modules目录下;
4、在/etc/httpd/conf目录下建立mod_jk.conf文件,内容如下:
# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /etc/httpd/conf/workers.properties
# Where to put jk logs
JkLogFile /etc/httpd/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* lb-server
JkMount /*.jsp lb-server

5、在/etc/httpd/conf目录下建立workers.properties文件,内容如下:
# Defining a worker named worker1 and of type ajp13
worker.list=lb-server
# Set properties for worker1
worker.lb-server.type=ajp13
worker.lb-server.host=localhost
worker.lb-server.port=8009
worker.lb-server.lbfactor=50
worker.lb-server.cachesize=10
worker.lb-server.cache_timeout=600
worker.lb-server.socket_keepalive=1
worker.lb-server.socket_timeout=300

6、在/etc/httpd/conf/httpd.conf中的LoadModule段后加入:
#======for tomcat 6 config======
LoadModule jk_module modules/mod_jk-1.2.25-httpd-2.2.4.so
Include /etc/httpd/conf/mod_jk.conf
#===================================

7、在/usr/local/tomcat/conf/server.xml中的host段中加入:

<Context path="" docBase="/var/www/html" debug="0" reloadable="true" crossContext="true"/>

8、重启httpd服务;

9、启动tomcat:
/usr/local/tomcat/bin/startup.sh

10、在/var/www/html目录建立一个简单的hello.jsp页面,进行测试:
[url]http://localhost/hello.jsp[/url]


=======================================
安装邮件服务器相关软件
参考文章:[url]http://lunsou.org/docs/extmail_solution_linux/[/url]
但该参考文章是基于CENTOS 4.x进行安装配置。
而我们的服务器是CENTOS 5,因此很多rpm等相关软件都必须要从网上下载最新的支持CENTOS5的版本,甚至要重新进行编译后才能使用。

经过几天的努力,终于将所有的软件全部安装配置完毕,由于安装过程非常繁琐,中间就没有耐心进行详细的笔记工作,现在只是回忆一下其中遇到的问题,将主要几点列出并说明:
1、如果需要找某个rpm(比如rrdtool)的使用centos5的64位版本,可以在google中用rrdtool el5来搜索,一般来说,出现在最前面的是下面几个网站:
   rpm.pbone.net
   rpmfind.net
   dag.wieers.com   这个网站上的rpm是最全的,下载也很方便,建议优先从此网站下载。

我们需要从以上网站下载el5的x86_64版本的rpm

2、关于与perl相关包的源码编译问题:
   perl module的搜索网站:
   [url]http://search.cpan.org/[/url]
   比如,从上面的网站搜索Net_SSLeay的源码下载后,按照如下方式进行源码编译:
    tar zxvf Net_SSLeay.pm-1.30.tar.gz
    perl Makefile.PL
    make
    make test
    make install

   如果你发现某个perl module的rpm,无法在网上找到el5的x86_64版本,或者是虽然找到el5的x86_64版本,但是安装时报文件冲突,你就必须下载这个module的源码,进行重新编译安装。
  
3、rpm包的卸载问题
   在卸载一些rpm包时,尤其是与perl相关的包时,有时会遇到提示,说是无法卸载,同时存在多个安装的package。这是因为CENTOS5允许安装同一个包的x86版本和x86_64版本。
   因此在卸载时,可以使用如下方法先卸载64位版本,再卸载32位版本:
   rpm -e <不带rpm后缀的包名>.x86_64
   rpm -e <不带rpm后缀的包名>
  
4、在安装完extmail、extman、mysql后,本应该是可以访问[url]http://localhost/extmail/[/url]和[url]http://localhost/extman/[/url]这两个网址的,但我们发现事实在CENTOS5中此时仍然无法访问。
   原因是缺少一些perl包。
   另外,新版的extmail在mysql中建表后,mailbox表中并没有 test@extmail.org这个邮件地址,只有 postmaster@extmail.org这个邮件地址,其默认密码是extmail。
   extman的默认用户是 root@extmail.org,但默认密码是 extmail*123*
  
5、测试authlib,出现authentication error: Input/output error错误的时候
估计是查询mysql时,authdaemond出错了。具体要打开authdaemonrc里的:
DEBUG_LOGIN=2    原来默认是0
然后看看/var/log/message或/var/log/maillog 在认证失败时有什么提示。根据提示去检查问题到底出在哪儿


6、rrdp和rrds的安装出现了互相依赖的情况,这时需要将这两个包同时安装,例如:
   rpm -ivh <rrdp包> <rrds包>

7、postfix日志在/var/log/maillog中,如果出现问题,需要查看此日志

8、安装有些RPM文件时必需使用root权限,否则将得到错误提示:
$ rpm -ivh compat-libstdc++-33-3.2.3-47.fc4.i386.rpm
warning: compat-libstdc++-33-3.2.3-47.fc4.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
error: can't create transaction lock on /var/lib/rpm/__db.000

9、编译courier-IMAP包之前要安装:
   1)、openldap-server
   2)、报fam.h is needed错时需安装gamin-devel-0.1.7-8.el5.x86_64

10、测试postfix和clamav失败时,发现缺少perl module: File::Temp
    [url]http://search.cpan.org/~tjenness/File-Temp-0.19/Temp.pm[/url]
    需要下载该module的源码并重新编译。

本文出自 “我的影子站在岸边” 博客,请务必保留此出处http://ronald.blog.51cto.com/140996/51053