Tutoriel | Installation d’un environnement LAMP (Apache, PHP, Mysql)

Article publiée le 4 Octobre 2013

Mise à jour le 5 Octobre 2013

 

En parcourant une fois de plus les forums je me suis aperçus que beaucoup d’admins débutants avaient des difficultés pour installer un environnement LAMP (Apache, PHP, Mysql).

Ci-dessous un tutoriel complet sur l’installation d’un environnement LAMP avec quelques astuces en plus!

Ce tutoriel est adapté aussi bien pour les utilisateurs de Centos/RedHat que pour les utilisateurs de Debian/Ubuntu Server

 

1) Installation Apache

Sous Debian:

apt-get install apache2

Sous Redhat/Centos:

yum install httpd

service httpd start

Attention sous RedHat/Centos, n’oubliez pas de désactiver le firewall ou de le paramétrer en conséquence. (service iptables stop && chkconfig iptables off)

Vérifiez que les services apaches fonctionnement correctement en vous connectant via votre navigateur ) à l’ip ou le dns de votre machine.

Cette page devrait être affichée (pour les utilisateurs de Debian):

Pour les utilisateurs de Centos/RedHat:

 

2) Installation de PHP

Sous Debian

apt-get install php5 php5-mysql

Sous Centos/RedHat:

yum install php*

Redémarrez votre service apache:

/etc/init.d/apache2 restart (Sous Debian)

service httpd restart (Sous RedHat)

Sous debian j’ai déjà remarqué que le module php d’apache pouvait ne pas s’activer automatiquement ce qui fait que vos pages PHP ne seront pas interprétées!

Pour résoudre ce problème: a2enmod php && /etc/init.d/apache2 restart

 

3) Installation de Mysql

Sous Debian:

apt-get install mysql-server

Une interface peut apparaître afin de vous demander d’entrer le mot de passe root de Mysql

Sous Redhat/Centos

yum install mysql-server

Démarrer le service Mysql: service mysqld start

 

Petite parenthèse:

Certain voudrons certainement changer l’emplacement du  tablespace (la ou sont stocké vos datas), pour cela:

– Créez le répertoire qui contiendra les tablespace de Mysql : mkdir <votre repertoire>

– Changez les droits de ce répertoire chown mysql:mysql <repertoire>

– Modifiez le fichier my.cnf en modifiant « datadir=/var/lib/mysql » par votre nouveau répertoire.

(Ce fichier se situe dans le répertoire /etc/ sous Centos/RedHat et dans /etc/mysql sous Debian).

 

Pour initialiser le mot de passe root de Mysql (ce que je recommande fortement pour des raisons évidentes de sécurité)

On vérifie:

 3) PHPMyadmin

Si vous n’êtes pas très bon en base de donnée ou que vous avez tout simplement un client allergique à la ligne de commande je vous suggère d’installer PHPMyAdmin.

Pour ceux qui ne connaissent pas PHPMyadmin est une interface Web d’administration de Mysql.

Pour l’installer sous debian:

apt-get install phpmyadmin

Ce message devrait apparaître

Avec la barre d’espace sélectionnez apache2 puis sélectionnez OK

Sélectionnez « oui » et valider avec la touche entrer

Entrez le mot de passe root de mysql puis validez.

 

Sous RedHat/Centos ou installation manuelle:

Téléchargez phpmyadmin depuis le site: http://www.phpmyadmin.net/home_page/index.php

– Dezippez l’archive: unzip -e <archive>

– Créez un répertoire dans le répertoire web par défaut d’apache (/var/www ou /var/www/html suivant les distributions)

mkdir <répertoire web d’apache>/phpmyadmin

– Copiez tout le contenu dans ce répertoire

 

Se connecter à PHPMyAdmin

Une fois l’installation terminée connectez vous via votre navigateur à l’url: <IP ou DNS de votre serveur>/phpmyadmin

Connectez vous en indiquant les identifiant root de Mysql

 

Petite  aperçu de phpmyadmin:

 

 

4) Quelque petits tuyaux!

Cette partie de ce tutoriel donne des réponses en vrac à des question récurrentes que je retrouve sur la plupart des forums:

Comment modifier le port d’écoute d’apache?

Sous RedHat Centos: modifiez le fichier /etc/httpd/conf/httpd.conf puis cherchez « Listen 80 » et modifiez la valeur 80 par le port de votre choix.

Sous Debian/Ubuntu: modifiez le fichier /etc/apache2/ports.conf puis cherchez « Listen 80 » et modifiez la valeur 80 par le port de votre choix.

 

Exemple de virtualhost:

 

<VirtualHost 1.1.1.3:80>
ServerName monsite.com
ServerAdmin [email protected]

DocumentRoot /monsite
DirectoryIndex index.php index.html index.htm

ErrorLog /var/log/apache2/monsitelog
CustomLog /var/log/apache2/monsite.log combined

<Directory /home/monsite/monsite/>
Options -Indexes
AllowOverride All
Order allow,deny

# Restriction par sous réseau pour plus de securité!

Allow from 192.168.0.0/24

</Directory>

php_value error_log /home/site/log/php/monsite.log
php_value warning_log /home/site/log/monsite.log
php_value log_errors On
php_value register_globals Off

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* – [F]
</VirtualHost>

 

 

Exemple de virtualhost avec SSL:
<VirtualHost 1.1.2..2:443>
ServerName monsite.com
ServerAdmin [email protected]
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

DocumentRoot /home/monsite/site

DirectoryIndex index.php index.html

LogLevel info

ErrorLog /var/log/apache2/error.log

CustomLog /var/log/apache2/access.log combined

 

<Directory /home/monsite/site/>

ErrorDocument 404 /index.php?currentPage=pageUnfound
Options FollowSymLinks Indexes MultiViews

AllowOverride All

Order allow,deny

allow from all

</Directory>

 

php_value error_log /home/monsite/log/php/error.php.log

php_value warning_log /home/monsite/log/php/warning.php.log

php_value log_errors On

php_value register_globals Off

ServerSignature On

Options FollowSymLinks
</VirtualHost>

 

 

Si vous avez d’autres questions n’hésitez pas à me les envoyer via mon mail dans la rubrique « me contacter » ou  en commentant cette article.