Installation Linux Ubuntu 16.04

Date : 04/09/2016
OS : Linux Ubuntu 16.04 LTS
Serveur web : Apache 2.4.18
Langage : PHP 7.0.8
Version : 020161102
Status : en cours.
Serveur : ubuntu16.test.nebule.net (RAM:512Mo DD:2+2+2Go)

Introduction

L’installation du système d’exploitation se fait classiquement sans particularité. Le réseau doit être fonctionnel, les dernières mises à jours doivent être appliquées (normalement fait au cours de l’installation).

li Le serveur de test sous Ubuntu 16.04 est un peu bricolé, il consomme beaucoup plus de place de prévu pour une installation par défaut. Prévoir 4Go de disque pour la racine.

Le serveur ne doit pas déjà contenir d’autre site web, sinon il faut adapter la configuration.

Sur un serveur qui va recevoir beaucoup d’objets, on peut séparer /var/www sur une partition ou un disque dédié et conséquent.

Installation version condensée

Lancer en tant que root :

aptitude install -y apache2 libapache2-mod-php php-gd php-mbstring
URL="http://sylabe.com/o/871d0e2a2dd623da97e0cc5ca313a56e1a55a410d2b5f9b69042379f4222f189"
wget $URL -O /root/020161102.nebule.full.tgz
tar zxf /root/020161102.nebule.full.tgz -C /var/www/html
rm /var/www/html/index.html
cat > /etc/apache2/sites-available/000-default.conf << EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
php_value max_execution_time 300
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
cat > /etc/apache2/sites-available/default-ssl.conf << EOF
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
php_value max_execution_time 300
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
SSLEngine On
SSLCertificateFile /etc/ssl/private/localhost.nebule.crt
</VirtualHost>
EOF
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.nebule.crt
a2enmod ssl
a2enmod php7.0
a2dismod mpm_event
a2enmod mpm_prefork
a2ensite default-ssl.conf
service apache2 restart
chown -R 33.33 /var/www/html
chmod -R u+rw /var/www/html

Dans un navigateur, ouvrir l’adresse du serveur et attendre la fin de la phase de préparation…
li Noter en bas le mot de passe de l’entité de l’instance du serveur.

Lancer :

chown 0.0 /var/www/html
chmod 755 /var/www/html
chown 0.0 /var/www/html/index.php
chmod 644 /var/www/html/index.php
chown 0.0 /var/www/html/nebule.env
chmod 644 /var/www/html/nebule.env
chown 0.0 /var/www/html/e
chmod 644 /var/www/html/e
echo "defaultCurrentEntity = "$(cat /var/www/html/e) >> /var/www/html/nebule.env

Installation version pas à pas

[a] Service web

Le bootstrap et la librairie ont besoin pour fonctionner correctement de :

  • Un serveur web.
  • Un interpréteur PHP.
  • La librairie GD de PHP.
  • La librairie mbstring de PHP.

li D’autres serveurs web que Apache2 sont normalement fonctionnels mais n’ont pas été testés.

Installation des paquets :

# aptitude install apache2 libapache2-mod-php php-gd php-mbstring

[b] Téléchargement

Télécharger sur le serveur l’archive complète :
# URL="http://sylabe.com/o/871d0e2a2dd623da97e0cc5ca313a56e1a55a410d2b5f9b69042379f4222f189"
# wget $URL -O /root/020161102.nebule.full.tgz
# sha256sum /root/
020161102.nebule.full.tgz

Le résultat du hash sha256 doit être impérativement égale strictement à :

871d0e2a2dd623da97e0cc5ca313a56e1a55a410d2b5f9b69042379f4222f189

li Il est important de vérifier la valeur de cette signature. Si elle ne correspond pas il faut impérativement re-télécharger le fichier. Cela est dû à une corruption (volontaire ou non) du contenu du fichier. Le téléchargement peut se faire sur un autre site web tant que la valeur de la signature est strictement identique.

[c] Décompression

Le contenu du fichier téléchargé va être mis en place dans l’arborescence dédiée au service web /var/www/html.

Les applications pouvant avec le temps devenir grosses consommatrices d’espace disque, il est préférable dès l’installation du système d’exploitation de réserver une partition dédiée au service web (/var/www). Cette séparation permettra en cas de saturation de l’espace disque de ne pas perturber le fonctionnement du système d’exploitation.

Décompresser l’archive dans le dossier de destination :
# tar zxf /root/020161102.nebule.full.tgz -C /var/www/html
# rm /var/www/html/index.html

[d] Modification du site web

Le site web par défaut doit être modifié, on le remplace par facilité :
# cat > /etc/apache2/sites-available/000-default.conf << EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
php_value max_execution_time 300
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
# cat > /etc/apache2/sites-available/default-ssl.conf << EOF
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
php_value max_execution_time 300
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
SSLEngine On
SSLCertificateFile /etc/ssl/private/localhost.nebule.crt
</VirtualHost>
EOF
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.nebule.crt
# a2enmod ssl
# a2enmod php7.0
# a2dismod mpm_event
# a2enmod mpm_prefork
# a2ensite default-ssl.conf
# service apache2 restart

Les deux fichiers modifiés peuvent être adaptés à posteriori pour vos propres besoins.

[e] Augmentation des droits

Modifier les droits du dossier du serveur web :
# chown -R 33.33 /var/www/html
# chmod -R u+rw /var/www/html

[f] Premier lancement

Dans un navigateur, ouvrir l’adresse du serveur http://monsiteweb/ et attendre la fin de la phase de préparation. Ça peut être long, il y a plusieurs étapes et rechargements de la page…

shot-2016-11-03_13-18-33
Bugg connu du bootstrap. Faire [F5] ou recharger la page pour continuer.

shot-2016-11-03_13-18-43
Bugg connu du bootstrap. Si les droits ont bien été posés, faire [F5] ou recharger la page pour continuer.

shot-2016-11-03_13-18-54
Informations importantes !

liNoter en bas le mot de passe de l’entité de l’instance du serveur.
Cette entité permettra par la suite de modifier les options (et les applications plus tard).

shot-2016-11-03_13-20-17
Le serveur est prêt.

[g] Réduction des droits

Modifier les droits du dossier du serveur web ainsi que de certains fichiers :
# chown 0.0 /var/www/html
# chmod 755 /var/www/html
# chown 0.0 /var/www/html/index.php
# chmod 644 /var/www/html/index.php
# chown 0.0 /var/www/html/nebule.env
# chmod 644 /var/www/html/nebule.env
# chown 0.0 /var/www/html/e
# chmod 644 /var/www/html/e

[h] Reconnaissance du certificat du serveur web

[i] Changement des options

Ajouter l’entité du serveur comme entité par défaut. Il faut modifier l’option defaultCurrentEntity dans le fichier nebule.env :
# echo "defaultCurrentEntity = "$(cat /var/www/html/e) >> /var/www/html/nebule.env
Recharger la page web avec l’argument f pour que la modification soit appliquée. Par exemple http://monsiteweb/?f