[Bor] LXC Apache
La LXC Apache permet l'hébergement des services divers services web.
Présentation
Type | Linux Container (machine virtuelle) hébergée sur Bor |
---|---|
Utilité | Serveur web du GInfo |
Services | Applis web, Bar'bu… |
OS | Ubuntu Server 17.04 |
Nom du LXC | bor_apache |
IP | 10.61.15.26 (DMZ BOR) |
Création de la LXC sur Bor
Pour créer le Linux Container, je vous invite à suivre la seconde partie du tutoriel disponible sur cette page : Créer un Linux Container (LXC)
La seule chose à respecter lors de la création du container est le nom que vous lui donnerez : bor_apache
Configuration de la LXC
En suivant le précédent tutoriel pensez à :
→ attribuer une IP fixe au LXC (cf tutoriel LXC)
→ la mettre en démarrage automatique au démarrage de Bor
→ Ajouter une règle NAT pour permettre au LXC de communiquer avec l'extérieur via le port entrant 80 et 443 sur Bor
Installation de Apache
On commence par installer les paquets nécessaires :
$> sudo apt-get install apache2 php libapache2-mod-php php-mysql php-gd php-intl php-dom
Après cela normalement le serveur apache est lancé (ce qu'on peut vérifier avec un lynx localhost
)
Aussi, on s'assure que cet encart est bien présent dans /etc/apache2/apache2.conf
- /etc/apache2/apache2.conf
#Verifier que cette partie est bien présente dans le fichier. #Si elle n'est pas pareil, modifier le fichier de config pour qu'il soit identiques <Directory /var/www> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Configuration initiale et création d'un site
On commence par supprimer la configuration par défaut :
$> sudo rm /etc/apache2/sites-available/000-default.conf $> sudo rm /etc/apache2/sites-available/default-ssl.conf $> sudo rm /etc/apache2/sites-enabled/000-default.conf $> sudo rm -r /var/www/html
Création d'un site avec le système des VirtualHost Apache (exemple de PhpMyAdmin)
On va créer une configuration pour un site à travers un exemple, disons par exemple, PhpMyAdmin. Le site sera accessible via https://phpmyadmin.ginfo (il faudra penser à rajouter les entrées DNS dans bind sur le routeur, on verra cela après)
On commence par créer un dossier phpmyadmin
dans /var/www
pour héberger les fichiers en question, et on donne les droits sur le dossier à l'utilisateur apache :
$> sudo mkdir /var/www/phpmyadmin $> sudo chown -R www-data:www-data /var/www/phpmyadmin
On crée donc maintenant un fichier portant le nom du site (phpmyadmin.ginfo.conf) dans /etc/apache2/sites-available/
- /etc/apache2/sites-available/phpmyadmin.ginfo.conf
Listen 80 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/phpmyadmin ServerName phpmyadmin.ginfo ServerAlias 10.61.16.26 ErrorLog ${APACHE_LOG_DIR}/errorphpmyadmin.log CustomLog ${APACHE_LOG_DIR}/accessphpmyadmin.log combined RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </VirtualHost> Listen 443 <VirtualHost *:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/phpmyadmin ServerName phpmyadmin.ginfo ServerAlias 10.61.16.26 ErrorLog ${APACHE_LOG_DIR}/errorphpmyadmin.log RewriteEngine On </VirtualHost>
On active ensuite cette configuration en faisant un lien symbolique de la configuration vers site-enabled :
$> sudo a2ensite phpmyadmin.ginfo
On active les ré-écritures d'URL (nécéssaire pour la config telle qu'elle est ici):
$> sudo a2enmod rewrite
Enfin on redémarre apache :
$> sudo systemctl reload apache2
Pour terminer, on déclare le domaine sur le routeur (Odin) dans /var/cache/bind/db.ginfo, en rajoutant la ligne phpmyadmin.ginfo IN CNAME bor
puis on redémarre le serveur DNS via sudo service bind9 restart
On peut maintenant mettre les fichiers du site dans /var/www/phpmyadmin