Installer SilverStripe sur Debian
SilverStripe est un système de gestion de contenu.
Ce guide est testé sur:
- Debian 8.0 Jessie
Ce guide est testé avec ces versions de SilverStripe:
- 3.6.1
Pré-requis
Ce guide nécessite:
- a2tools, l'outil d'administration simplifiée d'Apache 2.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- php-tools, l'outil de configuration simplifiée de PHP.
- un serveur MySQL, comme décrit par Installer et configurer MySQL sur Debian.
- mysql-tools, l'outil d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
- Une installation globale de Composer, comme décrit par Installer Composer sur Debian.
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
domain="www.domain.com"
Renseignez le nom d'hôte du serveur MySQL:
mysqlHost="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 pour chiffrer l'application avec HTTPS (créé via la procédure Créer un certificat SSL / TLS sur Debian ou via Let's Encrypt) (optionnel, recommandé):
sslKeyName="auto"
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Déterminez le chemin d'installation:
installPath="/var/lib/silverstripe/${domain}"
Déterminez l'utilisateur pour l'utilisation de composer:
composerUser='composer'
Assurez-vous que le dossier parent existe:
${cmdProxy} mkdir -p "${installPath}"
${cmdProxy} chown "${composerUser}" "${installPath}"
Préparation de l'environnement
Installez les logiciels nécessaires:
${cmdProxy} apt-get install php5-mysql php5-gd
Rechargez la configuration de PHP:
${cmdProxy} php-tools --reload
Mise en place de l'application
Téléchargez la dernière version de l'application:
sudo -u "${composerUser}" composer create-project 'silverstripe/installer' "${installPath}"
Autorisez la modification par le serveur des caches et emplacements de données:
while read writeablePath; do
${cmdProxy} chown -R www-data:www-data "${installPath}/${writeablePath}"
done <<< ".htaccess
mysite/_config.php
mysite/_config/config.yml
assets"
Installez les modules complémentaires:
while read moduleName; do
sudo -u "${composerUser}" composer --working-dir="${installPath}" require "${moduleName}"
done <<< "silverstripe/blog
symbiote/silverstripe-advancedworkflow
silverstripe/taxonomy
silverstripe/versionfeed
silverstripe/widgets
silverstripe/googlesitemaps
silverstripe/userforms
undefinedoffset/sortablegridfield
symbiote/silverstripe-gridfieldextensions
silverstripe/spamprotection
silverstripe/translatable
jonom/focuspoint
silverstripe/content-widget"
Création de la base de données
Créez la base de données:
command mysql-tools --server="${mysqlHost}" --with-ssh \
--auto-hosts --db-prefix="silverstripe" --create "${domain//[\.-]/_}"
Notez les informations de connexion fournies par la commande.
Mise en place de l'hôte virtuel
Créez la configuration du serveur HTTP pour le domaine:
if [[ -n "${sslKeyName}" && ( -e "/etc/ssl/private/${sslKeyName}.key" || "${sslKeyName}" = 'auto' ) ]]; then
${cmdProxy} a2tools --ssl="${sslKeyName}" --overrides='All' "${domain}" "${installPath}"
else
${cmdProxy} a2tools --overrides='All' "${domain}" "${installPath}"
fi
L'installation est maintenant disponible sur le domaine.
Accédez à la procédure d'installation via l'URL fournie par:
echo "http://${domain}/install.php"
Sécurisation
Une fois la procédure d'installation terminée, sécurisez l'installation:
while read readonlyPath; do
${cmdProxy} chown -R "${composerUser}:root" "${installPath}/${readonlyPath}"
done <<< ".htaccess
mysite/_config.php
mysite/_config/config.yml"
${cmdProxy} rm "${installPath}/install.php"
Mise à jour automatisée
Mettez en place une tâche cron de mise à jour du logiciel:
${cmdProxy} tee "/etc/cron.d/silverstripe-${domain//./-}" \
<<< "# Silverstripe CMS cron tasks for http://${domain}/
30 5 * * * composer /usr/local/bin/composer --working-dir='${installPath}' update"
Recharchez la configuration de cron:
${cmdProxy} service cron reload
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "${installPath}"
N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).
Remerciements
- Merci aux développeurs de SilverStripe (en).