Un serveur LAMP est un serveur utilisant 4 composants particuliers, destiné dans la plupart des cas à la publication de sites Web :
- Linux : le système d'exploitation
- Apache : le serveur Web
- MySQL : le serveur de base de données
- PHP : le langage de script
Le but ici est d'installer ces différents composants à partir des paquetages de la distribution Ubuntu Server 13.10 qui utilise actuellement les versions suivantes des composants :
- Linux v3.10.23
- Apache v2.4.6
- MySQL v5.5.37
- PHP v5.5.3
L'installation de l'ensemble est aisé grâce aux paquetages fournis par la distribution Ubuntu Server, le tout étant de les installer dans le bon ordre 🙂
Les étapes seront les suivantes :
- Installer le serveur Apache
- Installer le module PHP pour Apache
- Installer le serveur MySQL
- Installer le module MySQL pour PHP
Article mis à jour pour Ubuntu Server 13.10
1 – Installer le serveur Apache
Nous installerons ici le serveur Apache en mode prefork (mode recommandé pour l'utilisation de PHP).
Installation du paquetage apache2-mpm-prefork :
# aptitude install apache2-mpm-prefork
Commande de test rapide pour vérifier que le serveur Apache est installé :
# apache2 -v Server version: Apache/2.4.6 (Ubuntu) Server built: Mar 19 2014 20:56:01
Envoi d'une requête HTTP sur la page par défaut pour vérifier que le serveur répond via cURL (ou via un navigateur Web) :
# curl "http://localhost" <html><body><h1>It works!</h1> <p>This is the default web page for this server.</p> <p>The web server software is running but no content has been added, yet.</p> </body></html>
C'est bon, le serveur Apache est installé et fonctionnel !
Pour aller plus loin … :
La configuration Apache se trouve dans le répertoire /etc/apache2/
On y trouvera le fichier de configuration principal : apache2.conf
Cette configuration utilise des variables définies dans le fichier envvars et inclus les autres fichiers de configuration suivants
- httpd.conf : vide par défaut, permet d'ajouter d'autres directives Apache
- ports.conf : directives de configuration des ports d'écoute du serveur (ex: Listen)
- mods-enabled/*.load : modules à charger (liens symboliques vers ../mods-available)
- mods-enabled/*.conf : configuration des modules (liens symboliques vers ../mods-available)
- conf.d/* : fichiers de configuration supplémentaires (ex: charset)
- sites-enabled/* : configuration des hôtes virtuels (liens symboliques vers ../sites-available)
2 – Installer le module PHP pour Apache
Installer le paquetage libapache2-mod-php5 (installera PHP avec le patch Suhosin + l'interface ligne de commande + le module Apache)
# aptitude install libapache2-mod-php5
Commande de test rapide pour vérifier que PHP est installé :
# php5 -v PHP 5.5.3-1ubuntu2.6 (cli) (built: Jul 7 2014 16:54:32) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
Un rechargement du serveur Apache pour prise en compte du module sera fait automatiquement par l'installeur.
On peut maintenant créer notre première page PHP pour tester que l'ensemble Apache + PHP fonctionne :
# vim /var/www/phpinfo.php
Mettre ce script dans le fichier :
<?php phpinfo(); ?>
Enregistrer et quitter VIm :
:wq
On teste l'affichage de la page PHP via Apache avec cURL (ou via un navigateur Web) :
# curl "http://localhost/phpinfo.php"
Si ça fonctionne, beaucoup d'informations concernant PHP s'afficheront à l'écran.
Pour aller plus loin … :
La configuration PHP se trouve dans le fichier /etc/php5/apache2/php.ini.
La configuration des modules additionnels se trouvent dans /etc/php5/apache2/conf.d/ (ex : configuration du module PHP MySQL)
L'installation du module PHP pour Apache active celui-ci directement au serveur Apache :
# ls -l /etc/apache2/mods-enabled/ | grep php php5.conf -> ../mods-available/php5.conf => configuration PHP (ajout du SetHandler par exemple) php5.load -> ../mods-available/php5.load => instruction LoadModule
3 – Installer le serveur MySQL
Installer le paquetage mysql-server (meta-package regroupant le serveur dans sa dernière version ainsi que le client) :
# aptitude install mysql-server
Une fenêtre apparaitra pour choisir un mot de passe à l'utilisateur root, et le confirmer.
Même s'il est possible de ne pas mettre de mot de passe, il est vivement conseillé d'en mettre un !
Une fois que MySQL est installé, on peut faire une petite vérification en se connectant :
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 34 Server version: 5.5.37-0ubuntu0.13.10.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Une fois connecté, on peut exécuter une requête lambda, par exemple pour voir la version du serveur MySQL :
mysql> select version(); +-----------------+ | version() | +-----------------+ | 5.5.37-0ubuntu0 | +-----------------+ 1 row in set (0.00 sec)
C'est bon ! On peut quitter :
mysql> exit Bye
4 – Installer le module MySQL pour PHP
La dernière étape est d'installer le module MySQL pour PHP.
Pour cela, très simple, on installe le package … php5-mysql !
# aptitude install php5-mysql
Un rechargement du serveur Apache s'impose pour prendre en compte le nouveau module PHP :
# service apache2 reload
On peut maintenant créer un nouveau script PHP pour tester que l'ensemble Apache + PHP + MySQL fonctionne :
# vim /var/www/mysqlinfo.php
Mettre ce script dans le fichier (remplacer password par le mot de passe de l'utilisateur root MySQL) :
<?php $db = mysql_connect( 'localhost', 'root', 'password' ); mysql_select_db( 'mysql', $db ); $sql = 'SELECT version();'; $req = mysql_query( $sql ) or die( 'Erreur SQL !<br />'.$sql.'<br />'.mysql_error() ); while( $data = mysql_fetch_assoc( $req ) ) { print '<b>Version: '.$data['version()'].'</b>'; } mysql_close(); ?>
On teste l'affichage de la page PHP via Apache avec cURL (ou via un navigateur Web) :
# curl "http://localhost/mysqlinfo.php" <b>Version: 5.5.37-0ubuntu0.13.10.1</b>
Si la version MySQL s'affiche, c'est bon, le serveur Apache a exécuté une requête pour un script PHP qui requête le serveur MySQL.
La combinaison Apache + PHP + MySQL fonctionne : le serveur LAMP est opérationnel !
Pour aller plus loin … :
L'installation du module MySQL pour PHP l'active directement via l'ajout de fichiers au répertoire de configuration additionnel PHP (ajout de la directive extension=) :
# ls /etc/php5/apache2/conf.d mysqli.ini mysql.ini pdo_mysql.iniLe module est quant à lui ajouté directement dans le répertoire des modules PHP :
# ls /usr/lib/php5/20090626/ | grep mysql mysqli.so mysql.so pdo_mysql.so
Leave a Reply