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

image_print

7 réponses à to “Tutoriel | Installation d’un environnement LAMP (Apache, PHP, Mysql)”

  • Cascador says:

    Hello,

    Bien ton tuto !

    Je me trompe en disant que si on n’installe pas phpmyadmin, on se retrouve sans le paquet php5-mysql ?

    Quelques pistes pour améliorer ton tuto :
    – Parler des dépôts Dotdeb très utilisés pour les environnements LAMP
    – Parler du pinning et du fichier /etc/apt/preferences car il y a sûrement beaucoup de gens voulant s’amuser avec un nouveau serveur apache mais encore beaucoup plus d’admin voulant réinstaller/déplacer/tester/restaurer un serveur apache avec la même version php que le serveur actuellement en prod

    Tcho !

  • Cascador says:

    Hello,

    En fait ce que je voulais dire (je m’exprime mal désolé lol), c’est qu’en suivant ton tuto, on n’a pas vraiment un serveur LAMP puisque php n’arrive pas à communiquer avec MySQL. Ca se discute, just my 2 cents.

    Pour info, tu peux utiliser service apache2 restart sur Debian (donc tu peux utiliser service nomduservice action aussi bien sur Debian que sur Red Hat).

    Tcho !

    • Hello,

      En effet pour le premier point je vais légèrement modifier le tuto en préconisant l’ajout du paquet php5-mysql. Je te remercie pour cette remarque 🙂
      Concernant « service » il est vrai que depuis la debian 7 (il me semble) on peut utiliser ce petit raccourci et j’en suis plus que ravi!! 😉

  • flaurent says:

    je veux mettre en place un serveur web sécurisé sous centos 5.3
    aidez moi svp
    je suis un peu embrouillé
    merci d’avance

  • flaurent says:

    je veux mettre sur pied un serveur web sécurisé sous centos 5.3
    et je ne sais comment m’y prendre
    aidez moi
    svp

    • Bonjour Florent,
      Si tu désires monter toi même ton serveur Web je te conseille de prendre quelques dispositions afin d’éviter toutes surprises:

      – Mettre en place les règles de Firewall adéquat (via Iptables) afin de laisser ouvert que les ports nécessaire (SSH, DNS ,HTT etc.)
      – Attribues les bons droits à tes fichiers WEB (chmod 755
      – Définis un virtualHost pour ton site (indiquer à la fin de mon tuto)
      – Limiter le risque d’attaque pas déni de service (DOS) en ajustant les valeurs d’autorisation de connexions simultanées en fonctions du trafic estimé (dans le fichier /etc/httpd/httpd.conf.
      MaxClients 100
      KeepAlive On
      MaxKeepAliveRequests 80
      KeepAliveTimeout 5
      -Enfin rajoute ServerTokens Prod dans le fichier de configuration d’apache (/etc/http/httpd.conf) afin d’éviter de donner trop d’information sur ta machine au cas où un petit malin s’amuse à faire un telnet sur ton port HTTP.

      Je pense que si tu effectues ces actions tu pars sur de bonnes bases.

      Pour le reste réfères toi à mon tutoriel 😉
      Maintenant si tu as d’autres question n’hésites pas à me contacter via mon mail: [email protected]

Laisser une réponse à Cascador