Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Gestion de fichiers / Installer le gestionnaire de fichiers Pydio/AjaXplorer sur Debian

Installer le gestionnaire de fichiers Pydio/AjaXplorer sur Debian

Par Pierre-Yves Landuré Dernière modification 11/11/2017 09:43

Pydio est un outil permettant de gérer les fichiers présents sur votre serveur via un navigateur Web. Il est léger, simple d'utilisation et permet l'ajout de fichier via le protocole WebDAV.

Ce guide est testé sur:

  • Debian 7.0 Wheezy

Ce guide est testé avec ces versions de Pydio:

  • 5.0.1
  • 5.2.0
  • 6.4.0

Prérequis

Ce guide nécessite :

Ce guide recommande:

Avertissement

Ce guide est incompatible avec ces guides:

Paramètres

Renseignez le nom de domaine où sera disponible l'application:

DOMAIN="pydio.domain.com"

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

MYSQL_HOST="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) (optionnel, recommandé):

SSL_KEY_NAME="${DOMAIN}"

Installation

Déterminez le chemin d'installation:

INSTALL_PATH="/opt/pydio/${DOMAIN}"

Déterminez le chemin des données:

DATA_PATH="/var/lib/pydio/${DOMAIN}"

Déterminez le chemin des journaux:

LOG_PATH="/var/log/pydio/${DOMAIN}"

Déterminez le chemin du cache:

CACHE_PATH="/var/cache/pydio/${DOMAIN}"

Assurez-vous de l'existence des dossiers parents:

command mkdir --parents "$(command dirname "${INSTALL_PATH}")"
command mkdir --parents "$(command dirname "${DATA_PATH}")"
command mkdir --parents "$(command dirname "${LOG_PATH}")"
command mkdir --parents "$(command dirname "${CACHE_PATH}")"

Préparation de l'environnement

Installez les logiciels nécessaires:

command apt-get install php5-mcrypt php5-gd php5-curl php5-imap \
php5-mysql php-pear imagemagick patch git subversion zip unzip

Mettez à jour PEAR:

pear channel-update pear.php.net
pear upgrade PEAR

Installez les modules PEAR utilisés par l'application:

command pear install HTTP_WebDAV_Client
command pear install Mail_mimeDecode
command pear install 'channel://pear.php.net/HTTP_OAuth-0.2.3'
command pear install 'channel://pear.php.net/VersionControl_Git-0.4.4'

Adaptez la configuration PHP aux besoins de l'outil:

command php-tools --for="pydio" --set "upload_max_filesize" "1024M"
command php-tools --for="pydio" --set "post_max_size" "1030M"
command php-tools --for="pydio" --fix "output_buffering" "0"

Rechargez la configuration de PHP:

command service 'php5-fpm' 'restart' 2>'/dev/null'
command service 'apache2' 'force-reload' 2>'/dev/null'
command service 'lighttpd' 'force-reload' 2>'/dev/null'
command service 'nginx' 'force-reload' 2>'/dev/null'

Mise en place de l'application

Téléchargez les sources de la dernière version à l'aide du script sf-downloader:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/tmp/sf-downloader'
SOURCE="$(command bash '/tmp/sf-downloader' --output-directory="${INSTALL_PATH}" --strip-components=1 \
--zip 'ajaxplorer' 'pydio-core-VERSION.zip')"

Mettez en place CKEditor dans l'outil:

CK_SOURCE="$(command bash '/tmp/sf-downloader' --output-directory="${INSTALL_PATH}/plugins/editor.ckeditor" \
--ckeditor --zip 'ckeditor' 'ckeditor_VERSION_standard.zip')"

Mettez en place Plupload dans l'outil:

PLUPLOAD_SOURCE="$(command bash '/tmp/sf-downloader' --strip-components=1 \
--generic='http://www.plupload.com/download' \
--zip 'plupload' 'vVERSION.zip')"
mv "${PLUPLOAD_SOURCE}/js" "${INSTALL_PATH}/plugins/uploader.plupload/plupload"

Mettez en place Jumploader dans l'outil:

