Table des matières

Installation d'un serveur LAMP

Le serveur sera installé dans une machine virtuelle (invitée) sous VirtualBox, avec la configuration de deux CMS (Wordpress et Dokuwiki) et d'outils pour la gestion de groupes de personnes ayant différents rôles :

Pour les “novices” ou peu habitués de la ligne de commande, le serveur fonctionne uniquement dans ce mode, soit dans sa console, soit via ssh qui ouvre un terminal à partir d'un poste distant (sur la machine hôte par exemple). Les copier-coller fonctionne, mais avec la touche “shift” en plus : shift-ctrl-c pour copier, shift-ctrl-v pour coller.

Suggestion : une fois le serveur installé, n'utilisez la console dans la machine invitée que pour vous authentifier, exécuter la commande 'ip a' pour connaître l'IP et arrêter la machine. OpenSSH étant installé, il vous sera beaucoup plus facile de la contrôler à distance, tout comme vous le feriez pour un serveur dédié dans un datacenter payant.

Pour les noms d'utilisateurs et mots de passe utilisés sur vos serveurs, évitez l'utilisation de noms d'utilisateur et mots de passe personnels.

Installation de VirtualBox

Installation via ppa sous Linux (Ubuntu)

Pour installer la version la plus récente, suivre les instructions de la page https://www.skyminds.net/linux-installer-virtualbox-via-le-ppa-doracle/ :

sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r`
echo "deb http://download.virtualbox.org/virtualbox/debian `lsb_release -sc` contrib" | sudo tee -a /etc/apt/sources.list.d/virtualbox.list && wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install virtualbox-5.1

(remplacer 5.2 par une nouvelle version si existante sur virtualbox.org)

sudo usermod -G vboxusers -a $USER

(remplacez la dernière variable par votre nom d'utilisateur Linux).

version=$(VBoxManage --version|cut -dr -f1|cut -d'_' -f1) && wget -c http://download.virtualbox.org/virtualbox/$version/Oracle_VM_VirtualBox_Extension_Pack-$version.vbox-extpack && VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$version.vbox-extpack --replace && rm *.vbox-extpack

Installation sous Windows

Suivre les instructions sur virtualbox.org !

Voir aussi :

Désinstallation d'une version précédente

Adapter le numéro de version

sudo dpkg -l | grep virtualbox
sudo apt-get purge virtualbox-5.1

Génération de clés SSH

L'authentification par un système de clés publique/privée vous sera très utile pour gérer vos serveurs. Générez ces clés avec la commande suivante :

ssh-keygen -t rsa

Les clés publiques et privées sont stockées dans votre répertoire ~/.ssh. Les répertoires cachés (hidden) peuvent être visualisés dans votre gestionnaire de fichier (Nautilus) en tapant ctrl-h. La clés privées ne doit JAMAIS être communiquée. Votre clé publique devra être placée dans le fichier ~/.ssh/authorized_keys des serveurs auxquels vous souhaitez accéder (voir plus loin).

Sous Windows, utiliser :
  • PuTTY pour communiquer en ligne de commande (client SSH),
  • WinSCP ou Filezilla pour accéder aux fichiers (clients SFTP);
  • PuTTYgen pour générer les clés SSH

Références :

Installation du serveur

Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server

Problème réseau : pour forcer le dhcp, utiliser les commandes “sudo ip link set dev eth0 down” et “sudo dhclient eth0” cf. ici. Cette action doit être refaite chaque fois que l'IP n'est pas attribuée.

Vérification du fonctionnement et configuration complémentaire

php

FIXME (cf ref comme ceci) oucela

Groupe www-data

ajouter vmuser au groupe www-data :

sudo usermod -a -G www-data vmuser

phpmyadmin

Gestion via interface web des base de données :

sudo apt-get install phpmyadmin

SI ré-installation :

sudo dpkg-reconfigure phpmyadmin

(choisir le serveur web à reconfigurer : apache2)

Installation de OpenLDAP et FusionDirectory

Référence utilisée : Documentation officielle de FusionDirectory, admin_installation

cf aussi (?) https://www.morot.fr/installation-de-fusiondirectory-depuis-les-sources-sous-ubuntu-14-04/

127.0.0.1 localhost.localdomain localhost
127.0.1.1 vm.be vmix
# fusiondirectory repository
deb http://repos.fusiondirectory.org/debian-jessie jessie main
# fusiondirectory debian-extra repository
deb http://repos.fusiondirectory.org/debian-extra stable main
En cas de problème, pensez à redémarrer la machine virtuelle !
Si erreur “Schema check failed”, l'insertion de schéma peut être à refaire via “sudo fusiondirectory-insert-schema”

sudo fusiondirectory-setup –check-config → Checking FusionDirectory's config file

Installation de wordpress

Création de la DB

Téléchargement

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

FIXME : il faut aussi générer des clés de salage avec ce générateur et les placer dans le fichier wp-config.php !

Mise en place, propriétaire et droit

Configuration initiale

Remarques

Installation de dokuwiki

Installation de Dokuwiki (https://www.dokuwiki.org/install:upgrade) :

Backups automatiques

Pré-requis

Constitution du backup local

À partir du répertoire home de l'utilisateur administrateur, créer un répertoire backups, un script (vide) backup.sh et une répertoire pour les fichiers files :

mkdir backups
cd backups
touch -a backup.sh
chmod u+x backup.sh
mkdir files
#!/bin/sh

THESITE=""
THEDB="wordpress"
THEDBUSER="wordpress"
THEDBPW="mdp_wp"
THEDATE=`date +%F-%T`

# backup de la base de données
mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > ~/${THESITE}backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gz

# backup des fichiers du site
tar -czf ~/${THESITE}backups/files/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/${THESITE}

# éliminer les fichier vieux de plus de 5 jours
find /backups/files/site* -mtime +5 -exec rm {} \;
find /backups/files/db* -mtime +5 -exec rm {} \;

Sauvegarde distante

En mode “push”, voici que qu'il faut ajouter au script :

# synchronisation par rsync (push)
rsync -a ~/backups/files user@machine_distante:/Path/To/Backup/offsite_backup_name

Mode “pull” : …

Références

Difficultés