Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Applications commerciales / Installer aMember Pro sur Debian

Installer aMember Pro sur Debian

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

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 :

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.