Linux-Apache-MySQL-PHP

Un article de Wiki de la communauté Mandriva.

Jump to: navigation, search


Cette page va vous permettre de mettre en place un serveur web, propulsé par Apache, motorisé par PHP et utilisant une base de données MySQL.

Sommaire

[modifier] Généralités

Chaque brique est indépendante et a une fonction spécifique :

  • Linux est le système d'exploitation, il prends en charge le matériel (sauvegarde, etc.)
  • Apache est le serveur web, il gère les connexions simultanées, les messages d'erreurs (404 !), etc.
  • MySQL est la base de données, il stocke les données et permet un accès rapide
  • PHP, prend les données dans la base MySQL et crée les pages HTML qu'Apache transmettra au navigateur

Bien entendu, ces briques sont les plus populaires, mais elles peuvent être substituée par d'autres : Linux par Windows (déconseillé ! ;) ), Apache par lighttpd, MySQL par PostgreSQL, PHP par Python ou Ruby.


[modifier] Installation

Pour commencer l'installation de votre serveur LAMP, vortre base urpmi doit être à jour. Ensuite seulement ..

[modifier] Apache : le serveur (1/4)

Ouvrez le centre de controle Mandriva dans la section "vérifier les programmes disponibles..."

Ouvrir le MCC

et installez le paquet "apache-mpm-preforch" ...

Installer le paquet Apache

Une fois le paquet du serveur Apache installé, nous devons démarrer le serveur. Pour cela, vous pouvez le faire en mode graphique grâce à l'outil graphique du MCC (système > gérer les services). Le nom du service correspondant à apache est "httpd" :

Gestion des Services

Dans notre cas, nous allons ensuite utiliser la console car c'est aussi très pratique et nous aurons accès à plus d'informations. Mais libre à vous, de choisir le mode graphique si la console vous indispose. Dans une console en mode Root c'est à dire en tapant dans la console "su" puis votre mot de passe ...

Console : Passer en root

tapez ...

Image:Konsole.png
[root@ordi ~]# /etc/init.d/httpd start

afin de controler le bon fonctionnement d'apache :

Contrôler le bon fonctionnement d'Apache

Si à l'écran paraît ce message "Could not reliably determine the server's fully qualified domain name,using 127.0.0.1 for ServerName", il suffit de taper en root (en remplaçant bien sûr le mot exemple par ce que vous voulez) :

Image:Konsole.png
[root@ordi ~]# echo "ServerName www.exemple.tld">>/etc/httpd/conf/httpd.conf

Relancez ensuite apache avec cette commande :

Image:Konsole.png
[root@ordi ~]# /etc/init.d/httpd restart
Redémarrer Apache

Si en tapant dans le navigateur internet "localhost" apparaît "it work!" c'est que apache fonctionne correctement.

Tester le fonctionnement d'Apache dans un navigateur

Bien, le serveur est opérationnel. Passons à la base de données.

[modifier] Mysql : la base de données (2/4)

Allez ! Rebelote, on ouvre le centre de controle Mandriva dans la section "vérifier les programmes disponibles..." et ensuite on installe le paquet "MySQL-5..." qui va bien :

Installer Mysql
Attention !

Si vous avez installé mysql sans modifier le nom d'hôte vous aurez probablement l'erreur suivante :

Image:Konsole.png
[root@ordi ~]# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)

Donc soit vous changez votre nom d'hôte avant :

Image:Konsole.png
[root@ordi ~]# /bin/hostname 127.0.0.1

ou alors vous faites la manip' suivante en console (toujours en root) :

Image:Konsole.png
[root@ordi ~]# rpm -e mysql

