openXchange
12/08/2009 Avertissement, Ce billet est outdaté, (périmé?) Les dépots d'open X Change pour Lenny n'étant plus accessibles.
Quelques liens:
Pré requis
- Une débian 5.0 installé, à jour.
- Une connection internet
Installation d'Open-X-change
Pour les essais, j'ai adapté un script. A tester sur une machine virtuelle, ça met à plat beaucoup de fichiers de configuration. Je ne suis pas allé jusqu'au bout, les mails ne passent pas.
#!/bin/bash
# Fonction confirmation des paramètres entrés par l'utilisateur
confirmer() {
echo -e "\033[1;31m Voulez-vous continuer avec cette valeur : "$1" (o/N) \033[0;39m"
read confirmation
}
# Fonction permettant de demander confirmation pour continuer à
faire_une_pause() {
echo -n "Continuer [O/n] ? "
read lettre
case $lettre in
"n" | "N") exit 1;;
*);;
esac
}
#Fonction pour télécharger un fichier de configuration
#Sauver l'original avec un .old
Change_fichier_de_config(){
#Liste des parametres:
# $1: url du fichier
# $2: nom du fichier
# $3: chemin du fichier de configuration
cp $3/$2 $3/$2.old 2>/dev/null
wget $1
cp $2 $3/$2
echo - Mise en place du nouveau fichier $3/$2 [OK]
}
############################## Variables #####################
export URL_DL="http://blog-du-grouik.tinad.fr/public/OpenXchange"
export DL_DIR=~/oxdl
confirmation="n"
while [ "$confirmation" != "o" ]
do
echo "Entrez le nom du domaine (sous la forme domaine.fr) :"
read DOMAIN
confirmer $DOMAIN
done
confirmation="n"
while [ "$confirmation" != "o" ]
do
echo "Entrez le mot de passe de l'utilisateur MysQl OPENXCHANGE) :"
read OPENXCHANGE_MYSQL_PWD
confirmer $OPENXCHANGE_MYSQL_PWD
done
confirmation="n"
while [ "$confirmation" != "o" ]
do
echo "Entrez le mot de passe OX_ADMIN_MASTER (le 'root' de OpenXchange) :"
read OX_ADMIN_MASTER_PASSWORD
confirmer $OX_ADMIN_MASTER_PASSWORD
done
confirmation="n"
while [ "$confirmation" != "o" ]
do
echo "Entrez le mot de passe OX_ADMIN (l'administrateur de OpenXchange) :"
read OX_ADMIN_PASSWORD
confirmer $OX_ADMIN_PASSWORD
done
mkdir -p $DL_DIR
############################### INSTALLATION DES PAQUETS #######################
echo Le fichier de configuration des sources de paquets sera sauvé dans /etc/apt/sources.list.old et sera remplacé.
faire_une_pause
cp /etc/apt/sources.list /etc/apt/sources.list.old 2>/dev/null
echo "
#Les depots 'classiques':
deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
#debian non-free
deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free
#Depot pour Open-X-change
deb http://download.opensuse.org/repositories/server:/OX:/ox6/DebianLenny/ /
" > /etc/apt/sources.list
apt-get update
# Basics
echo Installation des paquets.
echo Lors de l installation, Si les paquets sont déja présents, ce sera signalé, ça ne pose pas de problème.
echo Lors de l installation de Java, Vous devrez accepter la license.
echo Lors de l installation de postfix, Vous devrez choisir Internet Site et le domaine des mails.
echo Lors de l installation de MySql, choisissez le mot de passe root MysQl et souvenez vous en!
faire_une_pause
apt-get install nano ssh wget sun-java5-bin sun-java5-jdk \
cyrus-imapd-2.2 cyrus-admin-2.2 sasl2-bin libsasl2-modules libpam-mysql \
libnss-mysql-bg \
postfix postfix-mysql \
cyrus-clients-2.2 \
mysql-server mysql-client \
mysql-server open-xchange-admin-client \
open-xchange-admin-doc open-xchange-admin-plugin-hosting-doc \
open-xchange-admin-plugin-hosting open-xchange-admin \
open-xchange-authentication-database open-xchange-cache \
open-xchange-charset open-xchange-common open-xchange-configjump-generic \
open-xchange-configread open-xchange-control \
open-xchange-data-conversion-ical4j \
open-xchange-conversion-engine open-xchange-conversion-servlet \
open-xchange-global open-xchange-group-managerequest open-xchange-gui \
open-xchange-i18n open-xchange-imap open-xchange-jcharset \
open-xchange-mailfilter \
open-xchange-management open-xchange-monitoring \
open-xchange-online-help-de \
open-xchange-online-help-en open-xchange-online-help-fr \
open-xchange-passwordchange-database open-xchange-passwordchange-servlet \
open-xchange-push-udp open-xchange-resource-managerequest \
open-xchange-server \
open-xchange-sessiond open-xchange-settings-extensions open-xchange-smtp \
open-xchange-spamhandler-default open-xchange \
open-xchange-contactcollector \
libapache2-mod-jk cyrus-nntpd-2.2
/etc/init.d/cyrus2.2 stop
/etc/init.d/saslauthd stop
/etc/init.d/postfix stop
########################### CONFIGURATION DES PAQUETS INSTALLES
echo Mise en place des fichiers de configuration. Les fichiers d origine seront copiés avec l extension .old
echo par exemple le fichier /etc/postfix/main.cf sera sauvé dans le fichier /etc/postfix/main.cf.old
faire_une_pause
cd $DL_DIR
mkdir hyperion-install/
cd hyperion-install
mkdir configfiles/
cd configfiles
# APACHE
echo Changement des fichiers de configuration d Apache
mkdir apache/
cd apache
#Change_fichier_de_config $URL_DL/apache/default default
/etc/apache2/sites-available
awk '{gsub("oxadmin@example.com", "oxadmin@" "'"$DOMAIN"'", $0); print > FILENAME}' /etc/apache2/sites-available/default
Change_fichier_de_config $URL_DL/apache/ox.conf ox.conf /etc/apache2/conf.d
#Change_fichier_de_config $URL_DL/apache/workers.properties workers.properties /etc/apache2
echo "ServerName `hostname`.$DOMAIN" >> /etc/apache2/httpd.conf
a2enmod proxy
a2enmod proxy_ajp
a2enmod expires
a2enmod deflate
a2enmod headers
a2enmod jk
echo "
<Proxy *>
Order deny,allow
allow from all
</Proxy>
ProxyPass /axis2 ajp://127.0.0.1:8009/axis2 smax=0 ttl=60 retry=5
ProxyPass /ajax ajp://127.0.0.1:8009/ajax smax=0 ttl=60 retry=5
ProxyPass /servlet ajp://127.0.0.1:8009/servlet smax=0 ttl=60 retry=5
ProxyPass /infostore ajp://127.0.0.1:8009/infostore smax=0 ttl=60 retry=5
" > /etc/apache2/conf.d/proxy_ajp.conf
sed -i "14G" /etc/apache2/sites-available/default
sed -i "14G" /etc/apache2/sites-available/default
#sed -i "15s/^/RedirectMatch \^\/\$ \/ox6/" /etc/apache2/sites-available/default
sed -i "s/<\/VirtualHost>//" /etc/apache2/sites-available/default
echo 'ExpiresActive On
ExpiresByType image/gif "access plus 23 hours"
ExpiresByType image/png "access plus 23 hours"
ExpiresByType image/jpg "access plus 23 hours"
ExpiresByType image/jpeg "access plus 23 hours"
ExpiresByType text/javascript "access plus 23 hours"
ExpiresByType text/css "access plus 23 hours"
ExpiresByType text/html "access plus 23 hours"
ExpiresByType application/x-javascript "access plus 23 hours"
<Files ~ "\.(js|css|gif|jpe?g|png)$">
Header append Cache-Control "public"
</Files>
DeflateFilterNote ratio
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</VirtualHost>
' >> /etc/apache2/sites-available/default
#Cyrus
echo Changement des fichiers de configuration de Cyrus / Pam
mkdir $DL_DIR/hyperion-install/configfiles/cyrus
cd $DL_DIR/hyperion-install/configfiles/cyrus
Change_fichier_de_config $URL_DL/cyrus/imap imap /etc/pam.d
cp /etc/pam.d/pop /etc/pam.d/pop.old 2>/dev/null
cp /etc/pam.d/sieve /etc/pam.d/sieve.old 2>/dev/null
cp /etc/pam.d/imap /etc/pam.d/pop
cp /etc/pam.d/imap /etc/pam.d/sieve
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/pam.d/imap
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/pam.d/pop
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/pam.d/sieve
Change_fichier_de_config $URL_DL/cyrus/imapd.conf imapd.conf /etc
awk '{gsub("example.com", "'"$DOMAIN"'", $0); print > FILENAME}' /etc/imapd.conf
cp /etc/imapd.conf /etc/imap.conf
cp /etc/cyrus.conf /etc/cyrus.conf.old 2>/dev/null
awk '{gsub("#imaps\t\tcmd=\"imapd", "imaps\t\tcmd=\"imapd", $0); print > FILENAME}' /etc/cyrus.conf
awk '{gsub("\"timsieved\"", "\"/usr/lib/cyrus/bin/timsieved\"", $0); print > FILENAME}' /etc/cyrus.conf
echo - Modification du fichier /etc/cyrus.conf [OK]
#Postfix
echo Changement des fichiers de configuration de Postfix
mkdir $DL_DIR/hyperion-install/configfiles/postfix
cd $DL_DIR/hyperion-install/configfiles/postfix
Change_fichier_de_config $URL_DL/postfix/main.cf main.cf /etc/postfix
awk '{gsub("example.com", "'"$DOMAIN"'", $0); print > FILENAME}' /etc/postfix/main.cf
Change_fichier_de_config $URL_DL/postfix/master.cf master.cf /etc/postfix
Change_fichier_de_config $URL_DL/postfix/ox_aliases.cf ox_aliases.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_aliases.cf
Change_fichier_de_config $URL_DL/postfix/ox_resource_aliases.cf ox_resource_aliases.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_resource_aliases.cf
Change_fichier_de_config $URL_DL/postfix/ox_user_aliases.cf ox_user_aliases.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_user_aliases.cf
Change_fichier_de_config $URL_DL/postfix/ox_domains.cf ox_domains.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_domains.cf
Change_fichier_de_config $URL_DL/postfix/ox_externaldomaincheck.cf ox_externaldomaincheck.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_externaldomaincheck.cf
Change_fichier_de_config $URL_DL/postfix/ox_group_aliases.cf ox_group_aliases.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_group_aliases.cf
Change_fichier_de_config $URL_DL/postfix/ox_senderrestrictions.cf ox_senderrestrictions.cf /etc/postfix
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/postfix/ox_senderrestrictions.cf
#MySql
echo Changement des fichiers de configuration de MySql
mkdir $DL_DIR/hyperion-install/configfiles/mysql
cd $DL_DIR/hyperion-install/configfiles/mysql
Change_fichier_de_config $URL_DL/mysql/libnss-mysql.cfg libnss-mysql.cfg /etc
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/libnss-mysql.cfg
Change_fichier_de_config $URL_DL/mysql/libnss-mysql-root.cfg libnss-mysql-root.cfg /etc
awk '{gsub("secret", "'"$OPENXCHANGE_MYSQL_PWD"'", $0); print > FILENAME}' /etc/libnss-mysql-root.cfg
#System
echo Changement des fichiers de configuration des autres programmes
mkdir $DL_DIR/hyperion-install/configfiles/system
cd $DL_DIR/hyperion-install/configfiles/system
Change_fichier_de_config $URL_DL/system/saslauthd saslauthd /etc/default
cp /opt/open-xchange/etc/admindaemon/User.properties /opt/open-xchange/etc/admindaemon/User.properties.old 2>/dev/null
awk '{gsub("DEFAULT_PASSWORD_MECHANISM=SHA", "DEFAULT_PASSWORD_MECHANISM=CRYPT", $0); print > FILENAME}' /opt/open-xchange/etc/admindaemon/User.properties
echo - Modification du fichier /opt/open-xchange/etc/admindaemon/User.properties [OK]
######################## Finaliser l'installation#####################"
echo Finaliser l instalation
faire_une_pause
usermod -G mail postfix
newaliases
echo "GRANT ALL PRIVILEGES ON *.* TO 'openexchange'@'localhost' IDENTIFIED BY '$OPENXCHANGE_MYSQL_PWD';" > /tmp/openXchange_pri.sql
echo Le mot de passe root de MySql:
mysql -u root < /tmp/openXchange_pri.sql mysql -p
/opt/open-xchange/sbin/initconfigdb --configdb-pass=$OPENXCHANGE_MYSQL_PWD
/opt/open-xchange/sbin/oxinstaller --servername=oxserver --configdb-pass=$OPENXCHANGE_MYSQL_PWD --master-pass=$OX_ADMIN_MASTER_PASSWORD
echo "Restart services..."
/etc/init.d/open-xchange-groupware restart
/etc/init.d/open-xchange-admin start
/etc/init.d/mysql restart
/etc/init.d/cyrus2.2 restart
/etc/init.d/saslauthd restart
/etc/init.d/postfix restart
/etc/init.d/apache2 restart
/opt/open-xchange/sbin/registerserver -n oxserver -A oxadminmaster -P $OX_ADMIN_MASTER_PASSWORD
mkdir /var/opt/filestore
chown open-xchange:open-xchange /var/opt/filestore
/opt/open-xchange/sbin/registerfilestore -A oxadminmaster -P $OX_ADMIN_MASTER_PASSWORD \
-t file:///var/opt/filestore
/opt/open-xchange/sbin/registerdatabase -A oxadminmaster -P $OX_ADMIN_MASTER_PASSWORD \
-n oxdatabase -p $OPENXCHANGE_MYSQL_PWD -m true
/opt/open-xchange/sbin/createcontext -A oxadminmaster -P $OX_ADMIN_MASTER_PASSWORD -c 1 \
-u oxadmin -d "Context Admin" -g Admin -s User -p $OX_ADMIN_PASSWORD -L defaultcontext \
-e oxadmin@$DOMAIN -q 1024 --access-combination-name=all
/opt/open-xchange/sbin/createuser -c 1 -A oxadmin -P $OX_ADMIN_PASSWORD -u testuser \
-d "Test User" -g Test -s User -p secret -e testuser@$DOMAIN --imaplogin testuser --imapserver 127.0.0.1 --smtpserver 127.0.0.1
/etc/init.d/open-xchange-admin restart
/etc/init.d/open-xchange-groupware restart
echo "Fini! Visitez http://`hostname`.$DOMAIN/ox6/ et enregistrez vous en tant que testuser/secret pour tester l'installation"
Deux impressions d'écran:
Prochain essai (complet celui là) ce sera horde.
Commentaires
Bonjour,
J'ai exécuté le script d'installation. j'obtiens une erreur 503 au lancement sur la page du server ox6
Error: 503 - Service Temporarily Unavailable
ci-joint qq msg du terminal :
Restarting web server: apache2 ... waiting .
server could not be registered:
Error: connection failed to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connexion refusée
mkdir: ne peut créer le répertoire `/var/opt/filestore': Le fichier existe.
filestore could not be registered:
Server response:
OXUtil_V2
database could not be registered:
Server response:
OXUtil_V2
context 1 could not be created:
Server response:
OXContext_V2
user in context 1 could not be created:
Server response:
OXUser_V2
A bientôt
Cordialement
Latisane
Bonjour,
Je viens de retester le script.
Le problème vient du fait que le dépot de sources pour débian Lenny n'existe plus. (http://download.opensuse.org/reposi... /)
Je vois cependant qu'il y a un dépot pour xubuntu, j'imagine qu'il y a juste le sources.list http://download.opensuse.org/reposi...
fourni par ce script à adapter pour que ça fonctionne.
Je met en entête de ce billet qu'il est "Outdated"
deb http://software.open-xchange.com/OX... /
ah oui, ils ont remis les paquets pour Lenny
J'aimais bien l'interface d'OX, même si je ne l'ai pas déployé. A l'occasion, je re regarderai voir s'il y a des nouveautés
blog bien référencé
sur l'erreur de connection 503
apache doit avoir les droit de lecture sur les dossiers open xchange dant /opt et /var