分享

open-xchange的安装配置

 smoking_boy 2006-12-08

基于SLES9.0+cyrus-imap+sasl+postfix+postgresql+tomcat+apache2+ox的邮件系统


一、安装环境
1、操作系统
操作系统采用SuSE Linux企业版9.0发行版,没有打补丁,这个版本包含了除OX以外的所有程序
2、OX
Ox采用0.8.1-6版本,这个版本还不是稳定版本,可以选用其稳定版本
3、目录约定
OX源文件在/oxsource下
OX安装目录为/data/ox
二、操作系统的安装
1、要安装的软件包
可以使用系统默认的安装,在安装时把以下软件包选择上:
apache2-2.0.46-27.23.3
apache2-prefork-2.0.49-27.24.3
apache2-jarkarta-tomcat-connectors-5.0.19-29.1
jakarta-tomcat-5.0.19-29-1
postgres-7.4.2-36.3
postgresql-server-7.4.2-36.3
postgresql-libs-7.4.2-36.3
postgresql-devel-7.4.2-36.3
postgresql-jdbc  这个包在安装结束后要从www.下载一下7.4:http://jdbc./download/pg74.216.jdbc3.jar

IBMjava2-JRE,IBMJava2-SDK; 这个包是默认安装的java包,在安装是要把它去掉,并选择上java2-SDK-1.4.2-129.7 和 java2-jre-1.4.2-129.7这两个包
openldap-2.2.6-37.22
openldap2-client-2.2.6-37.22
openldap2-devel-2.2.6-37.22
perl-IO-Socket-SSL-0.95-28
perl-Authen-SASL-2.06-26
perl-Convert-ASN1-0.18-66.1
perl-XML-LibXML-1.57-32
perl-libxml-perl-0.07-478
perl-CGI-Application-3.22-26
perl-ldap*-0.29-132-1
unzip-5.50-345.1
autoconf-2.59-75.1
automake-1.8.3-23.1
gcc-3.3.3-43-24
gcc-c++-3.3.3-43-24
如果要使用本地的IMAP邮局就要把以下包选择下,如果使用外部的邮局就不用选择:
cyrus-imapd-2.2.3-83.5
cyrus-imapd-devel-2.2.3-83.5
cyrus-sasl-2.1.18-33.1
cyrus-devel-2.1.18-33.1

sasl这时候是安装了但安装结束后还要进行重新编译,因为这个编译过的包是不支持ldap认证的,关于这个包的编译和安装会在下面的部分专门说明,但这时候要把这些包选择上,因为会自动建立相关的用户和设置。

如果要使用本机的DNS来进行MX的解析就还要安装BIND服务软件包:
bind-9.2.3-76.9
bind-devel-9.2.3-76.9
在安装完成后重启系统,然后要下载一些java包:

jaf:可以从http://java./products/javabeans/glasgow/jaf.html   下载
下载后解压,把activation.jar复制到/usr/lib/java/lib/

xerces-J-bin:可以从http://apache./xml/xerces-j/ 下载
下载后解压,把xercesImpl.jar复制到/usr/lib/java/lib/

javaMail:可以从http://java./products/javamail/downloads/index.html 下载
下载后解压,把mail.jar复制到/usr/lib/java/lib/

jdom-1.0:可以从http://www./dist/binary/ 下载
下载的这个包是要编译才可以用的,把这个包解压,然后在解压后的目录中用./build.sh进行编译,然后把build目录下的jdom.jar复制到/usr/lib/java/lib/

postgres jdbc driver:可以从http://jdbc./download/pg74.216.jdbc3.jar
然后重命名为postgresql.jar后复制到/usr/lib/java/lib/

由于在编译OX时还要用到servertapi.jar这个包,在安装系统结束后可以建立一下link到/usr/lib/java/lib/下:
ln -s /usr/share/tomcat/common/lib/servlet-api.jar /usr/lib/java/lib/serveletapi5.jar
链接名是与下面的OX命令中的是对应的,要变都变

