Ubuntu - Installer un serveur Web complet avec Apache, PHP, MySQL et phpMyAdmin

Page 1 / 1
  • Publié le : 31 janvier 2014 à 20:13
  • Par Lionel Eppe

Dans ce tutoriel, nous allons installer un serveur de développement web complet comprenant :

  • Apache : Le serveur web en lui même.
  • PHP : pour créer des sites dynamiques
  • MySQL : Le serveur de base de données (qui est le plus utilisé dans le monde du web).
  • phpMyAdmin : L'outil de gestion de base de données mondialement connu écrit en PHP.

1. Installer Apache

Commençons par installer le serveur web Apache.

Code : Bash

apt-get install apache2

Une fois le serveur installé, nous allons empêcher l'affichage des informations concernant le serveur, affichées (par exemple) lors d'une erreur 404 :
Apache/x.x.xx (Ubuntu) Server at 192.168.1.xx Port 80

Pour cela, ajoutez les lignes suivantes en bas du fichier "/etc/apache2/apache2.conf" :

Code : Apache

# Empêche l'affichage des informations du serveur
ServerSignature Off
ServerTokens Prod

Vous pouvez ensuite donner un nom à votre serveur Apache en ajoutant la ligne ci-dessous.

Code : Apache

# Nom du serveur
ServerName www.mon_domaine.com

Redémarrez ensuite la configuration d'apache pour prendre en compte les changements :

Code : Bash

/etc/init.d/apache2 reload

 

2. Installer PHP

Installez ensuite le module "PHP" pour pouvoir créer des sites dynamiques.
Note : PHP sera automatiquement lié à votre serveur web Apache.

Code : Bash

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Modifiez ensuite les informations suivantes dans le fichier "/etc/php5/apache2/php.ini" comme ceci :

Code : PHP

# Variable super globale (à désactiver pour des raisons de sécurité)
register_globals = Off
# Cache php (masque les informations concernant PHP du header du serveur web).
# Etant donné que les pirates ne sauront pas la version de php utilisée sur le serveur, vous serez plus protéger contre les attaques.
expose_php = Off
# La directive "display_errors" permet d'afficher les erreurs produites par PHP.
# A activer lors du développement d'un site web mais à désactiver lors de la mise en production de celui-ci pour éviter que les pirates ne tombent sur des informations "sensibles".
display_errors = On
# short_open_tag permet d'utiliser les tags court <? ?> à la place des <?php ?>
short_open_tag = Off
# magic_quotes_gpc permet de "protéger" les données "GET", "POST", ... en ajoutant des / devant les '
# Il est recommandé de la désactiver et de protéger son code PHP correctement. D'ailleurs cette fonctionnalité set dépréciée depuis la version "5.3.0" de PHP et disparaitra  à partir de la version "5.4.0". 
magic_quotes_gpc = Off
# Permet de définir une liste de fonctions dangereuses à désactiver sur votre serveur. Vous remarquerez d'ailleurs qu'une liste de fonctions "pcntl_" est déjà renseignée dans la dernière version de PHP5. Dans ce cas, ajoutez simplement celles-ci à la liste.
disable_functions = symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd

Redémarrez ensuite la configuration d'apache pour prendre en compte les changements.
Note : PHP est un module qui est lié au serveur web Apache C'est donc ce serveur web qu'il faut redémarrer.

Code : Bash

/etc/init.d/apache2 reload

 

3. Installer MySQL

Installez maintenant le serveur de base de données MySQL.

Code : Bash

apt-get install mysql-server mysql-client mysql-common

Modifiez ensuite le fichier "/etc/mysql/my.cnf" comme ceci :

Code : Plain Text

[mysqld]
# Configure le serveur pour fonctionner par défaut avec l'UTF8.
# Ainsi lors de la création d'une base de données via phpMyAdmin (par exemple),
# l'interclassement sera automatiquement défini sur "utf8_general_ci".
character-set-server=utf8
collation-server=utf8_general_ci

Redémarrez ensuite la configuration de MySQL pour prendre en compte les changements :

Code : Bash

/etc/init.d/mysql reload

Sécurisez ensuite votre serveur MySQL en utilisant la commande :

Code : Bash

mysql_secure_installation

Les questions suivantes vous seront posées :

Code : Bash

# Le mot de passe de l'utilisateur root de MySQL
Enter current password for root : ****
# Inutile de changer le mot de passe vu que l'on vient de le configurer
Change the root password? : n
# Pour finir, répondez oui (Y) pour le reste des questions en appuyant sur la touche "Enter" (étant donné que le choix par défaut est Y (oui)).
# Supprime les utilisateurs anonymes 
Remove anonymous users? : y 
# Désactive l'accès root au serveur MySQL pour des raisons de sécurité évidentes
Disallow root login remotely? : y
# Supprime la base de donnée "test" créée à l'installation et qui est accessible par défaut par tout le monde.
Remove test database and access to it? : y
# Mise à jour des droits du serveur (notamment pour prendre en compte le nouveau mot de passe root si vous l'avez modifié)
Reload privilege tables now? : y
# Votre serveur MySQL est maintenant sécurisé 
All done!  If you've completed all of the above steps, your MySQL installation should now be secure.

 

4. Installer phpMyAdmin

Installez maintenant l'outil de gestion de base de données mondialement connu écrit en PHP : phpMyAdmin

Code : Bash

apt-get install phpmyadmin

Lors de l'installation de phpMyAdmin, une fenêtre s'affichera pour que vous puissiez sélectionner sur quel serveur web phpMyAdmin sera installé. Cochez la case "apache2" en appuyant sur la barre espace puis appuyez sur "Enter" pour valider.
Note : Si vous validez le choix sans avoir coché la case, il vous suffira de taper la commande "dpkg-reconfigure phpmyadmin" pour relancer la configuration de ce paquet.

Répondez ensuite "Oui" à la question : "Faut-il configurer la base de données de phpmyadmin avec dbconfig-common".

Puis, tapez le mot de passe du serveur Mysql (mot de passe de l'administrateur de la base de données) lorsque l'assistant vous le demandera.

Et enfin, indiquez un mot de passe (2x) pour le compte phpmyadmin qui sera automatiquement créé sur le serveur MySQL.

Pour terminer, vous pouvez encore sécuriser un peu plus votre phpmyadmin, en modifiant son alias dans le dossier des configurations d'apache.
Pour cela, modifiez le fichier "/etc/apache2/conf.d/phpmyadmin.conf" comme ceci :

Code : Apache

# Adresse du php my admin (choisissez une adresse perso pour que les pirates ne le trouve pas facilement)
Alias /my_super_admin /usr/share/phpmyadmin