command wget 'http://jumploader.com/jar/jumploader_z.jar' \
    --output-document="${INSTALL_PATH}/plugins/uploader.jumploader/jumploader_z.jar"

Autorisez la modification du fichier .htaccess par l'installer:

chown www-data:www-data "${INSTALL_PATH}/.htaccess"

Conformité avec la LSB

Ajustez l'application pour obtenir une meilleure conformité avec la LSB :

if [ ! -h "${INSTALL_PATH}/data/cache" ]; then
command mv "${INSTALL_PATH}/data/cache" "${CACHE_PATH}"
command ln -s "${CACHE_PATH}" "${INSTALL_PATH}/data/cache"
command chown -R www-data:www-data "${CACHE_PATH}"
fi
if [ ! -h "${INSTALL_PATH}/data/logs" ]; then
command mv "${INSTALL_PATH}/data/logs" "${LOG_PATH}"
command ln -s "${LOG_PATH}" "${INSTALL_PATH}/data/logs"
command chown -R www-data:www-data "${LOG_PATH}"
fi
if [ ! -h "${INSTALL_PATH}/data" ]; then
command mv ${INSTALL_PATH}"/data" "${DATA_PATH}"
command ln -s "${DATA_PATH}" "${INSTALL_PATH}/data"
command chown -R www-data:www-data "${DATA_PATH}"
fi

Mise en place de l'hôte virtuel

Créez la configuration du serveur HTTP pour le domaine:

if [ -n "${SSL_KEY_NAME}" -a -e "/etc/ssl/private/${SSL_KEY_NAME}.key" ]; then
  command a2tools --overrides="All" --ssl="${SSL_KEY_NAME}" "${DOMAIN}" "${INSTALL_PATH}"
command a2tools --template='redirect' "${DOMAIN}" "https://${DOMAIN}/"
else
command a2tools --overrides="All" "${DOMAIN}" "${INSTALL_PATH}"
fi

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

Création de la base de données

Créez la base de données avec mysql-tools:

MYSQL_PARAMS="$(command mysql-tools --server="${MYSQL_HOST}" --with-ssh \
--auto-hosts --db-prefix="pydio" --create "${DOMAIN}")"

Récupérez les paramètres de la nouvelle base de données:

MYSQL_DB="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_DB" \
    | cut --delimiter="=" --fields="2-")"
MYSQL_USER="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_USER" \
    | cut --delimiter="=" --fields="2-")"
MYSQL_PASSWORD="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_PASSWORD" \
    | cut --delimiter="=" --fields="2-")"
echo "${MYSQL_PARAMS}"

Notez les informations de connexion fournies.

Configuration

Adaptez le fichier htaccess:

command sed -i \
-e 's|RewriteBase.*|RewriteBase /|' \
"${INSTALL_PATH}/.htaccess"

Si le système utilise PHP FPM, mettez en place le correctif nécessaire:

if [ -x '/etc/init.d/php5-fpm' ]; then
   command sed -i \
       -e 's|^#\(.*HTTP:Authorization.*\)$|\1|' \
       -e 's|^#\(.*HTTP_AUTHORIZATION.*\)$|\1|' \
     "${INSTALL_PATH}/.htaccess"
fi

L'application est maintenant disponible sur le domaine. Finalisez l'installation.

Finalisation

Dans "Options principales" -> "AjaXplorer Main Options" -> "Serveur WebDAV":

  • Activez WebDAV: Oui
  • URI Partages: "/shares"
  • Browser Access: Oui

Dans "Options principales" -> "AjaXplorer Main Options" -> "Command Line":

  • Ligne de commande: Oui

Dans "Options principales" -> "AjaXplorer Main Options" -> "Compression":

  • Compression Gzip: Oui

Dans "Options principales" -> "Mailers", configurez les adresses emails d'envoi du courier.

Dans "Extensions" -> "Action", activez les plugins:

  • Power FS
  • Tasks Scheduler

Dans "Extensions" -> "Editor", activez les plugins:

  • Image Magick
  • CKEditor

Dans "Extensions" -> "Uploader", activez les plugins:

  • PlUpload Support
  • Jumploader

