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 :
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:
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 :
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:
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 :
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.
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é. 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à !