Installer le gestionnaire de fichiers Pydio/AjaXplorer sur Debian
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 :
- a2tools, l'outil d'administration simplifiée d'Apache 2.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- le cache d'OpCode PHP APC, comme décrit par Installer l'extention PHP APC sur Debian.
- php-tools, l'outil de configuration simplifiée de PHP.
- un serveur MySQL, comme décrit par Installer et configurer MySQL sur Debian.
- mysql-tools, l'outil d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
Ce guide recommande:
- La mise en place d'alerte sur la disponibilité de mises à jour PEAR, comme décrit par
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
- Merci aux développeurs de Pydio/AjaXplorer.