Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Gestion de fichiers / Installer l'outil de mise en ligne de fichiers FileZ sur Debian

Installer l'outil de mise en ligne de fichiers FileZ sur Debian

Par Pierre-Yves Landuré Dernière modification 02/11/2012 17:36

FileZ est une application PHP qui permet de mettre en ligne des fichiers sur des URLs uniques pour une durée déterminée. Il ne permet pas de mettre à disposition un fichier indéfiniment.

Ce guide est testé sur:

  • Debian 6.0 Squeeze

Ce guide est testé avec ces versions de FileZ:

  • 2.1

Prérequis

Ce guide nécessite :

Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:

Paramètres

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

DOMAIN="fichiers.domaine-exemple.fr"

Renseignez l'adresse mél de l'administrateur, notifiée lors de l'inscription de nouveaux utilisateurs:

ADMIN_EMAIL="root@domaine-exemple.fr"

Renseignez l'adresse mél d'expédition des messages:

FROM_EMAIL="filez@domaine-exemple.fr"

Renseignez le nom d'expédition des messages:

FROM_NAME="${DOMAIN}"

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.

Installation

Déterminez le chemin d'installation:

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

Assurez-vous que le dossier parent existe:

PARENT_PATH="$(command dirname "${INSTALL_PATH}")"
if [ ! -e "${PARENT_PATH}" ]; then
command mkdir --parent "${PARENT_PATH}"
fi

Préparation de l'environnement

Installez les logiciels nécessaires:

command apt-get install php5-mysql php5-curl php5-ldap git

Adaptez la configuration PHP aux besoins de l'outil:

command php-tools --for="filez" --set "upload_max_filesize" "750M"
command php-tools --for="filez" --set "post_max_size" "750M"
command php-tools --for="filez" --set "max_execution_time" "1200"

Rechargez la configuration de PHP:

test -x /etc/init.d/php5-fpm && /etc/init.d/php5-fpm force-reload
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
test -x /etc/init.d/nginx && /etc/init.d/nginx force-reload

Mise en place de l'application

Installez la dernière version de l'application:

command git clone "git://github.com/FileZ/FileZ.git" "${INSTALL_PATH}"

Création de la base de données

Créez la base de données:

MYSQL_PARAMS="$(command mysql-tools --server="${MYSQL_HOST}" --with-ssh \
--auto-hosts --db-prefix="filez" --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}"

Initialisez le contenu de la base de données:

command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
    --host="${MYSQL_HOST}" "${MYSQL_DB}" \
      < "${INSTALL_PATH}/config/db/schema.sql"

Conformité avec la LSB

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

command mkdir --parent "/var//lib/filez/${DOMAIN}/uploads"
command chown -R www-data:www-data "/var/lib/filez/${DOMAIN}/uploads"
command mkdir --parent "/var/log/filez/${DOMAIN}"
command chown -R www-data:www-data "/var/log/filez/${DOMAIN}"

Configuration

Créez le fichier de configuration:

echo "[app]
log_dir = \"/var/log/filez/${DOMAIN}\"
upload_dir = \"/var/lib/filez/${DOMAIN}/uploads\"
default_locale = \"fr\"
progress_monitor = \"Fz_UploadMonitor_Apc\"
sharing_destinations[] = \"email\"
admin_email = \"${ADMIN_EMAIL}\"

[db]
dsn = \"mysql:host=${MYSQL_HOST};dbname=${MYSQL_DB}\"
user = \"${MYSQL_USER}\"
password = \"${MYSQL_PASSWORD}\"

[email]
from_name = \"${FROM_NAME}\"
from_email = \"${FROM_EMAIL}\"
host = \"localhost\"
name = \"filez\"" \
  > "${INSTALL_PATH}/config/filez.ini"

Si possible, forcez le HTTPS:

command sed -i -e '/[app]/a\
https = "always"' "${INSTALL_PATH}/config/filez.ini"

Les différentes options de configuration sont documentées dans les fichiers config/filez.default.ini et config/filez.ini.example.

Configuration de l'hôte virtuel

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

if [ -x "/usr/bin/a2tools" ]; then
  command a2tools --overrides="All" "${DOMAIN}" "${INSTALL_PATH}"
fi
if [ -x "/usr/bin/lighty-tools" ]; then
  command lighty-tools add-vhost "${DOMAIN}" "${INSTALL_PATH}"
fi

L'application est maintenant disponible sur le domaine choisi. Connectez-vous avec:

  • Identifiant : admin
  • Mot de passe : filez

N'oubliez pas de changer le mot de passe par défaut.

Suppression automatique des fichiers expirés

Mettez en place le script de suppression automatique des fichiers expirés:

command cp "${INSTALL_PATH}/scripts/cron.sh" "/etc/cron.hourly/filez-${DOMAIN}"
command chmod +x "/etc/cron.hourly/filez-${DOMAIN}"
command sed -i \
    -e "s|^LOG_DIR=.*\$|LOG_DIR=/var/log/filez/${DOMAIN}|" \
    -e "s|^URL=.*\$|URL=http://${DOMAIN}|" \
  "/etc/cron.hourly/filez-${DOMAIN}"

Mise à jour automatique

Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:

echo "#"'!'"/bin/bash
# Update ${PROTOCOL}://${DOMAIN}/ source code from Git.
test -x '/usr/bin/git' -a -d '${INSTALL_PATH}' && {
pushd '${INSTALL_PATH}' > '/dev/null'
/usr/bin/git pull --quiet > '/dev/null'
popd > '/dev/null'
}" \
  > "/etc/cron.daily/${DOMAIN}-update"
command chmod +x "/etc/cron.daily/${DOMAIN}-update"

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 "/var/lib/filez/${DOMAIN}"

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

Remerciements