2、安装中的一些相关注意
用户认证问题:使用LDAP还是本地认证?
都可以,这在安装是用本地用户认证,这样系统用户是用本地用户认证,邮件用户用LDAP认证,但在安装后要自己在LDAP中加入象cyrus这样的用户才可以让cyrus-imapd也用LDAP进行用户认证
3、至些操作系统安装结束,最好重启一次
三、postgresql数据库的设置
1、编辑/etc/sysconfig/postgresql,设置为:
POSTGRES_OPTIONS=“-I"
然后运行 :
rcpostgresql start
2、编辑/var/lib/pgsql/data/pg_hba.conf
把以下两行前的#去除:

host all all 127.0.0.1 255.255.255.255 trust
local all all        trust

并把行中包含::1的行前加上#
3、编辑/var/lib/pgsql/data/postgresql.conf
把 tcpip_socket=true 前的#去除,并设置为true
然后运行:
rcpostgresql restart
4、建立数据库用户
su postgres
create --pwprompt
Enter name of user to add: openexchange
Enter password for new user: YoUrPaSsWoRd
Enter it again: YoUrPaSsWoRd
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
5、建立数据库
createdb -O openexchange -E UTF-8 openexchange
如果不建立数据库在后面编译OX是会出错
6、退出postgres用户
exit
四、OX(open-exchange)的安装
1、下载OX
不稳定最新版本: http://mirror./download/open-xchange-0.8.1-6.tar.gz
稳定版本: http://mirror./download/archive/open-xchange-0.8.0-6.tar.gz
把OX解压到一个目录下如/oxsource/,在安装完成后就可以删除了
2、OX的设置、编译、安装
由于在编译OX时还要用到servertapi.jar这个包,可以建立一下link到/usr/lib/java/lib/下:
ln -s /usr/share/tomcat/common/lib/servlet-api.jar /usr/lib/java/lib/serveletapi5.jar

命令中的/data/ox/是安装后的ox目录,你可以变成你自己的目录如 /opt/ox 等,下面相应的也都要变成你自己的目录
进入oxsource目录:
cd /oxsource

./configure --prefix=/data/ox \
--with-mailjar=/usr/lib/java/lib/mail.jar \
--with-activationjar=/usr/lib/java/lib/activation.jar \
--with-jdomjar=/usr/lib/java/lib/jdom.jar \
--with-xercesjar=/usr/lib/java/lib/xercesImpl.jar \
--with-jsdkjar=/usr/lib/java/lib/servletapi5.jar \
--with-jdbcjar=/usr/lib/java/lib/postgresql.jar \
--with-dbpass=YoUrPaSsWoRd \
--with-domain=domain.com \
--with-basedn=dc=domain,dc=com \
--with-rootdn=uid=mailadmin,dc=domain,dc=com \
--with-organization="your organization"  \
--with-runuid=wwwrun \
--with-rungid=tomcat \
--enable-webdav \
--enable-doc

make

make install

