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.