* Modifier vos sources APT :
# vim /etc/apt/sources.list
deb http://ftp2.de.debian.org/debian/ stable main non-free
# apt-get update
* Installer Sun Java 1.5 JRE and JDK
# apt-get install sun-java5-bin sun-java5-jdk
* Vérifier l'installation de Sun Java JRE
# java -version Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03) Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_10-b03, mixed mode)
# javac -version javac 1.5.0_10 [...]
# apt [...]
# apt-get install mysql-server-5.0 mysql-client-5.0
Vérifier l'installation de MySQL
Ne pas mettre de mot de passe au compte root de MySQL.
# mysql -V mysql Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2
# mysqld -V mysqld Ver 5.0.32-Debian_7etch5-log for pc-linux-gnu on i486 (Debian etch distribution)
# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1337 Server version: 5.0.32-Debian_7etch4-log Debian etch distribution [...]
# apt-get install apache2 libapache2-mod-jk
# apt-get install cyrus-imapd-2.2 cyrus-admin-2.2 sasl2-bin libpam-mysql libnss-mysql-bg \ libsasl2-modules libsasl2-modules-gssapi-mit
# apt-get install postfix postfix-mysql amavisd-new
# apt-get install cvs
# apt-get install gettext gettext-base
# apt-get install ant ant-optional
# ant Buildfile: build.xml does not exist! Build failed
Si cela remonte des erreurs, vous pouvez préciser où se trouve JAVA
# export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
# mkdir -p /opt/open-xchange/lib # mkdir -p /var/log/open-xchange # mkdir -p /var/www/ox/admin # mkdir -p /var/log/open-xchange
# addgroup --system open-xchange # adduser --system --home /opt/open-xchange --no-create-home --disabled-password --ingroup open-xchange open-xchange # chmod 750 /var/log/open-xchange # chown open-xchange:open-xchange /var/log/open-xchange
# cd /tmp # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co json-jdk15 # cd json-jdk15 # ant # cp lib/json.jar /opt/open-xchange/lib
# cd /tmp # wget http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/current/concurrent.tar.gz # tar xvzf concurrent.tar.gz # cd concurrent # ant dist # cp lib/concurrent.jar /opt/open-xchange/lib/
Copier les binaires jar dans le répertoire /opt/open-xchange/lib
Sur ce [http://khayyin.druidesmetal.org/documentations/Open-Xchange.rar lien] vous trouverez les librairies que j'ai utilisé dans mon installation
{|border="1" cellpadding="5" cellspacing="0"
!Library name !Required .jar file name
| Sun Java Servlet API | |
| Sun Java Mail API | |
| Sun Java Activation Framework | |
| MySQL Java Connector | |
| Apache Jakarta Java Caching System | |
| Apache Commons Logging | |
| Apache Commons Codec | |
| Apache Commons File Upload | |
| Apache Commons IO | |
| Apache Commons HTTP Client | |
| Apache Commons CLI | |
| Apache Jakarta Slide | |
| Java TNEF v1.3.1 | |
| Java Charset package | |
| JDOM | |
| Eclipse Equinox OSGi | |
| JUnit | |
| Saxon XSLT Processor | |
| Spring Framework Core | |
| Spring Framework Beans | |
Rajouter un lien sur une librairie :
# ln -s org.eclipse.osgi_3.2.2.R32x_v20070118.jar org.eclipse.osgi_3.2.2.ox.jar
# vi /etc/apache2/conf.d/ox.conf
<IfModule mod_jk.c> JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel error JkMount /ajax/* ajp13_worker JkMount /servlet/* ajp13_worker JkMount /infostore ajp13_worker JkMount /infostore/* ajp13_worker JkMount /oxadmin/* ajp13_worker JkMount /oxadmin ajp13_worker </IfModule>
# vi /etc/apache2/workers.properties
ps=/ worker.list=ajp13_worker worker.ajp13_worker.port=8009 worker.ajp13_worker.host=localhost worker.ajp13_worker.type=ajp13
# /etc/init.d/apache2 restart
# vi /etc/imapd.conf
allowplaintext: yes unixhierarchysep: yes sasl_pwcheck_method: saslauthd sasl_mech_list: PLAIN LOGIN admins: oxadmin loginrealms: example.com autocreatequota: 1024
# vi /etc/cyrus.conf
Ajouter à la fin
# running squatter
squatter cmd="/usr/sbin/squatter -r user" period=30
# /etc/init.d/cyrus2.2 restart
# vi /etc/pam.d/imap
auth optional pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=secret db=open-xchange-db [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1 account required pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=secret db=open-xchange-db [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1
# vi /etc/pam.d/pop
auth optional pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=secret db=open-xchange-db [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1 account required pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=secret db=open-xchange-db [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1
# vi /etc/pam.d/sieve
auth optional pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=secret db=open-xchange-db [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1 account required pam_mysql.so host=/var/run/mysqld/mysqld.sock user=openexchange passwd=secret db=open-xchange-db [table=login2user LEFT JOIN user ON login2user.id=user.id AND login2user.cid=user.cid] [where=user.cid=1] usercolumn=login2user.uid passwdcolumn=user.userPassword crypt=1
# vi /etc/libnss-mysql.cfg
getpwnam SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,prg_contacts.field01,user.homeDirectory,user.loginShell FROM login2user,user,prg_contacts WHERE login2user.cid=1 AND login2user.id=user.id AND login2user.id=prg_contacts.userid AND login2user.uid='%1$s' LIMIT 1 getpwuid SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,prg_contacts.field01,user.homeDirectory,user.loginShell FROM login2user,user,prg_contacts WHERE user.cid=1 AND login2user.id=user.id AND prg_contacts.userid=user.id AND user.uidNumber='%1$u' LIMIT 1 getspnam SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,user.shadowLastChange,0,0,-1,-1,'A' FROM login2user,user WHERE login2user.cid=1 AND login2user.id=user.id AND login2user.uid='%1$s' LIMIT 1 getpwent SELECT login2user.uid,'x',user.uidNumber,user.gidNumber,prg_contacts.field01,user.homeDirectory,user.loginShell FROM login2user,user,prg_contacts WHERE login2user.cid=1 AND login2user.id=user.id AND login2user.id=prg_contacts.userid getspent SELECT login2user.uid,user.userPassword,user.shadowLastChange,0,0,-1,-1,'A' FROM login2user,user WHERE login2user.cid=1 AND login2user.id=user.id; getgrnam SELECT identifier,'x',gidNumber FROM groups WHERE groups.cid=1 AND identifier='%1$s' LIMIT 1 getgrgid SELECT identifier,'x',gidNumber FROM groups WHERE groups.cid=1 AND gidNumber='%1$u' LIMIT 1 getgrent SELECT identifier,'x',gidNumber FROM groups WHERE groups.cid=1 memsbygid SELECT login2user.uid FROM login2user,groups,groups_member WHERE groups.cid=1 AND groups.id=groups_member.id AND groups_member.member=login2user.id AND groups.gidNumber='%1$u' gidsbymem SELECT groups.gidNumber FROM groups,groups_member,user,login2user WHERE groups.cid=1 AND groups_member.member=user.id AND user.id=login2user.id AND groups.id=groups_member.id AND login2user.uid='%1$s'; host localhost database open-xchange-db username openexchange password secret
# vi /etc/libnss-mysql-root.cfg
username openexchange password secret
# vi /etc/default/saslauthd
START=yes MECHANISMS="pam"
# /etc/init.d/saslauthd restart
# vi /etc/postfix/master.cf
remplacer
lmtp unix - - - - - lmtp
par
lmtp unix - - n - - lmtp
# vi /etc/postfix/main.cf
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp virtual_alias_domains = mysql:/etc/postfix/ox_domains.cf virtual_alias_maps = mysql:/etc/postfix/ox_user_aliases.cf, mysql:/etc/postfix/ox_aliases.cf, mysql:/etc/postfix/ox_resource_aliases.cf, mysql:/etc/postfix/ox_group_aliases.cf smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/ox_externaldomaincheck.cf smtpd_restriction_classes = local_only local_only = check_recipient_access mysql:/etc/postfix/ox_domains.cf, reject smtpd_recipient_restrictions = check_sender_access mysql:/etc/postfix/ox_senderrestrictions.cf, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
# vi /etc/postfix/ox_aliases.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT destination FROM address_mappings WHERE cid=1 AND address="%s";
# vi /etc/postfix/ox_user_aliases.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT login2user.uid FROM login2user,user,user_attribute
WHERE login2user.cid=1
AND user_attribute.name="alias"
AND login2user.id=user_attribute.id
AND login2user.id=user.id
AND user_attribute.value="%s";
# vi /etc/postfix/ox_domains.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT restriction FROM mail_domains WHERE cid=1 AND domainName="%s";
# vi /etc/postfix/ox_externaldomaincheck.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT smtpSenderRule FROM mail_domains WHERE cid=1 AND domainName="%s";
# vi /etc/postfix/ox_senderrestrictions.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT className FROM user_mail_restrictions WHERE cid=1 AND address="%s";
# vi /etc/postfix/ox_group_aliases.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT login2user.uid FROM group_address_mappings,groups_member
LEFT JOIN login2user ON login2user.id=groups_member.member WHERE
groups_member.id=group_address_mappings.id AND
group_address_mappings.address="%s" AND
group_address_mappings.cid=1;
# vi /etc/postfix/ox_resource_aliases.cf
hosts = 127.0.0.1 user = openexchange password = secret dbname = open-xchange-db query = SELECT destination FROM resource_address_mappings,resource WHERE
resource.mail="%s" AND
resource_address_mappings.cid=1 AND
resource_address_mappings.cid=resource.cid AND
resource_address_mappings.id=resource.id;
# usermod -G mail postfix
# newaliases
# cd /tmp # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot/ co -r bf_6_4 open-xchange
# cd /tmp/open-xchange/
Vérifier dans le fichier build.xml les versions des jar nécessaires
Si votre serveur est un 64 bits # export ANT_OPTS="-Xmx512m"
# ant -Dlib.dir=/opt/open-xchange/lib install (…)
BUILD SUCCESSFUL Total time: xx minutes xx seconds
# cp /tmp/open-xchange/etc/init.d/open-xchange-groupware /etc/init.d/
# chmod +x /etc/init.d/open-xchange-groupware # cp /tmp/open-xchange/etc/default/open-xchange-groupware /etc/default/ # chmod +x /etc/default/open-xchange-groupware
# cd /tmp # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-console-ee # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-imap # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-mail # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-mailfilter # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-context_light # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-ca_mgmt_simple # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-osconfig # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-services # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-sw-update # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-backup # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-fetchmail # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-plugin-license # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r HEAD licenseDBClient
# cd /tmp/licenseDBClient # cp lib/*.jar /opt/open-xchange/lib
# cd /tmp/open-xchange-admin
Vérifier dans les fichiers build.xml se trouvant dans les répertoires que vous venez de télécharger les versions des jar nécessaires
# ant -Dlib.dir=/opt/open-xchange/lib install
BUILD SUCCESSFUL Total time: xx seconds
# /opt/open-xchange/sbin/oxinstaller –oxdb-pass=secret –admin-pass=secret –maildomain example.com
# mysql -h localhost -u openexchange -p configdb
# /etc/init.d/open-xchange-groupware start Starting Open-Xchange Groupware: open-xchange-groupware. # tail -n200 -f /var/log/open-xchange/open-xchange.log.* /var/log/open-xchange/open-xchange-console.log
# /etc/init.d/open-xchange-admin start Starting Open-Xchange Admin Daemon: open-xchange-admin. # tail -n200 -f /var/log/open-xchange/open-xchange-admin.log.* /var/log/open-xchange/open-xchange-admin-console.log
# ps ax | grep open-xchange 32729 ? S 0:00 /usr/bin/java -Xms128M -Xmx192M -Djava.awt.headless=true -Dopenexchange.propfile=/opt/open-xchange/etc/groupware/system.properties -Djava.util.logging.config.file=/opt/open-xchange/etc/groupware/file-logging.properties -classpath /opt/open-xchange/lib/activation.jar:/opt/open-xchange/lib/commons-cli-1.0.jar:/opt/open-xchange/lib/commons-codec-1.3.jar:/opt/open-xchange/lib/commons-fileupload.jar:/opt/open-xchange/lib/commons-httpclient-2.0.2.jar:/opt/open-xchange/lib/commons-io.jar:/opt/open-xchange/lib/commons-logging.jar:/opt/open-xchange/lib/concurrent.jar:/opt/open-xchange/lib/jakarta-slide-webdavlib-2.1.jar:/opt/open-xchange/lib/jcharset-1.3.jar:/opt/open-xchange/lib/jcs-1.2.7.9.2.jar:/opt/open-xchange/lib/jdom.jar:/opt/open-xchange/lib/json.jar:/opt/open-xchange/lib/junit-4.1.jar:/opt/open-xchange/lib/mail.jar:/opt/open-xchange/lib/mysql-connector-java-3.1.13-bin.jar:/opt/open-xchange/lib/org.eclipse.osgi_3.2.2.ox.jar:/opt/open-xchange/lib/ox_admin_console_ee.jar:/opt/open-xchange/lib/ox_admindaemon.jar:/opt/open-xchange/lib/ox_admin_plugin_backup.jar:/opt/open-xchange/lib/ox_admin_plugin_ca_mgmt_simple.jar:/opt/open-xchange/lib/ox_admin_plugin_context_light.jar:/opt/open-xchange/lib/ox_admin_plugin_imap.jar:/opt/open-xchange/lib/ox_admin_plugin_mailfilter.jar:/opt/open-xchange/lib/ox_admin_plugin_mail.jar:/opt/open-xchange/lib/ox_admin_plugin_osconfig.jar:/opt/open-xchange/lib/ox_admin_plugin_services.jar:/opt/open-xchange/lib/ox_admin_plugin_sw-update.jar:/opt/open-xchange/lib/ox_server.jar:/opt/open-xchange/lib/saxon8.jar:/opt/open-xchange/lib/servlet-api-2.4.jar:/opt/open-xchange/lib/spring-beans_1.2.7.jar:/opt/open-xchange/lib/spring-core_1.2.7.jar:/opt/open-xchange/lib/tnef.jar: ComfireServer 442 ? S 0:00 /usr/bin/java -Djava.net.preferIPv4Stack=true -Xms50M -Xmx50M -Dopenexchange.propfile=/opt/open-xchange/etc/admindaemon/system.properties -Dconfigdir=/opt/open-xchange/etc/admindaemon -Djava.util.logging.config.file=/opt/open-xchange/etc/admindaemon/file-logging.properties -Duser.timezone=GMT -Dlibdir=/opt/open-xchange/lib -jar /opt/open-xchange/lib/org.eclipse.osgi_3.2.2.ox.jar -configuration file:/opt/open-xchange/etc/admindaemon/osgi/
http://your-server/servlet/TestServlet http://your-server/servlet/webdav.version http://your-server/ajax/ http://your-server/infostore/
# cd /tmp # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4_2 open-xchange-gui
# cd /tmp/open-xchange-gui # export CLASSPATH=/opt/open-xchange/lib/saxon8.jar # export ANT_OPTS="-Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl"
Vérifier dans le fichier build.xml les versions des jar nécessaires
# ant -Dlib.dir=/opt/open-xchange/lib/ -Dhtdoc=/var/www/ox deploy
# ant -Dlib.dir=/opt/open-xchange/lib/ -lib /opt/open-xchange/lib -Dhtdoc=/var/www/ox deploy
# cd /tmp # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-gui-ee # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-gui-ee-ajax # cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co -r bf_6_4 open-xchange-admin-gui-ee-templates
Vérifier dans les fichiers build.xml se trouvant dans les répertoires que vous venez de télécharger les versions des jar nécessaires
# cd /tmp/open-xchange-admin-gui-ee # ant -Dlib.dir=/opt/open-xchange/lib/ install
# cd /tmp/open-xchange-admin-gui-ee-ajax # ant -Dlib.dir=/opt/open-xchange/lib/ -Dhtdoc=/var/www/ox/admin install
# cd /tmp/open-xchange-admin-gui-ee-templates # ant -Dlib.dir=/opt/open-xchange/lib/ -Dhtdoc=/var/www/ox/admin -Doxguidir=/var/www/ox/admin install
# /etc/init.d/open-xchange-groupware restart # /etc/init.d/open-xchange-admin restart
Voilà L'installation est terminée. Les URLs utiles : Admin : http://your-server/ox/admin
Webmail : http://your-server/ox/ox.html
Si ce genre de message apparaît dans l'Admin : java.lang.SecurityException: class "javax.mail.QuotaAwareStore"'s signer information does not match signer information of other classes in the same package
# cd /opt/open-xchange/lib # rm mailapi_1_3_1.jar # unzip -j some_path/javamail-1_4.zip javamail-1.4/lib/mailapi.jar # mv mailapi.jar mailapi_1_3_1.jar
# /etc/init.d/open-xchange-admin stop # /etc/init.d/open-xchange-groupware stop # /etc/init.d/apache2 restart # /etc/init.d/open-xchange-groupware start # /etc/init.d/open-xchange-admin start