Créer un serveur web complet sous debian - #2 PHP5 et MySQL

Statut
N'est pas ouverte pour d'autres réponses.

Xavier Mustin

Administrator
Staff member
#1
Tutorial: Créer un serveur web complet sous debian - #2 PHP5 et MySQL

Voici un nouveau tutorial qui vous sera sans doute utile si vousvenez d'installer la distribution linux Debian (Ou Ubuntu) sur votreserveur.
Introduction

Objectif de ce tutorial


L'objectif du tutorial est d'obtenir un serveur linux debianpermettant d'héberger et de gérer vos sites web PHP / MySQL à distance,uniquement avec un accès SSH.
 
Pré requis


Pour réaliser ce tutorial, vous devrez au préalable avoir desconnaissances en ligne de commande linux (Au moins les commandesbasiques: cd, mkdir, mv ...).

Disposer d'un client SSH (Comme Putty), d'un client FTP (CommeFileZilla), et bien sûr de votre serveur avec une Debian fraichementinstallée.

Vous aurez aussi besoin d'au moins un nom de domaine pointant sur votre serveur.

 
Installation et configuration de PHP5


Maintenant que notre serveur Apache2 est opérationnel, nous allons pouvoir lui ajouter le plugin PHP5.
Il existe deux types d'installation de PHP5. Soit le mode CGI, soit le module apache (libapache2-mod-php5).Nous utiliserons le mode apache qui a l'avantage d'être fonctionnel dès son installation avec apache.Retournez sur votre console SSH en mode root ou utilisez sudo devant chaque commande.
Code:
[i]root [~] >[/i] apt-get install libapache2-mod-php5
Et c'est tout, PHP5 est installé ! Simple non ?
Problème d'installation de PHP5 sur debian ?


