Installer l'outil de partage de fichiers ProjectSend sur Debian
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 :
- un serveur MySQL, comme décrit par Installer et configurer MySQL sur Debian.
- 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.
- l'outil mysql-tools d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:
- a2tools disponible dans Installer et configurer Apache 2 sur Debian.
- lighty-tools disponible dans Installer et configurer Lighttpd sur Debian.
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
- Merci aux développeurs de ProjectSend.
- Merci à La Ferme du Web pour l'article cFTP - une plateforme de partage de fichiers PHP dédiée à vos clients.