Menu
InformatiWeb Pro
  • Index
  • Admin système
  • Virtualisation

Connexion

Inscription Mot de passe perdu ?
US
  • Windows Server
    • WMS 2012
    • WS2012 R2
    • WS2016
  • Citrix
    • Citrix NetScaler Gateway
    • Citrix XenApp / XenDesktop
    • Citrix XenServer
  • VMware
    • VMware ESXi
    • VMware vSphere
    • VMware Workstation
  • Microsoft
    • Hyper-V
  • RAID
    • Adaptec SmartRAID
  • UPS
    • APC Back-UPS Pro
  • InformatiWeb Pro
  • Admin système
  • Linux
  • Installer un serveur Web complet avec Apache, PHP, MySQL et phpMyAdmin sous Ubuntu
  • Linux
  • Apache
  • 31 janvier 2014 à 20:13
  • InformatiWeb

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

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.

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".

Bash

vi /etc/apache2/apache2.conf

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.

Apache

# Nom du serveur
ServerName www.mon_domaine.com

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

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.

Attention : PHP5 n'est plus disponible à l'heure actuelle, la commande ci-dessous ne fonctionne donc plus.

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

Important : pour installer la dernière version disponible pour php, ainsi que les extensions courantes (Curl, GD, MySQL, ...), utilisez la commande ci-dessous.

Bash

apt-get install libapache2-mod-php php php-common php-curl php-dev php-gd php-pear php-imagick php-imap php-json php-memcache php-mysql php-ps php-pspell php-snmp php-tidy php-xmlrpc php-xml

Modifiez ensuite les informations suivantes dans le fichier "/etc/php/8.1/apache2/php.ini" comme ci-dessous.
Note : le chemin du fichier "php.ini" varie en fonction des versions de PHP.

Bash

vi /etc/php/8.1/apache2/php.ini

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 = On
# magic_quotes_gpc permet de "protéger" les données "GET", "POST", ... en ajoutant des / devant les '
# Avant PHP 5.4, il est recommandé de la désactiver et de protéger son code PHP correctement. D'ailleurs cette fonctionnalité n'existe plus depuis 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.

Bash

/etc/init.d/apache2 reload

3. Installer MySQL

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

Bash

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

Modifiez ensuite le fichier "/etc/mysql/conf.d/mysql.cnf" comme ci-dessous.

Bash

vim /etc/mysql/conf.d/mysql.cnf

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 :

Bash

/etc/init.d/mysql reload

Sécurisez ensuite votre serveur MySQL en utilisant la commande ci-dessous.

Attention : MySQL utilise maintenant le compte "root" de votre distribution Linux au lieu du compte "root" interne à MySQL.
Le changement du mot de passe du compte "root" interne à MySQL n'est donc plus possible via la commande ci-dessous.
Pour activer le compte "root" d'Ubuntu ou changer son mot de passe, référez-vous à notre tutoriel : Activer le compte root sous Ubuntu.

Bash

mysql_secure_installation

Les questions suivantes vous seront posées :

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

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.

Important : assurez-vous de cocher la case "apache2" en appuyant sur la barre d'espace avant de passer à l'étape suivante.

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.

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-available/phpmyadmin.conf" comme ci-dessous.

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

Rechargez la configuration du serveur web Apache pour prendre en compte la modification de cet alias en exécutant la commande ci-dessous.

Bash

/etc/init.d/apache2 reload

Partager ce tutoriel

Partager
Tweet

A voir également

  • StartSSL - Renouveller ses certificats SSL

    Linux 8/9/2016

    StartSSL - Renouveller ses certificats SSL

  • StartSSL - Sécuriser gratuitement votre site web

    Linux 24/7/2015

    StartSSL - Sécuriser gratuitement votre site web

  • Ubuntu - Sécuriser son serveur web Apache (HTTPS)

    Linux 13/2/2014

    Ubuntu - Sécuriser son serveur web Apache (HTTPS)

Commentaires

Vous devez être connecté pour pouvoir poster un commentaire

Donnez-nous votre avis

Contenu épinglé

  • Logiciels (Admin système)
  • Logiciels Linux
  • Nos programmes
  • Conditions générales
  • Donnez votre avis

Contact

  • Livre d'or
  • Support technique
  • Contact

® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.

Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.