Si APT ne trouve pas le package libapache2-mod-php5, c'est sans doute que vous n'utilisez pas une version de debian récente. Dans ce cas, ajoutez le dépôt suivant dans /etc/apt/sources.list
Code:
deb [url=http://packages.dotdeb.org/]http://packages.dotdeb.org[/url] ./
Mettez à jour les dépôts avec apt-get update puis réitérez l'installation.
Installation des plugins supplémentaires pour PHP5


PHP dispose d'un grand nombre de plugins, voici une liste des principaux qui vous serons sans doute utile:
  • php5-dev: Fichiers permettant le développement de modules PHP5.
  • php5-gd : Ajout du support de GD 2 pour le traitement des images en PHP.
  • php5-mcrypt: Ajout du support de la librairie mcrypt qui ajoute des fonctions de cryptage avancées.
  • php5-memcache: Ajout du module memcache sur PHP. Memcache est un démon permettant de réduire la charge du serveur en mettant en cache des informations (Appels en BDD) directement dans la mémoire serveur.
  • php5-mysql: Le module MySQL pour PHP5. Nous verrons comment installer MySQL dans le chapitre suivant.
  • php-pear: PEAR le framework et système de distribution d'applications.

Installons maintenant les extensions PHP qui nous serons utiles:
Code:
[i]root [~] >[/i] apt-get install php5-gd php5-mcrypt php-pear
Vérifiez bien que APT ne vous impose pas d'installer d'autres versions de PHP.

 
Un petit tour dans la configuration de PHP


Maintenant que tout est opérationnel, allons faire un tour dans la configuration de PHP pour faire quelques modifications:
Code:
[i]root [~] >[/i] nano /etc/php5/apache2/php.ini
Balises d'ouverture de PHP


Ligne 83
Code:
short_open_tag = On
Si vous utilisez des balises courtes dans vos scripts PHPau lieu de , activez short_open_tag.

Il est néanmoins conseillé de ne pas utiliser les balises courtes, pour disposer d'un code portable et compatible.

 
Affichage des erreurs


Pour plus de confidentialité et sécurité, si vous êtes en production, il est conseillé d'empêcher l'affichage des erreurs pour ne donner aucune information sur votre code.

Ligne 323
Code:
display_errors = Off
Passez la valeur display_errors à Off pour ne plus afficher les erreurs.

Et vous pouvez par contre activer le reporting d'erreurs dans un fichier de log que vous seul pourrez voir:

Ligne 333
Code:
log_errors = On
 
Upload de fichiers


Si vous souhaitez permettre l'upload de fichiers en PHP, vous pouvez modifier les valeurs d'upload:

Ligne 537
Code:
; Whether to allow HTTP file uploads.
file_uploads = On
Activez ou refusez les uploads en PHP.

Ligne 545
Code:
; Maximum allowed size for uploaded files.
upload_max_filesize = 8M
Augmentez ou réduisez le poids maximum des fichiers uploadables.

Ligne 267
Code:
max_execution_time = 60
Si vous activez l'upload, augmentez le temps maximal d'éxécution des scripts php, à au moins 1 minute.

 

Sauvegardez et quittez le fichier de config puis restartez apache2 pour prendre en compte les modifications.
Code:
[i]root [~] >[/i] apache2 -k restart
 
Test de l'installation de PHP


Nous allons tester si l'installation de PHP et de ses plugins s'est bien effectuée.

Dans votre répertoire web, supprimez le fichier index.html de test précedemment créé, puis créez un nouveau fichier index.php dans ce répertoire.
Code:
[i]root [/var/www/lafermeduweb] >[/i] rm -rf index.html
[i]root [/var/www/lafermeduweb] >[/i] nano index.php
Code:
<?php
phpinfo();
?>
Enregistrez et quittez le fichier index.php.

Ouvrez votre navigateur et entrez l'adresse de votre serveur:


Si tout s'est passé correctement, le PHPInfo devrait s'afficher.

Vérifiez que tous les modules soient bien chargés (GD, mcrypt ...).

 
Installation et configuration de MySQL


Passons maintenant à l'installation de notre base de données favorite (... ou pas, mais quand même bien pratique avec PHP).

 
Installer MySQL sur debian (ou ubuntu)
Code:
[i]root [/var/www/lafermeduweb] >[/i] apt-get install mysql-server
Les paquets suivants devraient être installés:
Code:
libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl
  mysql-client-5.0 mysql-server mysql-server-5.0 psmisc
Comme nous l'avions vu dans le chapitre précedent, il existe un package php5-mysql qui va nous permettre d'installer la prise en charge de MySQL dans PHP.
Code:
[i]root [/var/www/lafermeduweb] >[/i] apt-get install php5-mysql
Les paquets suivants devraient être installés:
Code:
libmysqlclient15off mysql-common php5-mysql
MySQL est maintenant installé, passons à sa configuration.

 
Changer le mot de passe root de MySQL


Première chose à faire, car assez critique, attribuer un mot de passe root à votre serveur MySQL.
Code:
[i]root [/var/www/lafermeduweb] >[/i] mysql

Welcome to the MySQL monitor.Commands end with ; or g.
Your MySQL connection id is 8
Server version: 5.0.32-Debian_7etch8-log Debian etch distribution

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

[b]mysql> use mysql[/b]
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

[b]mysql> UPDATE user SET password = PASSWORD('VOTREPASSMYSQL') WHERE user = 'root';[/b]
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2Changed: 2Warnings: 0

[b]mysql> flush privileges;[/b]
Query OK, 0 rows affected (0.00 sec)

[b]mysql>quit[/b]
Bye
Voilà, maintenant votre mot de passe root est défini (N'oubliez pas de remplacer VOTREPASSMYSQL par votre propre mot de passe ...)

La configuration de base de MySQL suffit pour notre environnement web, si vous souhaitez modifier des options spécifiques, modifiez le fichier /etc/mysql/my.cnf

 
Installation de phpMyAdmin


Pour plus de confort, il est recommandé d'installer phpMyAdmin qui nous permettra de gérer notre base de données MySQL visuellement à partir de notre navigateur web.

Là encore, APT nous simplifie bien la tâche, en une seule commande, phpMyAdmin est prêt à emploi (ou presque):
Code:
[i]root [/var/www/lafermeduweb] >[/i] apt-get install phpmyadmin
Configuration de phpmyadmin


Par défaut, la configuration de phpMyAdmin est prête à être utilisée, mais vous pouvez changer quelques paramètres:
Code:
[i]root [/var/www/lafermeduweb] >[/i]  nano /etc/phpmyadmin/config.inc.php
Par exemple, changer la méthode d'identification:
Code:
$cfg['Servers'][$i]['auth_type']     = 'cookie';    / Authentication method (config, http or cookie based)?
Je vous invite à regarder les différentes options disponibles et de les changer si besoin.

Dans notre cas, nous garderons la configuration par défaut.

Vérifiez aussi, dans le cas où vous utilisiez le mode d'authentification 'cookie' (defaut), qu'il y'ai bien l'instruction:
Code:
$cfg['blowfish_secret'] = 'dYSD2H5lFcfHUJDsC0GrQczfwP';
avec une chaîne de caractères aléatoire, dans le fichier blowfish_secret.inc.php

 
Test de phpMyAdmin


Un bon test 3 en 1 qui va nous permettre de voir si PHP, MySQL et phpMyAdmin sont correctement installés.

Ouvrez votre navigateur, tapez l'adresse suivante:

http://IP_SERVEUR/phpmyadmin/
Entrez votre login root et le mot de passe associé.Si tout marche bien, l'identification fonctionnera et vous verrez les bases de données de MySQL dans la colonne de gauche. 
Conclusion de cette partie 2


Votre serveur web avec la prise en charge de PHP5 et MySQL est désormais opérationnel.

Mais développer avec une console SSH n'est pas vraiment pratique ...

Dans le prochain épisode, nous verrons comment installer et configurer un serveur FTP pour transférer nos fichiers sur le serveur.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut