Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Galeries / Installer la galerie photo Piwigo sur Debian

Installer la galerie photo Piwigo sur Debian

Par Pierre-Yves Landuré Dernière modification 25/09/2017 19:48

Piwigo est une gallerie photo PHP conçue pour être légère et simple d'utilisation. Ses fonctionnalités peuvent être étendues à l'aide de plugins.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Ce guide est testé avec ces versions de Piwigo:

  • 2.5.1

    Pré-requis

    Ce guide nécessite :

    Paramètres

    Renseignez le nom de domaine de l'application:

    domain="photos.domain.com"

    Renseignez le nom d'hôte du serveur MySQL:

    mysqlHost="localhost"

    Si le serveur MySQL n'est pas local, l'outil mysql-tools essaiera de s'y connecter avec le client MySQL, ou, en cas d'échec de connexion, via une connexion SSH.

    Renseignez le nom du certificat SSL à utiliser pour chiffrer l'application avec HTTPS (créé via la procédure Créer un certificat SSL / TLS sur Debian ou via Let's Encrypt) (optionnel, recommandé):

    sslKeyName="auto"

    Installation

    Déterminez le chemin d'installation:

    installPath="/opt/piwigo/${domain}"

    Déterminez le chemin des données:

    dataPath="/var/lib/piwigo/${domain}"

    Créez les dossiers:

    command mkdir --parent "$(command dirname "${installPath}")"
    command mkdir --parent "${dataPath}"

    Préparation de l'environnement

    Installez les logiciels nécessaires:

    command apt-get install php5-mysql php5-gd php5-imagick unzip apg

    Adaptez la configuration PHP aux besoins de l'outil:

    command php-tools --for="piwigo" --set "upload_max_filesize" "32M"
    command php-tools --for="piwigo" --set "post_max_size" "36M"

    Rechargez la configuration de PHP:

    ${cmdProxy} php-tools --reload

    Mise en place de l'application

    Téléchargez la dernière version de l'application:

    command wget 'http://piwigo.org/download/dlcounter.php?code=latest' \
    --output-document='/tmp/piwigo.zip'

    Décompressez l'archive obtenue:

    command unzip -d '/tmp/piwigo' '/tmp/piwigo.zip'

    Déplacez le nouveau dossier vers son emplacement final:

    command mv '/tmp/piwigo/piwigo' "${installPath}"

    Supprimez l'archive téléchargée:

    command rm '/tmp/piwigo.zip'
    command rmdir '/tmp/piwigo'

    Réinitialisez les droits d'accès:

    command chown -R root:root "${installPath}"
    command chmod -R go-w "${installPath}"

    Créez le fichier de configuration, et autorisez sa modification par le serveur HTTP:

    command touch "${installPath}/local/config/database.inc.php"
    command chown www-data:www-data "${installPath}/local/config/database.inc.php"

    Créez un fichier .htaccess pour activer la réécriture d'URL avec Apache 2:

    command echo 'AcceptPathInfo On
    Options +MultiViews
    <IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^([^/.]+)/?(.*)$ /$1.php/$2 [QSA,L]
    </IfModule>' \
    > "${installPath}/.htaccess"

    Ajustez la configuration de l'application en conséquence:

    echo '<?php // Url Rewriting
    $conf["question_mark_in_urls"] = false;
    $conf["php_extension_in_urls"] = false;
    $conf["category_url_style"] = "id-name";
    $conf["picture_url_style"] = "id-file";
    $conf["tag_url_style"] = "id-tag";
    ' > "${installPath}/local/config/config.inc.php"

    Mise en conformité avec la LSB

    Mettez en place une architecture de dossier conforme à la LSB:

    ${cmdProxy} mkdir --parent "${dataPath}/local"
    while read writeablePath; do
      completePath="${installPath}/${writeablePath}"
    lsbPath="${dataPath}/${writeablePath}"
    if [ -e "${completePath}" -a ! -h "${completePath}" ]; then
    command mv "${completePath}" "${lsbPath}"
    command ln -s "${lsbPath}" "${completePath}"
    command chown -R www-data:www-data "${lsbPath}"
    fi
    done <<< "data
    local/combined
    local/watermarks
    upload
    plugins
    themes
    language"

    Création de la base de données

    Créez la base de données:

    command mysql-tools --server="${mysqlHost}" --with-ssh \
    --auto-hosts --db-prefix="piwigo" --create "${domain}"

    Notez les informations de connexion fournies par la commande.

    Choisissez un préfixe de nom des tables aléatoire (pour une meilleure sécurité):

    echo "Préfixe des noms des tables sécurisé: $(command apg -q -a 0 -n 1 -M NCL)_"

    Mise en place de l'hôte virtuel

    Créez la configuration du serveur HTTP:

    if [[ -n "${sslKeyName}" && ( -e "/etc/ssl/private/${sslKeyName}.key" || "${sslKeyName}" = 'auto' ) ]]; then
      command a2tools --ssl="${sslKeyName}" --overrides="FileInfo Options=Multiviews" "${domain}" "${installPath}"
    else
    command a2tools --overrides="FileInfo Options=Multiviews" "${domain}" "${installPath}"
    fi

    L'outil est maintenant disponible sur le domaine spécifié en HTTP ou HTTPS si possible.

    Configurez l'application à l'aide du script d'installation, disponible à l'adresse fournie par:

    echo "http://${domain}/install.php"
    

    Sécurisation

    Une fois l'installation terminée, sécurisez l'application:

    command chown root:root "${installPath}/local/config/database.inc.php"
    command rm "${installPath}/install.php"
    command rm -r "${installPath}/install"

    Sauvegardes

    Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):

    command backup-manager-tools add "${installPath}"
    command backup-manager-tools add "${dataPath}"

    N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).

    Mise à jour

    Renseignez le domaine de l'installation obsolète:

    domain="photos.domain.com"

    Déterminez le chemin d'installation:

    installPath="/opt/piwigo/${domain}"
    

    Déterminez le chemin des données:

    dataPath="/var/lib/piwigo/${domain}"

    Sauvegardez l'installation obsolète:

    if [ -e "${installPath}.old" ]; then
    command rm -r "${installPath}.old"
    fi
    command cp -a "${installPath}" "${installPath}.old"

    Téléchargez la dernière version de l'application:

    command wget 'http://piwigo.org/download/dlcounter.php?code=latest' \
    --output-document='/tmp/piwigo.zip'

    Décompressez l'archive obtenue:

    command unzip -d '/tmp/piwigo' '/tmp/piwigo.zip'

    Déplacez le nouveau dossier vers son emplacement final:

    command cp -a '/tmp/piwigo/piwigo/'* "${installPath}"
    command cp -a '/tmp/piwigo/piwigo/language' "${dataPath}"
    command cp -a '/tmp/piwigo/piwigo/plugins' "${dataPath}"
    command cp -a '/tmp/piwigo/piwigo/themes' "${dataPath}"

    Réinitialisez les droits d'accès:

    command chown -R root:root "${installPath}"
    command chmod -R go-w "${installPath}"
    command chown -R www-data:www-data "${dataPath}"

    Lancez la mise à jour en vous connectant en tant qu'administrateur à l'URL fournie par:

    command echo "http://${domain}/"

    Une fois la mise à jour terminée, sécurisez l'application:

    command chown root:root "${installPath}/local/config/database.inc.php"
    command rm "${installPath}/install.php"
    command rm -r "${installPath}/install"

    Vérifiez que tout fonctionne correctement.

    Supprimez les sauvegardes:

    if [ -e "${installPath}.old" ]; then
    command rm -r "${installPath}.old"
    fi

    Supprimez l'archive téléchargée:

    command rm '/tmp/piwigo.zip'
    command rm -r '/tmp/piwigo'

    Remerciements

    • Merci aux développeurs de Piwigo.