Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Gestion de fichiers / Installer l'outil de partage de fichiers ProjectSend sur Debian

Installer l'outil de partage de fichiers ProjectSend sur Debian

Par Pierre-Yves Landuré Dernière modification 26/11/2016 09:55

ProjectSend (anciennement cFTP, pour client oriented FTP), est un outil de partage de fichiers destiné aux entreprises. Il résous les problématiques d'échanges de fichiers de grande taille entre une entreprise et ses clients. Son inconvénient majeur (à l'heure d'écriture de ce guide) est qu'il n'est pas disponible en français.

Ce guide est testé sur:

  • Debian 6.0 Squeeze

Ce guide est testé avec ces versions de ProjectSend:

  • r157

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 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/projectsend/${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 unzip

Adaptez la configuration PHP aux besoins de l'outil:

command php-tools --for="projectsend" --set "upload_max_filesize" "750M"
command php-tools --for="projectsend" --set "post_max_size" "750M"

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

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

command mkdir --parent '/opt/bin'
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/opt/bin/sf-downloader'
command chmod +x '/opt/bin/sf-downloader'
SOURCE="$(/opt/bin/sf-downloader --googlecode --zip clients-oriented-ftp ProjectSend-VERSION.zip)"

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

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

Ajustez les droits:

command chmod go+rx "${INSTALL_PATH}"

Conformité avec la LSB

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

command mkdir --parent "/var/lib/projectsend"
command mv "${INSTALL_PATH}/upload" "/var/lib/projectsend/${DOMAIN}"
command ln -s "/var/lib/projectsend/${DOMAIN}" "${INSTALL_PATH}/upload"
command chown -R www-data:www-data "/var/lib/projectsend/${DOMAIN}"

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="tt-rss" --create "${DOMAIN}")"

Récupérez les paramètres de connexion à la base de données créée:

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}"

Configuration

Créez le fichier de configuration depuis le modèle:

command cp "${INSTALL_PATH}/includes/sys.config.sample.php" "${INSTALL_PATH}/includes/sys.config.php"

Configurez la connexion à la base de données:

command sed -i \
    -e "s/\(define('DB_NAME', \).*/\1'${MYSQL_DB}');/" \
    -e "s/\(define('DB_HOST', \).*/\1'${MYSQL_HOST}');/" \
    -e "s/\(define('DB_USER', \).*/\1'${MYSQL_USER}');/" \
    -e "s/\(define('DB_PASSWORD', \).*/\1'${MYSQL_PASSWORD}');/" \
    "${INSTALL_PATH}/includes/sys.config.php"

Configurez la langue de l'application (non fonctionnel à l'heure de l'écriture de ce guide, les fichiers de traduction n'étant pas présents):

command sed -i \
    -e "s/\(define('SITE_LANG',\).*/\1'fr');/" \
    "${INSTALL_PATH}/includes/sys.config.php"

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

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

L'application devrait maintenant être disponible sur le domaine.

Initialisation

Terminez l'installation de votre application en accédant à l'URL fournie par la commande :

command echo "http://${DOMAIN}/install"

Configurez à l'aide de cette interface votre compte d'administration.

Sécurisation

Une fois l'installation terminée, supprimez le dossier d'installation :

command rm -r "${INSTALL_PATH}/install"

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/projectsend/${DOMAIN}"

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

Mise à jour de l'outil

Renseignez le domaine de l'application:

DOMAIN="fichiers.domaine-exemple.fr"

Déterminez le chemin d'installation:

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

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

command mkdir --parent '/opt/bin'
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/opt/bin/sf-downloader'
command chmod +x '/opt/bin/sf-downloader'
SOURCE="$(/opt/bin/sf-downloader --googlecode --zip clients-oriented-ftp ProjectSend-VERSION.zip)"

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

command rm -r "${SOURCE}/upload"
command cp -a "${INSTALL_PATH}/upload" "${SOURCE}"
command cp -a "${INSTALL_PATH}/includes/sys.config.php" "${SOURCE}/includes"

Corrigez les permissions:

command chmod go+rx "${SOURCE}"

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