Installer aMember Pro sur Debian
aMember est une application PHP spécialisée dans la gestion des utilisateurs. Elle permet de mettre en place une politique complexe d'abonnements pour un site web tiers.
Ce guide est testé sur:
- Debian 7.0 Wheezy
Ce guide est testé avec ces versions d'aMember:
- 4.2.14
Prérequis
Ce guide nécessite :
- un serveur HTTP Apache 2 avec l'outil a2tools disponible dans Installer et configurer Apache 2 sur Debian.
- un serveur HTTP Apache 2 avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- un serveur MySQL, comme décrit par Installer et configurer MySQL 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).
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
DOMAIN="amember.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 (créé via la procédure Créer un certificat SSL / TLS sur Debian):
SSL_KEY_NAME="${DOMAIN}"
Renseignez le chemin de l'archive d'aMember sur le serveur:
AMEMBER_ZIP="/root/amember.zip"
Installation
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/amember/${DOMAIN}"
Déterminez le chemin des données:
DATA_PATH="/var/lib/amember/${DOMAIN}"
Préparation de l'environnement
Installez les logiciels nécessaires:
command apt-get install php5-mysql php5-cli unzip
Adaptez la configuration PHP aux besoins de l'outil:
command php-tools --for="amember" --set "magic_quotes_gpc" "0"
Remarque: cette option de configuration n'existe plus depuis PHP 5.4.0, ignorez l'éventuel message d'erreur.
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
Créez le dossier d'installation:
command mkdir --parent "$(command dirname "${INSTALL_PATH}")"
Décompressez l'archive:
command unzip -d "/tmp" "${AMEMBER_ZIP}"
Déplacez les fichiers vers leur emplacement final:
command mv "/tmp/amember" "${INSTALL_PATH}"
Autorisez la création des fichiers de configuration:
command chown www-data:www-data "${INSTALL_PATH}/.htaccess"
command chown www-data:www-data "${INSTALL_PATH}/application/configs"
Corrigez un bug dans la procédure de configuration:
command sed -i -e '/$base =/a\
if(!$base) $base = "/";' \
"${INSTALL_PATH}/setup/index.php"
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 --ssl="${SSL_KEY_NAME}" --overrides='All' "${DOMAIN}" "${INSTALL_PATH}"
command a2tools --template='redirect' "${DOMAIN}" "http://${DOMAIN}/"
else
command a2tools --overrides='All' "${DOMAIN}" "${INSTALL_PATH}"
fi
L'outil est maintenant disponible sur le domaine spécifié.
Mise en conformité avec la LSB
Mettez en place une architecture de dossier conforme à la LSB:
command mkdir --parent "${DATA_PATH}"
command mv "${INSTALL_PATH}/data" "${DATA_PATH}/data"
command ln -s "${DATA_PATH}/data" "${INSTALL_PATH}/data"
command chown -R www-data:www-data "${DATA_PATH}/data"
Création de la base de données
Créez la base de données:
command mysql-tools --server="${MYSQL_HOST}" --with-ssh \
--auto-hosts --db-prefix="amember" --create "${DOMAIN}"
Notez les paramètres de connexion obtenus.
Déterminez un préfixe de tables aléatoire:
echo "Suggested table prefix : $(command apg -q -a 0 -n 1 -M NCL)_"
Configuration initiale
Accédez à la configuration du logiciel via l'URL fournie par:
echo "http://${DOMAIN}/setup/index.php"
Finalisation
Mettez en place la tâche cron:
echo "# ${DOMAIN} aMember cron task (every minute)
0 * * * * www-data test -x '/usr/bin/wget' -a -e '${INSTALL_PATH}/cron.php' && /usr/bin/wget --output-document=- --no-check-certificate --quiet 'http://${DOMAIN}/cron.php'" \
> "/etc/cron.d/amember-${DOMAIN//./-}"
Remarque: assurez-vous d'activer les tâches cron externe dans les options avancées de l'administration d'aMember.
Rechargez la configuration de cron:
/etc/init.d/cron reload
Une fois l'application correctement configurée, renforcez sa sécurité en retirant l'accès en écriture aux fichiers de configuration et en supprimant le dossier setup:
command chown -R root:root "${INSTALL_PATH}/.htaccess" "${INSTALL_PATH}/application/configs"
command rm -r "${INSTALL_PATH}/setup"
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'installation obsolète:
DOMAIN="amember.domain.com"
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/amember/${DOMAIN}"
Nettoyez le chemin:
INSTALL_PATH="$(command echo "${INSTALL_PATH}" | command sed -e 's|/$||g')"
Sauvegardez l'installation mise à jour:
command test -e "${INSTALL_PATH}.old" && command rm -r "${INSTALL_PATH}.old"
command cp -a "${INSTALL_PATH}" "${INSTALL_PATH}.old"
Ajustez les permissions des fichiers:
command chown -R www-data:www-data "${INSTALL_PATH}"
Accédez à l'outil de mise à jour automatique via l'URL fournie par:
command echo "http://${DOMAIN}/admin-upgrade"
Effectuez la mise à jour.
Une fois la mise à jour terminée, sécurisez l'installation en restaurant les permissions par défaut des fichiers et en supprimant l'outil d'installation:
command chown -R root:root "${INSTALL_PATH}"
command rm -r "${INSTALL_PATH}/setup"
Remerciements
- Merci aux développeurs de aMember.