Il est souvent plus facile d’installer un serveur tout fait comme MAMP pour développer ces projets. Je vous l’accorde l’installation et la mise en place se fait très facilement. Mais lors du déploiement en production il y a très souvent des surprises tel que des extensions manquante, des configurations un peu foireuse ou encore du code qui ne s’execute pas correctement. La meilleur façon de s’approcher au maximum d’un environnement de production est de mettre en place un serveur web similaire.

Il existe des logiciels comme VMWare ou encore VirtualBox permettant l’émulation de système d’exploitation. Pour ce petit court  j’utiliserais VirtualBox, j’ai également installé un système Linux Debian 9. 

Une fois votre système installé lancer le et connectez vous en tant que root .

Nous allons devoir installer plusieurs choses : 

  • Mysql pour stocker les données
  • Php
  • Apache

En plus nous pourrons également installer git pour récupérer facilement nos projets versionnés, composer ou encore nodeJS. C’est partie pour la mise en place de notre serveur web et de toute notre architecture.

Commençons par mysql

Rien de bien compliqué , il suffit d’utiliser apt-get 

apt-get install mysql-server mysql-common -y 

Cette commande nous installe mysql et toutes ces dépendances. Le « -y » servira simplement a confirmer automatiquement l’installation des packages. Pour vérifier si mysql est bien installé je vous invite a taper « mysql »

Interface d'accès au serveur mysql

Vous obtiendrais l’interface d’accès. En revanche vous avez pu remarquer qu’aucun mot de passe ne vous a été demandé. L’accès au anonyme est autorisé. Il faut commencer par le désactivé.

mysql_secure_installation

Méthode magique de mysql pour vous aidez a configurer la sécurité. Répondez ensuite aux questions

Configuration serveur mysql secure

Deux possibilités s’offrent a vous : 

  • Première possibilité : A l’appel de mysql vous avez un access denied et dans ce cas tout va bien passé à la suite.
  • Seconde possibilité : L’accès anonyme n’est pas désactivé. Dans ce cas il suffit de faire quelques petite manipulation.
mysql
Use mysql;
update user set plugin='' where User='root';
flush privileges;
exit
/etc/init.d/mysql restart

Cette fois c’est bon. Mysql anonyme est désactivé . Pour vous connecter il suffira maintenant de faire 

mysql -uroot -p

Et de saisir votre mot de passe. Notre base de données est installée. Passons a notre fameux serveur apache.

Configuration d’apache

apt-get install apache2

Et voila c’est réglé apache est installé. Evidemment on devra avoir une partie configuration un peu plus tard. Mais chaque chose en son temps. 

Configuration de Php7

Dernière étape php. Il existe plusieurs version de php mais pour debian 9, la version par défaut est 7.0 . De la même façon, il faut également pensé a installer quelques extensions utile pour les développement. Il s’agit d’une liste non exhaustive mais assez général.

apt install php7.0  php-curl php-mcrypt php7.0-zip php-mbstring  php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-json php7.0-mbstring php7.0-mysql php7.0-xml libapache2-mod-php7.0 php7.0-zip  php-gd imagemagick php7.0-soap -y 

Pour vérifier que tout es ok il suffit de faire 

php -v

Debian vous donnera la version présente.

Tout est installé pour faire fonctionner votre serveur. Etape suivante, créer notre premier projet php et mettre en place son URL de test. Notre test va être très simple, afficher un petit message en tapant sur une url de test.

Modifions notre fichier hosts, cela permettra a notre machine de savoir ou se trouve le serveur correspondant à une url précise. En fonction de votre système d’exploitation se fichier ne sera pas au même endroit.

Modifions notre fichier hosts, cela permettra a notre machine de savoir ou se trouve le serveur correspondant à une url précise. En fonction de votre système d’exploitation se fichier ne sera pas au même endroit.

Pour mac , ouvrez un terminal et taper simplement

sudo nano /etc/hosts

Pour Windows, le fichier ce trouve dans 

C:/Windows/System32/drivers/etc/hosts 

Il n’y a qu’une ligne a ajouter. L’ip de votre serveur et l’url , pour l’ip il suffit donc de faire

ip addr

Récupérez ensuite votre ip

Récupération de l'IP du serveur web

Dans mon cas j’ai 192.168.1.162 . Donc dans mon fichier hots j’aurai : 

192.168.1.162 kevin.test

Sauvegarder ensuite le fichier.

Configuration du serveur apache

Cette étape va permettre a votre serveur de savoir ou aller chercher une information lorsqu’une url précise est appelé. Rendons nous dans le dossier site available de apache.

cd /etc/apache2/sites-available

Ensuite, une fois dans ce dossier vous allez créer un fichier contenant la configuration suivante, dans mon cas se sera kevin.conf

<VirtualHost *:80>
    ServerName kevin.test
    ServerAlias kevin.test
    DocumentRoot /var/www/kevin
    <Directory /var/www/kevin/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
    </Directory>
    LogLevel debug
    ErrorLog ${APACHE_LOG_DIR}/kevin-error.log
    CustomLog ${APACHE_LOG_DIR}/kevin-access.log combined
</VirtualHost>

Bien évidemment remplacer les données par vos propres informations.
Par la suite, lancez ensuite la commande apache :

a2ensite kevin.conf

Un message vous demandera de redémarrer le serveur apache, rien de bien compliqué encore une fois

/etc/init.d/apache2 restart

La configuration est donc terminé. Allez maintenant créer le dossier de travail et ce fichier « test », celui renseigné dans votre config.

cd /var/www
mkdir kevin
cd kevin
nano index.php

Dans le fichier :

<?php
echo 'test';

Enregistrez votre fichier et aller sur votre navigateur. Accédez a votre site test ( kevin.test/ ) . S’affiche maintenant le message test mis dans notre fichier index.php. Vous avez donc votre espace de travail sur mesure. Dès a présent, vous pourrez installer un framework, un CMS ou autre. Vous pourrez, par exemple, créez votre api et l’utiliser depuis ce serveur. Si vous n’avez pas besoin de composer ou autre chose vous pouvez vous arrêterez ici. Sinon on continue avec le sourire 🙂

Installation de composer

Pour installer composer sur votre serveur vous allez avoir besoin de Php, coup de chance , on l’a installé juste avant.

#On va chercher le fichier
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

#On verifie - vous obtiendrez installer verified si tout es ok
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

#On lance l'install si tout es ok
php composer-setup.php

#On supprimer le fichier d'install
php -r "unlink('composer-setup.php');"

#On set Composer en global
mv composer.phar /usr/local/bin/composer

#On test composer
composer

Composer est maintenant installé , vous pouvez lancer vos installations ou créer vos projets. Encore une fois, de la simplicité.

Installation de git

Comme depuis le début, on va installer git avec une grande facilité.

apt-get install git -y

Voila git est installé. On passe à la suite.

Installation de NodeJS & npm

NodeJS est un serveur a part entière que nous allons installer en parallèle d’apache. Par conséquent, ils peuvent cohabiter sans problème.

apt-get install curl software-properties-common
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install nodejs

#On test maintenant 
node -v
#v10.15.3
npm -v 
#6.4.1

Voila donc après tout ça vous avez un serveur fonctionnel. Il est possible de customizer vos configurations autant que vous voudrez. Cela dépendra de vos besoins, de la technologie et autre. N’hésitez pas a me faire un retour sur vos installations .

Après une petite demi-heure de travail, vous avez mise en place votre serveur web.

A bientôt.

Show CommentsClose Comments

Leave a comment