Comment configurer et exécuter un serveur Apache dans un environnement AWS EC2 Cloud9 ?

Introduction

La migration de CLoud9 vers AWS Cloud9 n'a pas été simple. Sur CLoud9, le serveur Apache était installé et configuré par défaut. Sur les serveur AWS Cloud9, le serveur Apache est installé, mais pas configuré. La configuration doit être réalisée manuellement. Cette page explique étape par étape comment configurer un serveur Apache dans un environnement AWS EC2 Cloud9.

Les instructions de cette page ont été testées sur un serveur AWS EC2 Cloud9 fraichement installé avec les versions suivantes :

Installation et lancement d'Apache

Les environnements AWS Cloud9 sont livrés avec Apache déjà installé. Lancez un terminal (Alt-T), et exécutez la commande suivante:

sudo service apache2 status

Le serveur Apache est actif et en cours d'exécution:

Le serveur Apache est active et en cours d'exécution

Malheureusement, il n'est pas configuré pour fonctionner avec l'environnement de développement ClouD9. Si vou clickez sur Preview Running Application, le navigateur interne à l'IDE affiche un message d'erreur :

Apache ne fonctionne pas correctement avec AWS Cloud9

Configurer Apache sur le port 8080

Pour exploiter le système de prévisualisation de CLoud9, le serveur Apache a besoin de s'éxécuter sur l'un des ports 8080, 8081 ou 8082.

Pour commencer, éditer le fichier /etc/apache2/ports.conf en exécutant une des commandes suivantes:

sudo vim /etc/apache2/ports.conf
sudo nano /etc/apache2/ports.conf 

Remplacer la première ligne :

Listen 80

par :

Listen 8080

Éditer le fichier /etc/apache2/sites-enabled/000-default.conf avec une des commandes suivantes :

sudo vim /etc/apache2/sites-enabled/000-default.conf
sudo nano /etc/apache2/sites-enabled/000-default.conf 

Remplacer la ligne:

<VirtualHost *:80>

par:

<VirtualHost *:8080>

Redémarrer Apache avec la commande suivante :

sudo service apache2 restart

La prévisualisation doit maintenant fonctionner en cliquant sur Preview Running Application:

Previsualisation du serveur Apache dans le navigateur de l'IDE

Configurer le répertoire racine du serveur Apache

Apache est configuré avec le répsertoire racine /var/www/. Bien sûr, comme nous souhaitons exploiter l'IDE Cloud9, nous devons changer ce répertoire pour celui de l'IDE : /home/ubuntu/environement/.

Éditer le fichier /etc/apache2/apache2.conf avec l'une des commandes suivantes :

sudo vim /etc/apache2/apache2.conf
sudo nano /etc/apache2/apache2.conf

Chercher et remplacer les lignes suivantes :

<Directory /var/www/>

par :

<Directory /home/ubuntu/environment/>

Éditer le fichier /etc/apache2/sites-enabled/000-default.conf avec une des commandes suivantes:

sudo vim /etc/apache2/sites-enabled/000-default.conf
sudo nano /etc/apache2/sites-enabled/000-default.conf

Chercher et replacer les lignes suivantes :

DocumentRoot /var/www/html

par :

DocumentRoot /home/ubuntu/environment/

Redémarrer le serveur Apache à l'aide de la commande suivante :

sudo service apache2 restart

Créez un fichierindex.php à la racine de l'environnement Cloud9 (/home/ubuntu/environment/):

<?php 
echo '<h1>Apache root directory changed !</H1>';

Rafraichir le navigateur de l'IDE, le script PHP devrait s'exécuter :

Répertoire racine d'Apache modifié

Remarque importante : j'ai remarqué que le navigateur interne de l'IDE ne rafraichit pas toujours les pages correctement. Je ne sais pas comment le cache du navigateur fonctionne, mais j'ai noté des comportements étranges. Je suggère de tester le serveur dans un nouvel onglet de votre navigateur et d'éviter le navigateur interne à l'IDE.

Configurer les fichiers .htaccess

Dans la configuration par défaut du serveur Apache les fichiers .htaccess ne sont pas activés. Vérifions leur non-fonctionnement en créant un nouveau fichier .htaccess avec le contenu suivant (une variable d'environement qui sera accessible depuis les scripts PHP) :

SetEnv ENVAR test

Compléter le fochier index.php créé précédemment :

<?php 
echo '<h1>Apache root directory changed !</H1>';

var_dump($_SERVER['ENVAR']);

Rafraichir la prévisulation dans le navigateur :

.htaccess n'est pas activé sur les serveur Apache sur AWS Cloud9

.htaccess n'est pas activé. Pour corriger ce problème, éditer le fichier /etc/apache2/apache2.conf avec l'une des commandes suivantes :

sudo vim /etc/apache2/apache2.conf
sudo nano /etc/apache2/apache2.conf

Chercher et replacer les lignes suivantes :

<Directory /home/ubuntu/environment/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

par :

<Directory /home/ubuntu/environment/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Activez mod_rewrite avec la commande suivante :

sudo a2enmod rewrite

Redémarrer le serveur Apache afin d'appliquer les changements :

sudo service apache2 restart

Et voilà !

le fichier .htaccess est activé dans le serveur Apache EC2 AWS Cloud9

Voir aussi


Dernière mise à jour : 23/11/2021