Renseignez l'identifiant de l'utilisateur d'administration:

ADMIN_USER="admin"

Renseignez le mot de passe de l'utilisateur d'administration:

ADMIN_PASSWORD="password"

Mettez en place l'appel régulier au Task Scheduler:

command echo "*/5 * * * *    www-data    command test -x '/usr/bin/php' -a -e '${INSTALL_PATH}/cmd.php' && /usr/bin/php '${INSTALL_PATH}/cmd.php' -u='${ADMIN_USER}' -p='${ADMIN_PASSWORD}' -r=ajxp_conf -a=scheduler_runAll > '/dev/null'" \
> "/etc/cron.d/pydio-${DOMAIN//./-}"

Rechargez la configuration de cron:

command service 'cron' 'reload'

    Problèmes courants

    Dans le cas où vous n'arrivez-pas à accéder au compte d'administration à la fin de l'installation, renseignez l'identifiant du compte d'administration:

    ADMIN_USER="admin"

    Réinitialisez le mot de passe de l'utilisation à "admin":

    command echo "UPDATE ajxp_users SET password = '21232f297a57a5a743894a0e4a801fc3' WHERE ajxp_users.login = '${ADMIN_USER}' LIMIT 1" \
    | command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \ --host="${MYSQL_HOST}" "${MYSQL_DB}"

    Vous pouvez maintenant vous connecter au compte d'administration en utilisant le mot de passe "admin".

    Sauvegardes

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

    command backup-manager-tools add "${INSTALL_PATH}"
    command backup-manager-tools add "${DATA_PATH}"

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

    Mise à jour

    Renseignez le domaine de l'application:

    DOMAIN="pydio.domain.com"

    Déterminez le chemin d'installation:

    INSTALL_PATH="/opt/pydio/${DOMAIN}"

    Téléchargez les sources de la dernière version à l'aide du script sf-downloader:

    command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
    --quiet --no-check-certificate --output-document='/tmp/sf-downloader'
    SOURCE="$(command bash '/tmp/sf-downloader' --zip 'ajaxplorer' 'pydio-core-VERSION.zip')"

    Mettez en place CKEditor dans l'outil:

    CK_SOURCE="$(command bash '/tmp/sf-downloader' --output-directory="${SOURCE}/plugins/editor.ckeditor" \
    --ckeditor --zip 'ckeditor' 'ckeditor_VERSION_standard.zip')"

    Mettez en place Plupload dans l'outil:

    PLUPLOAD_SOURCE="$(command bash '/tmp/sf-downloader' --output-directory="${SOURCE}/plugins/uploader.plupload" \
    --generic='http://www.plupload.com/download.php' \
    --zip 'plupload' 'vVERSION.zip')"

    Mettez en place Jumploader dans l'outil:

    command wget 'http://jumploader.com/jar/jumploader_z.jar' \
        --output-document="${SOURCE}/plugins/uploader.jumploader/jumploader_z.jar"

    Récupérez les données de l'installation mise à jour:

    command rm -r "${SOURCE}/data"
    command cp -a "${INSTALL_PATH}/data" "${SOURCE}"
    

    Adaptez le fichier htaccess:

    command sed -i \
    -e 's|RewriteBase.*|RewriteBase /|' \
    "${SOURCE}/.htaccess"

    Si le système utilise PHP FPM, mettez en place le correctif nécessaire:

    if [ -x '/etc/init.d/php5-fpm' ]; then
       command sed -i \
           -e 's|^#\(.*HTTP:Authorization.*\)$|\1|' \
           -e 's|^#\(.*HTTP_AUTHORIZATION.*\)$|\1|' \
         "${SOURCE}/.htaccess"
    fi

    Sauvegardez l'ancienne installation:

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

    Déplacez le dossier de l'application vers son emplacement final:

    command mv "${SOURCE}" "${INSTALL_PATH}"
    

    Vérifiez que tout fonctionne correctement et supprimez la sauvegarde de l'ancienne installation :

    command rm -r "${INSTALL_PATH}.old"
    

    Remerciements