rm -f /var/lib/mysql/mysql/*

/bin/hostname 127.0.0.1

urpmi mysql

Dans la console en Root tapez ...

Image:Konsole.png
[root@ordi ~]# /etc/init.d/mysqld start

... afin de lancer le service MySQL :

Démarrer Mysql

Tapez ensuite la commande :

Image:Konsole.png
[root@ordi ~]# mysql_secure_installation

Vous venez de lancer un script pour une première installation de Mysql.

Sécuriser Mysql

Les questions qui suivent vont sécuriser l'installation de votre base de données. Vous pouvez y répondre de la façon suivante :

  "change the root password ?"               taper y et tapez un mot de passe .
  "remove anonymous users"                   taper y
  "disallow root login remotly?"             taper n
  "remove test database and access to it "   taper y
  "reload privilege tables now"              taper y

Voilà ! Votre avez renseigné les paramètres nécessaires.

Testons MySQL en le relançant avec la commande ...

Image:Konsole.png
[root@ordi ~]# /etc/init.d/mysqld restart

... et essayons de nous connecter à MySQL avec la commande :

Image:Konsole.png
[root@ordi ~]# mysql-u root-p

... suivi à l'invite, saisissez votre mot de passe choisis précédemment. Tapez :

show databases;

...pour tester votre base de données ...

Visualiser les BDD
exit

... pour quitter et revenir en console. Bien, le plus dur est fait. Passons au langage PHP.

[modifier] PHP : le P de LAMP (3/4)

Ouvrez le centre de controle Mandriva dans la section "vérifier les programmes disponibles..." et installez le paquet "apache-mod_php-5..." et ses dépendances.

Relancez apache pour prendre en compte PHP avec la commande :

Image:Konsole.png
[root@ordi ~]# /etc/init.dhttpd restart
Démarrer Mysql

Pour vérification testons la création d'une page PHP , en console tapez :

Image:Konsole.png
[root@ordi ~]# echo "<?php phpinfo();?>">>/var/www/html/test.php && chmod a+r /var/www/html/test.php

Cette commande crée un fichier texte nommé "test.php" et édite ce même fichier en ajoutant le code source ...

<?php phpinfo();?>

A tester en ouvrant votre navigateur internet et, dans la barre d'adresse, entrez :

localhost/test.php 

[modifier] PhpMyAdmin : Se faciliter la vie (4/4)

Ce dernier permet de gérer sa base de données avec une interface web beaucoup plus user-friendly que la console

Allez une dernière fois ! Ouvrez le centre de controle Mandriva dans la section "vérifier les programmes disponibles..." et installez le paquet "phpmyadmin". Une fois installé lancez le navigateur web et entrez dans la barre d'adresse ...

localhost/phpmyadmin

... puis insérer votre mot de passe et ...

PHPMyAdmin

Bravo, vous êtes maintenant l'heureux posssesseur d'un serveur LAMP opérationnel.

[modifier] Méthode alternative

Pour installer d'un seul coup Apache, PHP et MySQL, voici ce qu'il faut taper :

Image:Konsole.png
[root@ordi ~]# urpmi apache-mod_php MySQL php-mysql

ou encore

Image:Konsole.png
[root@ordi ~]# urpmi task-lamp

[modifier] Astuces

[modifier] UserDir

Si vous souhaitez que chaque utilisateur de la machine puisse avoir un site web perso :

Image:Konsole.png
[root@ordi ~]# urpmi apache-mod_userdir

Ainsi, si l'utilisateur toto mets des pages dans son dossier "public_html" (qu'il doit créer dans son home), elles seront accessibles à l'adresse http://mamachine.com/~toto/

[modifier] Drakwizard

Drakwizard vous permettra d'installer et de configurer Apache automatiquement depuis le Centre de Contrôle Mandriva.

[modifier] Apache

Visitez http://127.0.0.1/ : si vous obtenez "It works!", ça veut dire qu'Apache fonctionne !

[modifier] PHP

Créez une page test.php qui contient :

<?php
phpinfo();
?>

Appelez-la à travers Apache (http://...), cela devrait vous afficher les informations sur PHP.

À noter !
Si jamais Firefox vous propose de sauvegarder la page, c'est que le module PHP n'est pas installé dans Apache. Il faut installer le paquet apache-mod_php.

[modifier] MySQL

  • Pensez à bien démarrez le service le cas échéant :
Image:Konsole.png
[root@ordi ~]# service mysqld start

Test depuis la ligne de commande

mysql -u root

vous devez obtenir le prompt (>) quittez à l'aide d'un "Control-C"

  • positionnez tout de suite un mot de passe pour le compte root de votre base

mysqladmin -u root flush-privileges password "votre-joli-mot-de-passe-super-tordu"

  • Test depuis PHP

Via PHPMyAdmin ou via une requête simple.

[modifier] Problèmes courants

  • Le serveur propose de télécharger le fichier PHP plutôt que de l'interpréter.
  • Cela se produit lorsque le module PHP du serveur Apache n'interprète pas la page.
  • Vérifiez que le module est installé : rpm -q apache-mod_php
  • Vérifiez la configuration du module /etc/httpd/modules.d/70_mod_php.conf, qui doit contenir la ligne :
AddType application/x-httpd-php .php

Dans cet exemple, seuls les fichiers finissant par .php seront interprétés : pensez à cela si vous avez des applications en .php3 ou des pages en .php5 (par exemple, chez free.fr).


[modifier] Remerciements

Liens

Merci à DarkVodka pour le tuto originel et à Mandriva-Online.eu pour les superbes screens.

Merci à Olivier Faurax d'avoir pris le temps de dupliquer ce tuto sur le wiki.



Modifié par --Neije 29 mai 2008 à 18:32 (CEST)