Installer Gallery 2 sur Debian 4.0 Etch
Gallery est un logiciel libre de gestion de galleries photos Web écrit en PHP. Sa très belle interface, et son évolution rapide en fait un incontournable dans ce domaine. Cet article vous guide au travers de l'installation de Gallery 2 sur Debian 4.0 Etch.
Installation
En premier lieu, il vous faut un serveur HTTP avec support du PHP. Vous pouvez par exemple utiliser Lighttpd comme décrit dans mon guide Installer Lighttpd et PHP 5 sur Debian 4.0 Etch.
Nous installons en plus les modules nécessaires au bon fonctionnement de Gallery 2 :
/usr/bin/apt-get install php5-mysql php5-gd mysql-client-5.0 zip unzip \
dcraw ffmpeg imagemagick netpbm jhead apg
Et augmentez la limite mémoire de PHP 5:
if [ -e /etc/php5/cgi/php.ini ]; then
/bin/sed -i -e 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/cgi/php.ini
fi
if [ -e /etc/php5/apache2/php.ini ]; then
/bin/sed -i -e 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/apache2/php.ini
fi
Une fois ceci fait, n'oubliez pas de redémarrer votre serveur HTTP afin de prendre en compte le nouveau module. Par exemple, pour LigHTTPd:
/etc/init.d/lighttpd force-reload
Vous devez ensuite télécharger la dernière version de Gallery 2. Pour ce faire, renseignez la version que vous souhaitez télécharger :
VERSION=2.2.5
Et lancez le téléchargement :
/usr/bin/wget http://downloads.sourceforge.net/gallery/gallery-$VERSION-full.tar.gz \
--output-document=/tmp/gallery-$VERSION.tar.gz
Une fois le téléchargement terminé, décompressez le fichier à l'emplacement adéquat :
/bin/tar --directory=/opt -xzf /tmp/gallery-$VERSION.tar.gz
Nous configurons les permissions des différents répertoires:
/bin/chown -R root:root /opt/gallery2
/bin/chown -R www-data:www-data /opt/gallery2/themes
/bin/chown -R www-data:www-data /opt/gallery2/modules
/bin/chmod -R o-w /opt/gallery2
Et créez le lien symbolique adéquat pour le mettre en ligne :
ln -s /opt/gallery2 /var/www/gallery2
Une fois ceci fait, vous pouvez supprimer l'archive téléchargée :
/bin/rm /tmp/gallery-$VERSION.tar.gz
Configuration
Nous devons maintenant configurer Gallery. En premier lieu, nous créons le fichier de configuration à partir du modèle:
En premier lieu, nous créons le dossier destiné à stocker les images:
/bin/mkdir --parent /var/lib/gallery2/g2data
/bin/chown -R www-data:www-data /var/lib/gallery2
En premier lieu, nous créons le fichier de configuration, et nous le rendons inscriptible par le script PHP d'installation:
/bin/cp /opt/gallery2/install/config.php-template /opt/gallery2/config.php
/bin/chown www-data:www-data /opt/gallery2/config.php
Une fois ceci fait, nous créons la base de données que va utiliser Gallery. Pour ce faire, je vous conseille de suivre mon guide MySQL sur Debian 4.0 Etch.
Attention : Si vous avez suivi mon guide, vous pouvez passer ces lignes de commandes, sinon, remplacer les informations en gras par celles correspondant à votre base de données MySQL :
MYSQL_HOST=localhost
MYSQL_DB=GALLERY2_DATABASE
MYSQL_USERNAME=gallery2_username
MYSQL_USERPWD=gallery2_password
Une fois la base de donnée créée, nous reprenons le court normal des choses. En premier lieu, nous plaçons une valeur par défaut pour le nom d'hôte du serveur de la base de données:
if [ -z "$MYSQL_HOST" ]; then
MYSQL_HOST=localhost
fi
Nous générons des préfixes de tables et de colonne aléatoires afin d'améliorer la sécurité:
TABLE_PREFIX=$(/usr/bin/apg -q -a 0 -n 1 -M NCL)_
COLUMN_PREFIX=$(/usr/bin/apg -q -a 0 -n 1 -M NCL)_
Nous configurons maintenant Gallery 2 pour utiliser la base de données et le dossier de stockage des images que nous venons de créer:
/bin/sed -i -e "s/^\(.*setConfig('data.gallery.base',\).*/\1 '\/var\/lib\/gallery2\/g2data');/" \
-e "s/^\(\$storeConfig\['type'\]\).*/\1 = 'mysqli';/" \
-e "s/^\(\$storeConfig\['hostname'\]\).*/\1 = '$MYSQL_HOST';/" \
-e "s/^\(\$storeConfig\['database'\]\).*/\1 = '$MYSQL_DB';/" \
-e "s/^\(\$storeConfig\['username'\]\).*/\1 = '$MYSQL_USERNAME';/" \
-e "s/^\(\$storeConfig\['password'\]\).*/\1 = '$MYSQL_USERPWD';/" \
-e "s/^\(\$storeConfig\['tablePrefix'\]\).*/\1 = '$TABLE_PREFIX';/" \
-e "s/^\(\$storeConfig\['columnPrefix'\]\).*/\1 = '$COLUMN_PREFIX';/" \
/opt/gallery2/config.php
Une fois ceci fait, connectez-vous à votre nouveau site d'image:
Pour effectuer la vérification d'identité, commencez par renseigner le code qui vous est fourni:
GALLERY_CODE=the_very_long_and_strange_code
Et créez le fichier nécessaire:
/bin/echo $GALLERY_CODE > /opt/gallery2/login.txt
Par la suite, configurez Gallery 2 selon vos besoins. Les étapes de configuration du répertoire de stockage et de la base de données devrait être configurées correctement. Pour une installation standard, il vous faut seulement préciser le mot de passe et l'adresse email du compte admin.
Fin de l'installation
Une fois Gallery paramétré selon vos besoin, nous sécurisons l'installation:
/bin/chown root:root /opt/gallery2/config.php
/bin/rm /opt/gallery2/login.txt
/bin/rm -r /opt/gallery2/install
/bin/rm -r /opt/gallery2/upgrade
/bin/rm -r /opt/gallery2/README.html
/bin/rm -r /opt/gallery2/LICENSE
/bin/rm -r /opt/gallery2/MANIFEST
Si vous utilisez Apache 2, vous pouvez limiter l'accès aux sources PHP:
/bin/echo '<Files ~ "\.(inc|class)$">
Deny from all
</Files>' | /usr/bin/tee -a /opt/gallery2/.htaccess
Vous devriez maintenant avoir une installation fonctionnelle de Gallery 2. Par la suite, je vous conseille de créer vos utilisateurs, ainsi que leur galeries d'images privées, et d'activer les thèmes disponibles (le thème Ajaxian est particulièrement beau).
Mise à jour
Voici la procédure à suivre pour mettre à jour votre installation de Gallery 2 lors de la sortie d'une nouvelle version. Je tiens à vous rappeler que tenir à jour une application Web est très important car les mises à jour apportent des corrections aux failles de sécurités en plus de nouvelles fonctionnalitées.
En premier lieu, installez les logiciels nécessaire à la mise à jour:
/usr/bin/apt-get install mysql-client patch diff
Renseignez le numéro de la nouvelle version que nous souhaitons installer:
VERSION=2.3
Et lancez le téléchargement :
/usr/bin/wget http://downloads.sourceforge.net/gallery/gallery-$VERSION-full.tar.gz \
--output-document=/tmp/gallery-$VERSION.tar.gz
Sauvegarde de la base de données et de l'installation actuelle
Nous allons maintenant récupérer les informations de connexion à la base de données MySQL:
MYSQL_HOST=$(/bin/grep "storeConfig.*hostname" /opt/gallery2/config.php | /bin/sed -e "s/^.*=[ ]*'\(.*\)'.*$/\1/")
MYSQL_DB=$(/bin/grep "storeConfig.*database" /opt/gallery2/config.php | /bin/sed -e "s/^.*=[ ]*'\(.*\)'.*$/\1/")
MYSQL_USERNAME=$(/bin/grep "storeConfig.*username" /opt/gallery2/config.php | /bin/sed -e "s/^.*=[ ]*'\(.*\)'.*$/\1/")
MYSQL_USERPWD=$(/bin/grep "storeConfig.*password" /opt/gallery2/config.php | /bin/sed -e "s/^.*=[ ]*'\(.*\)'.*$/\1/")
Et nous créons une sauvegarde de la base de données de Gallery 2:
/usr/bin/mysqldump --host=${MYSQL_HOST} --user=${MYSQL_USERNAME} --password=${MYSQL_USERPWD} ${MYSQL_DB} > ${HOME}/gallery2-backup.sql
Sauvegardez votre installation actuelle de Gallery 2:
/bin/mv /opt/gallery2 /opt/gallery2.old
Conservez toutefois vos modules et themes installés, ainsi que votre configuration:
/bin/mkdir /opt/gallery2
/bin/cp -a /opt/gallery2.old/config.php /opt/gallery2/
/bin/cp -a /opt/gallery2.old/themes /opt/gallery2/
/bin/cp -a /opt/gallery2.old/modules /opt/gallery2/
Mise en place de la mise à jour
Mettez en place la nouvelle version de Gallery 2 en décompressant l'archive à l'emplacement adéquat:
/bin/tar --directory=/opt -xzf /tmp/gallery-$VERSION.tar.gz
Nous configurons les permissions des différents répertoires et fichiers:
/bin/chown -R root:root /opt/gallery2
/bin/chown -R www-data:www-data /opt/gallery2/config.php
/bin/chown -R www-data:www-data /opt/gallery2/themes
/bin/chown -R www-data:www-data /opt/gallery2/modules
/bin/chmod -R o-w /opt/gallery2
Une fois ceci fait, connectez-vous à votre installation de Gallery 2:
Attention: La procédure de mise à jour vous demande le mot de passe que vous avez saisi pour l'installation de Gallery 2. Si vous ne vous en souvenez plus, vous pouvez l'obtenir avec la ligne de commande suivante:
/bin/grep '^$gallery->setConfig.*setup.password' /opt/gallery2/config.php | /bin/sed -e "s/^.*,[ ]*'\(.*\)'.*$/\1/"
Remarque 1: La procédure de mise à jour peut vous informer que certains fichiers sont devenus inutiles et vous propose de les supprimer à l'aide d'un script. Si vous ne voulez pas vous embéter à copier le script sur le serveur à l'aide d'un scp, vous pouvez copier / coller les lignes de commandes du script directement dans votre accès SSH. Ce n'est vraiment pas recommandé, mais ça marche :). Toutefois, si vous souhaitez copier le script sur le serveur, voici les lignes de commande qui vous permettront de l'utiliser facilement:
/bin/mv cleanup.sh /opt/gallery2
cd /opt/gallery2
/bin/sh cleanup.sh
/bin/rm cleanup.sh
Remarque 2: Ignorez l'étape de sauvegarde de la base de données de la procédure de mise à jour, car nous avons déjà procédé à une sauvegarde.
Fin de la mise à jour
Une fois Gallery mis à jour, nous sécurisons l'installation:
/bin/chown root:root /opt/gallery2/config.php
/bin/rm -r /opt/gallery2/install
/bin/rm -r /opt/gallery2/upgrade
/bin/rm -r /opt/gallery2/README.html
/bin/rm -r /opt/gallery2/LICENSE
/bin/rm -r /opt/gallery2/MANIFEST
Si vous utilisez Apache 2, vous pouvez limiter l'accès aux sources PHP:
/bin/echo '<Files ~ "\.(inc|class)$">
Deny from all
</Files>' | /usr/bin/tee -a /opt/gallery2/.htaccess
Une fois ceci fait, vous pouvez supprimer l'archive téléchargée :
/bin/rm /tmp/gallery-$VERSION.tar.gz
Remerciements
- Merci aux développeurs de Gallery 2.
Lien Gallery
Il ne semble que le lien de téléchargement a changer (http://sourceforge.net/projects/gallery/files/gallery3/3.0/gallery-3.0.zip), et le format d'archive aussi.
Cordialement...