Installer Plone sur Debian
Cet article vous donne la procédure d'installation de Plone et supérieur sur un système basé sur la distribution Debian.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
- Ubuntu 11.04 Natty Narwhal
- Ubuntu 11.10 Oneiric Ocelot
Ce guide est testé avec ces versions de Plone:
- 4.2.5
Paramètres
Choisissez le nom la future instance :
INSTANCE_NAME="zeocluster"
Installation
Déterminez le chemin de l'instance:
INSTALL_PATH="/var/lib/plone/${INSTANCE_NAME}"
Déterminez le chemin des journaux:
LOG_PATH="/var/log/plone/${INSTANCE_NAME}"
Déterminez le chemin des binaires:
BIN_PATH="/usr/local/Plone"
Obtenez le chemin de la racine des instances:
INSTANCES_ROOT_PATH="$(command dirname "${INSTALL_PATH}")"
Créez les dossiers:
command mkdir --parent "${INSTANCES_ROOT_PATH}"
command mkdir --parent "${LOG_PATH}"
Préparation de l'environnement
Installez la la version de libreadline adaptée au système:
if [ -z "$(command apt-cache search libreadline5-dev)" ]; then # For Ubuntu 11.10 Oneiric Ocelot and after command apt-get install libreadline-gplv2-dev else command apt-get install libreadline5-dev fi
Installez les logiciels nécessaires:
command apt-get install build-essential libssl-dev libxml2-dev libxslt1-dev \ libbz2-dev zlib1g-dev python-distribute python-dev \
libjpeg62-dev python-imaging wv poppler-utils rsync
Note: si cela ne suffit pas, reportez vous à Ubuntu / Debian Package Installation.
Créez l'utilisateur système plone:
command adduser --system --group --shell "/bin/sh" \ --no-create-home --home "${INSTANCES_ROOT_PATH}" "plone"
Mise en place de l'application
Détectez la dernière version de Plone:
SOURCE_URL=$(command wget "http://plone.org/download" \
--quiet --output-document=- \
| command grep --max-count=1 "UnifiedInstaller" \
| command sed -e 's/.*href="\([^"]*\)".*/\1/')
VERSION=$(command echo "${SOURCE_URL}" \
| command sed -e 's/.*Plone-\([^-]*\)-.*/\1/')
VERSION_MAJOR=$(echo ${VERSION} \
| /bin/sed -e 's/^\([0-9]*\.[0-9]*\)\..*$/\1/') VERSION_MINOR=$(echo ${VERSION} \
| /bin/sed -e 's/^\([0-9]*\.[0-9]*\.[0-9]*\)[^0-9].*$/\1/')
Téléchargez les sources:
command wget --no-check-certificate "${SOURCE_URL}" \ --output-document="/tmp/Plone-UnifiedInstaller.tgz"
Décompressez l'archive:
command tar --directory="/tmp" -xzf "/tmp/Plone-UnifiedInstaller.tgz"
Placez-vous dans le dossier obtenu:
pushd "/tmp/Plone-${VERSION_MINOR}-UnifiedInstaller"
Si la version de Plone est 4.1.2, appliquez le patch désactivant SSLv2 (nécessaire à l'installation sur Ubuntu Oneiric Ocelot, et patch de sécurité recommandé):
if [ ${VERSION_MINOR} = '4.1.2' ]; then
command wget 'http://dev.plone.org/raw-attachment/ticket/12369/plone-4.1.2-ui-oneiric.patch' \
--output-document='/tmp/plone-4.1.2-ui-oneiric.patch'
command patch -p1 < '/tmp/plone-4.1.2-ui-oneiric.patch'
fi
Préparez les dossiers destinés à contenir l'installation :
command ln -s "${BIN_PATH}/buildout-cache" "${INSTANCES_ROOT_PATH}/buildout-cache"
Installez cluster ZEO. Un cluster ZEO facilite la répartition de charge, et peut profiter des processeurs multicoeurs:
command sh install.sh zeo \ --target="${BIN_PATH}" \ --instance="${INSTALL_PATH}"
Mémorisez l'identifiant et le mot de passe fournis à la fin du processus d'installation. Il s'agit du compte d'administration du serveur.
Mise en conformité avec la LSB
Modifiez l'emplacement des journaux selon les recommandations de la LSB:
command mv "${INSTALL_PATH}/var/zeoserver" "${LOG_PATH}" command ln -s "${LOG_PATH}/zeoserver" "${INSTALL_PATH}/var/zeoserver" command mv "${INSTALL_PATH}/var/client"{1,2} "${LOG_PATH}" command ln -s "${LOG_PATH}/client"{1,2} "${INSTALL_PATH}/var/"
Configuration du système
Autorisez l'utilisateur système 'plone' à exécuter des commandes:
command usermod --shell='/bin/sh' 'plone'
Mettez en place une sauvegarde quotidienne et un pack hebdomadaire:
command echo "# Plone cron.d setup.
# daily backup.
15 1 * * * plone test -x '${INSTALL_PATH}/bin/backup' && ${INSTALL_PATH}/bin/backup --quiet
# weekly pack.
15 0 * * 7 plone test -x '${INSTALL_PATH}/bin/zeopack' && ${INSTALL_PATH}/bin/zeopack" \
> "/etc/cron.d/plone-${INSTANCE_NAME}"
Rechargez la configuration de cron:
/etc/init.d/cron reload
Installez le script init.d démarrant l'instance et configurez la rotation des journaux :
command wget "https://raw.github.com/biapy/howto.biapy.com/master/plone/plone-logrotate.d"\ --no-check-certificate --output-document="/etc/logrotate.d/plone-${INSTANCE_NAME}" command wget "https://raw.github.com/biapy/howto.biapy.com/master/plone/plone-default" \ --no-check-certificate --output-document="/etc/default/plone-${INSTANCE_NAME}" command wget "https://raw.github.com/biapy/howto.biapy.com/master/plone/plone-init.d" \ --no-check-certificate --output-document="/etc/init.d/plone-${INSTANCE_NAME}" command chmod +x "/etc/init.d/plone-${INSTANCE_NAME}" command sed -i \
-e "s|%INSTANCE_NAME%|${INSTANCE_NAME}|g" \
-e "s|%INSTALL_PATH%|${INSTALL_PATH}|g" \
-e "s|%LOG_PATH%|${LOG_PATH}|g" \
"/etc/logrotate.d/plone-${INSTANCE_NAME}" \
"/etc/default/plone-${INSTANCE_NAME}" \
"/etc/init.d/plone-${INSTANCE_NAME}"
Lancez l'instance au démarrage du système:
command update-rc.d "plone-${INSTANCE_NAME}" defaults
Démarrez l'instance:
/etc/init.d/plone-${INSTANCE_NAME} start
Fin de la configuration et premier accès au site Plone
Pour prévenir un problème de support JPEG avec Pillow, assurez-vous d'utiliser la version 1.7.8 de cette bibliothèque:
command sed -i -e 's/1\.7\.2/1.7.8/g' "${INSTALL_PATH}/buildout.cfg"
Après avoir ajouté les produits Plone choisis au fichier buildout.cfg, mettez à jour l'installation avec:
command pushd ${INSTALL_PATH} command su plone -c "${INSTALL_PATH}/bin/buildout"
command popd
Redémarrez le serveur Zope:
/etc/init.d/plone-${INSTANCE_NAME} stop /etc/init.d/plone-${INSTANCE_NAME} start
Les deux URL suivantes permettent d'accéder aux deux instances Zope installées:
Sauvegardes
Pour sauvegarder l'installation, je vous propose d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre mon guide:
Installer et configurer Backup Manager sur Debian
Une fois Backup Manager installé, configurez la sauvegarde des fichiers de l'application:
command backup-manager-tools add "${INSTANCES_ROOT_PATH}" command backup-manager-tools add "${BIN_PATH}"
Références
Ce livre peut vous aider:
Remerciements
- Merci aux développeurs du serveur d'applications Python Zope.
- Merci aux développeurs du CMS Plone.
- Merci à Optilude pour son guide Managing projects with zc.buildout.