Installer le serveur de campagnes publicitaires OpenX sur Debian
OpenX est un outil PHP permettant de gérer les campagnes publicitaires. Il vous permet de centraliser les informations concernant vos campagnes publicitaires affichées sur un ou plusieurs sites. Cet outil est développé par ceux qui ont créés l'outil de statistiques Piwik. Ce guide vous aide au travers de son installation sur Debian.
Pré-requis
Ce guide nécessite un serveur MySQL disposant du script mysql-tools disponible dans le guide Installer et configurer MySQL sur Debian.
Ce guide nécessite un serveur HTTP avec support du PHP disposant au choix d'un des scripts suivant :
- Le script a2tools disponible dans mon guide Installer Apache 2 sur Debian.
- Le script lighty-tools disponible dans mon guide Installer Lighttpd et PHP 5 sur Debian.
Paramètres
Renseignez le nom de domaine ou sera disponible l'application :
DOMAIN="ads.domaine-exemple.fr"
Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur) :
MYSQL_HOST="localhost"
Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.
Installation
Installation des dépendances logicielles
Installez les extensions PHP et logiciels nécessaires :
command apt-get install php5-mysql php5-gd php5-cli
Augmentez la limite mémoire de PHP :
MEMORY_LIMIT="256M" if [ -e "/etc/php5/conf.d/memory-limit.ini" ]; then CURRENT_MEMORY_LIMIT=$(command grep 'memory_limit' /etc/php5/conf.d/memory-limit.ini \ | command cut --delimiter='=' --fields='2-' \ | command sed -e 's/^[ \t]*//g') if [ "$(echo "${CURRENT_MEMORY_LIMIT}" | command sed -e 's/M$//g')" \ -gt "$(echo "${MEMORY_LIMIT}" | command sed -e 's/M$//g')" ]; then MEMORY_LIMIT="${CURRENT_MEMORY_LIMIT}" fi fi echo "; Memory limit for PHP scripts. memory_limit = ${MEMORY_LIMIT}" > "/etc/php5/conf.d/memory-limit.ini"
Appliquez les paramètres PHP spécifiques à l'application :
TIMEZONE=$(command cat /etc/timezone) echo "; PHP settings for OpenX magic_quotes_gpc = Off date.timezone = ${TIMEZONE}" > /etc/php5/conf.d/openx.ini
Redémarrez votre serveur HTTP :
command test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload command test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
Installation de l'application
Obtenez le numéro de la dernière version de l'application :
VERSION="$(command wget --quiet --output-document=- "http://download.openx.org/" \ | command sed -e 's/<[^>]*>/\n/g' \ | command grep -e 'openx-.*\.tar\.gz' \ | command sort | command tail -n 1 \ | command sed -e 's/openx-\(.*\)\.tar\.gz/\1/')"
Téléchargez les sources de cette version :
command wget "http://download.openx.org/openx-${VERSION}.tar.gz" \ --output-document="/tmp/openx.tar.gz"
Décompressez l'archive ainsi obtenue:
command tar --directory "/tmp" -xzf "/tmp/openx.tar.gz"
Déplacez le dossier ainsi obtenu vers l'emplacement final de l'installation :
command mv "/tmp/openx-${VERSION}" "/opt/${DOMAIN}"
Déplacez les dossiers var et images vers des emplacements plus adaptés à la LSB, et autorisez le serveur HTTP à modifier leur contenu :
command mkdir --parent "/var/lib/openx/${DOMAIN}" command mkdir --parent "/var/cache/openx/${DOMAIN}" command mv "/opt/${DOMAIN}/var/cache" "/var/cache/openx/${DOMAIN}/cache" command mv "/opt/${DOMAIN}/var/templates_compiled" "/var/cache/openx/${DOMAIN}/templates_compiled" command ln -s "/var/cache/openx/${DOMAIN}/cache" "/opt/${DOMAIN}/var/cache" command ln -s "/var/cache/openx/${DOMAIN}/templates_compiled" "/opt/${DOMAIN}/var/templates_compiled" command mv "/opt/${DOMAIN}/var" "/var/lib/openx/${DOMAIN}/var" command mv "/opt/${DOMAIN}/www/images" "/var/lib/openx/${DOMAIN}/images" command mv "/opt/${DOMAIN}/plugins" "/var/lib/openx/${DOMAIN}/plugins" command ln -s "/var/lib/openx/${DOMAIN}/var" "/opt/${DOMAIN}/var" command ln -s "/var/lib/openx/${DOMAIN}/images" "/opt/${DOMAIN}/www/images" command ln -s "/var/lib/openx/${DOMAIN}/plugins" "/opt/${DOMAIN}/plugins" command chown -R www-data:www-data "/var/lib/openx/${DOMAIN}" command chown -R www-data:www-data "/var/cache/openx/${DOMAIN}" command chown -R www-data:www-data "/opt/${DOMAIN}/www/admin/plugins"
Effacez l'archive téléchargée :
command rm "/tmp/openx.tar.gz"
Créez la configuration du serveur HTTP pour votre domaine :
if [ -x "/usr/bin/a2tools" ]; then command a2tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/www/" fi if [ -x "/usr/bin/lighty-tools" ]; then command lighty-tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/www/" fi
Votre application devrait maintenant être disponible sur le nom de domaine que vous lui avez destiné.
Création de la base de données
Créez la base de données :
if [ "${MYSQL_HOST}" = "localhost" ]; then MYSQL_PARAMS=$(command mysql-tools create-domain-db "${DOMAIN}") else command echo "Saisissez le mot de passe de l'utilisateur root MySQL :" command read PASSWORD MYSQL_PARAMS=$(command ssh "root@${MYSQL_HOST}" "command mysql-tools create-domain-db '${DOMAIN}' '$(command cat /etc/mailname)' '${PASSWORD}'") fi
Affichez les paramètres de la nouvelle base de données et notez-les pour utilisation dans la suite de ce guide :
echo "${MYSQL_PARAMS}"
Configuration de OpenX
Accédez à la configuration de l'application en utilisant l'URL affichée par la commande :
echo "http://${DOMAIN}/"
Important : Pensez à désactiver Adblock Plus pour votre installation OpenX, si vous souhaitez que tout fonctionne correctement.
Mise en place de la maintenance planifiée
OpenX nécessite l'exécution de tâches de maintenances. Ces taches peuvent être exécutées via un script PHP.
Une fois ceci fait, mettez en place le script CRON de maintenance :
command echo "# Daily OpenX maintenance for ${DOMAIN}. 0 * * * * www-data [ -x /usr/bin/php -a -f /opt/${DOMAIN}/scripts/maintenance/maintenance.php ] && command php /opt/${DOMAIN}/scripts/maintenance/maintenance.php ${DOMAIN}" \ > "/etc/cron.d/openx-${DOMAIN}"
Rechargez cron pour prendre ne compte la nouvelle configuration :
/etc/init.d/cron reload
Sauvegardes
Pour sauvegarder votre 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 update-bm-folders add "/opt/${DOMAIN}" command update-bm-folders add "/var/lib/openx/${DOMAIN}"
Important: Sauvegarder les fichiers ne suffit pas ! Il faut aussi sauvegarder la base de données. La procédure pour ce faire est disponible dans mon article MySQL sur Debian.
Mise à jour
Renseignez le numéro de la version vers laquelle vous souhaitez mettre à jour :
VERSION=2.8.4
Téléchargez les sources de cette version :
/usr/bin/wget http://download.openx.org/openx-${VERSION}.tar.gz \ --output-document=/tmp/openx.tar.gz
Décompressez l'archive ainsi obtenue:
/bin/tar --directory /tmp -xzf /tmp/openx.tar.gz
Créez une copie de sauvegarde de l'installation actuelle :
/bin/cp -a /opt/openx /opt/openx.old
Copiez le dossier ainsi obtenu vers l'emplacement actuel de l'installation :
/bin/cp -r /tmp/openx-${VERSION}/* /opt/openx/
Nous remettons en place les permissions adéquates :
/bin/touch /op/openx/var/UPGRADE /bin/chown -R www-data:www-data /var/lib/openx /bin/chown -R www-data:www-data /var/cache/openx /bin/chown -R www-data:www-data /opt/openx/www/admin/plugins
Vérifiez que votre installation d'OpenX fonctionne correctement.
Si tout s'est bien passé, supprimez les fichiers utilisés pour la mise à jour.
/bin/rm -r "/tmp/openx-${VERSION}" /bin/rm -r /tmp/openx.tar.gz /bin/rm -r /opt/openx.old
Résolution des problèmes
Les feuilles de styles ne se chargent pas
Si les feuilles de styles ne se chargent pas dans votre interface d'administration, il vous faut désactiver l'option de compression gzip du contenu. Cela se fait depuis le menu "Paramètres généraux -> Paramètres de l'interface utilisateur". Vous devez y décocher l'option "Utiliser la compression de contenu GZIP".
Source : Merci aux personnes ayant répondu à Css Its Not Loading To The Admin..., No style admin page.
Vérifier que le serveur de diffuse pas de code malveillant
Si votre serveur OpenX a été victime d'une faille de sécurité, vous pouvez vous assurez que le serveur ne diffuse pas de code malveillant en suivant la procédure décrite par l'article Security Update: How to Secure your OpenX installation sur le blog OpenX.
Remerciements
- Merci aux développeurs d'OpenX.
- Merci à l'auteur du guide How to install the OpenX ad server.