cd /data/ox
cp share/perl/* /srv/www/cgi-bin/
cp share/openxchange.schema /etc/openldap/schema/

mkdir -p /srv/www/htdocs/cfintranet/webmail/

cp -r share/groupware/data/css share/groupware/data/images share/groupware/data/javascript  /srv/www/htdocs/cfintranet/

cp -r share/webmail/data/css share/webmail/data/images share/webmail/data/javascript /srv/www/htdocs/cfintranet/webmail

cd etc/webmail/
ln -s /etc/openldap/ldap.conf
ln -s /etc/mime.types
cd ../groupware
ln -s /etc/openldap/ldap.conf
ln -s /etc/mime.types

su postgres
psql -U openexchange openexchange < /data/ox/share/init_database.sql
exit

/data/ox/sbin/dbinit_ox

rcpostgresql restart

3、OX的配置
编辑/etc/init.d/ldap,设置以下一行为:
SLAPD_URLS="ldap://127.0.0.1/"

然后运行:
rcldap restart

编辑/data/ox/share/init_ldap.ldif,把其中所有的域换成你自己的域dc=domain,dc=com

仔细检查以下文件,把其中的BINDDN或rootdn,BINDPW换成你自己的
/etc/openldap/ldap.conf
/etc/openldap/slapd.conf
/data/ox/etc/admintools.conf

在/etc/slapd.conf中加入一行:include /etc/openldap/schema/openxchange.schema

/etc/openldap/ldap.conf示例:
BASE    dc=domain,dc=com
HOST 127.0.0.1
TLS_REQCERT allow

 

在/etc/openldap 下用
touch acl_ox.conf
建立一acl_ox.conf的文件,并在/etc/openldap/slapd.conf中加入一行:include /etc/openldap/acl_ox.conf
(这一行我没有加,加了有问题)

下面这一步是出错最多的地方,请注意,可以是因为OX自动生成的init_ldap.ldif文件有问题,所在要手动找出所在并改正:
rcldap stop
rm /var/lib/ldap/*
rcldap start
ldapadd -x -D "uid=mailadmin,dc=domain,dc=com" -W -f /data/ox/share/init_ldap.ldif
看最后一行出错的是什么,我的是没有发现一个入口,我在出错的前一行加了一行就解决了。
然后再清空LDAP,重启一次再导入ldif:
rcldap stop
rm /var/lib/ldap/*
rcldap start
slapadd -l /data/ox/share/init_ldap.ldif
rcldap restart

然后运行:
chown wwwrun.tomcat /data/ox/var/filespool -R
chmod g+w /data/ox/var/filespool -R
cp -a /data/ox/etc/init.d/openexchange /etc/init.d/
chkconfig apache2 on
chkconfig tomcat on
chkconfig ldap on
chkconfig postgresql on
chkconfig openexchange on

五、tomcat
cd /srv/www/tomcat/base/
mkdir -p webapps/servlet/WEB-INF/lib
mkdir -p webapps/servlet/WEB-INF/classes


cd /data/ox
cp share/servlets/*.class /srv/www/tomcat/base/webapps/servlet/WEB-INF/classes/
cp lib/* /srv/www/tomcat/base/webapps/servlet/WEB-INF/lib/

cp /oxsource/system/servlet/web.xml /srv/www/tomcat/base/webapps/servlet/WEB-INF/

然后编辑/etc/tomcat/base/tomcat-users.xml,加入:
<user username="yourname" password="YoUrPaSsWoRd" roles="manager,admin" />

重启tomcat
rctomcat restart

http://localhost:8080/manager/html/ 打开网页用yourname/YoUrPaSsWoRd论证后,发布以下两个war
/data/ox/lib/umin.war /data/ox/lib/servlet.war

把要保证这几个文件在/srv/www/tomcat/base/webapps/servlet/WEB-INF/lib/ 下:
activation.jar, comfiretools.jar, intranet.jar, jdom.jar, mail.jar, nas.jar, postgresql.jar and webdav.jar

设置目录属性:
chown tomcat.tomcat /srv/www/tomcat/base/webapps/servlet/WEB-INF/ -R
rctomcat restart

六、apache2
编辑/etc/sysconfig/apache2
在APACHE_MODULES一行最后加入 jk

编辑/etc/apache2/mod_mime-defaults.conf 中把
AddDefaultCharset UTF-8

然后运行:
SuSEconfig

在/etc/apache2/config.d/ 下建立jk.conf
<IfModule mod_jk.c>

    JkWorkersFile /etc/tomcat/base/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log

    # Log level to be used by mod_jk
    JkLogLevel warn


    # webdav
    JkMount /servlet/* ajp13
    JkMount /servlet/webdav.contacts/* ajp13
    JkMount /umin/* ajp13
    JkMount /servlet/webdav.documents/* ajp13

    # The following line makes apache aware of the location of
    # the /servlet
    Alias /servlet "/srv/www/tomcat/base/webapps/servlet"
    Alias /webdav.documents "/srv/www/tomcat/base/webapps/servlet"

    <Directory "/srv/www/tomcat/base/webapps/servlet">
       Options Indexes FollowSymLinks
       allow from all
    </Directory>
    #<Directory "/srv/www/tomcat/base/webapps/servlets-examples">
    #   Options Indexes FollowSymLinks
    #   allow from all
    #</Directory>


    # The following line prohibits users from directly accessing WEB-INF
    <Location "/servlet/WEB-INF/">
       AllowOverride None
       deny from all
    </Location>

</IfModule>

把/etc/hosts中关于IPV6的行都去除了

七、增加OX用户
cd /data/ox/sbin
./adduser_ox --username=test \
--passwd=test \
--name=test \
--sname=test \
--maildomain=yourdomain.com \
--ox_timezone=Europe/Berlin \
--inetmail=TRUE \
--write_global_address=TRUE


And:

./addgroup_ox --group=[Your group]
./addusertogroup_ox --user=[Your user] --group=[Your group]

Thus OX knows which IMAP server it for the user to access:
./changeuserattr_ox --username=mmustermann --attrib=imapServer --value=imap.ox-server.de
If You don‘t do this..You will not have a popup-windows for new incoming emails..;-)

八、启动全部相关服务
rcldap restart
rcpostgresql restart
rcapache2 restart
rctomcat restart
/etc/init.d/openexchange start

九、cyrus-imapd 、cyrus-sasl的设置
1、cyrus-sasl 编译,使支持ldap
把cyrus-sasl的源代码包从第5张CD上复制到用户目录下:

执行
rpm -i cyrus-sasl-2.1.18-33.1.src.rpm
cd /usr/src/packages/SPECS
rpmbuild -bp cyrus-sasl.specs 一个和你的软件包同名的specs文件
cd /usr/src/packages/BUILD/cyrus-sasl-2.1.18/ 一个和你的软包同名的目录
 ./configure 这一步和编译普通的源码软件一样,可以加上参数
 make
 make install

会安装到/usr/local下,把要相关的复制到对应目录下就OK了

2、cyrus ldap 相关设置
在/etc/下建立saslauthd.conf,内容为
ldap_servers: ldap://127.0.0.1
ldap_bind_dn: uid=mailadmin,dc=domain,dc=com
ldap_password: YoUrPaSsWoRd
ldap_search_base: dc=domain,dc=com

编辑/etc/sysconfig/saslauthd
设置为ldap 认证:
SASLAUTHD_AUTHMECH=ldap
CONFIG_FILE="/etc/saslauthd.conf"

编辑/etc/init.d/saslthd,把启动进程一行变为:
/sbin/startproc $AUTHD_BIN -a $SASLAUTHD_AUTHMECH -O /etc/saslauthd.conf  > /dev/null 2>&1
就是在后面中上 -O /etc/saslauthd.conf

编辑/etc/ldap.conf,设置以下两行:
BASE dc=domain,dc=com
HOST server.domain.com
# again, following line not needed, if not using openLDAP with TLS enabled.
TLS_CACERT /etc/ldap/certs/cacert.pem

编辑/etc/imapd.conf为:
allowplaintext: yes
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN

3、在LDAP中增加cyrus这个用户
cd /data/ox/
./adduser_ox --username=cyrus \
--passwd=YoUrPaSsWoRd \
--name=cyrus \
--sname=admin \
--maildomain=yourdomain.com \
--ox_timezone=Europe/Berlin \
--inetmail=TRUE \
--write_global_address=TRUE
十、postfix ldap 相关设置
1、建立/etc/postfix/ldap-settings.cf 这个文件:
version = 3
###################### ALIASES########################
bind_dn= uid=mailadmin,dc=domain,dc=com
bind_pw= YoUrPaSsWoRd
server_host= 127.0.0.1
server_port= 389
bind= yes
timeout= 20
search_base= ou=OxObjects,dc=domain,dc=com
query_filter = (|(mail=%s)(cn=%s))
result_attribute = uid,memberUid
scope= sub

2、编辑/etc/postfix/main.cf
设置 alias_maps为:
alias_maps = hash:/etc/aliases,ldap:/etc/postfix/ldap-settings.cf

如果出现无法发邮件,象连接被拒绝和loops to myself 的错误,问题主要是出在postfix的设置上,把main.cf
中的相关设置,如主机、域等设置好就可以了

十一、增加cyrus-imapd 用户
用adduser_ox加的只是ox用记,并没有加入imap的用户,所以要用webmail还要建立imap用户,
可以用cyrus-imapd文档目录下的脚本来建立

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多