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

L'objectif du tutorial est d'obtenir un serveur linux debian permettant d'héberger et de gérer vos sites web PHP / MySQL à distance, uniquement avec un accès SSH.
Voici les différentes parties du tutorial qui seront divisées en 5 billets:
Pour réaliser ce tutorial, vous devrez au préalable avoir des connaissances en ligne de commande linux (Au moins les commandes basiques: cd, mkdir, mv ...).
Disposer d'un client SSH (Comme Putty), d'un client FTP (Comme FileZilla), et bien sûr de votre serveur avec une Debian fraichement installée.
Vous aurez aussi besoin d'au moins un nom de domaine pointant sur votre serveur.
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.
root [~] > apt-get install libapache2-mod-php5
Et c'est tout, PHP5 est installé ! Simple non ?
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
deb http://packages.dotdeb.org ./
Mettez à jour les dépôts avec apt-get update puis réitérez l'installation.
PHP dispose d'un grand nombre de plugins, voici une liste des principaux qui vous serons sans doute utile:
Installons maintenant les extensions PHP qui nous serons utiles:
root [~] > 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.
Maintenant que tout est opérationnel, allons faire un tour dans la configuration de PHP pour faire quelques modifications:
root [~] > nano /etc/php5/apache2/php.ini
Ligne 83
short_open_tag = On
Si vous utilisez des balises courtes dans vos scripts PHP au 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.
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
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
log_errors = On
Si vous souhaitez permettre l'upload de fichiers en PHP, vous pouvez modifier les valeurs d'upload:
Ligne 537
; Whether to allow HTTP file uploads.
file_uploads = On
Activez ou refusez les uploads en PHP.
Ligne 545
; Maximum allowed size for uploaded files.
upload_max_filesize = 8M
Augmentez ou réduisez le poids maximum des fichiers uploadables.
Ligne 267
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.
root [~] > apache2ctl restart
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.
root [/var/www/lafermeduweb] > rm -rf index.html
root [/var/www/lafermeduweb] > nano index.php
<?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 ...).

Passons maintenant à l'installation de notre base de données favorite (... ou pas, mais quand même bien pratique avec PHP).
root [/var/www/lafermeduweb] > apt-get install mysql-server
Les paquets suivants devraient être installés:
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.
root [/var/www/lafermeduweb] > apt-get install php5-mysql
Les paquets suivants devraient être installés:
libmysqlclient15off mysql-common php5-mysql
MySQL est maintenant installé, passons à sa configuration.
Première chose à faire, car assez critique, attribuer un mot de passe root à votre serveur MySQL si celui-ci ne vous est pas demandé lors de l'installation précédente.
root [/var/www/lafermeduweb] > 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.
mysql> use mysql
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
mysql> UPDATE user SET password = PASSWORD('VOTREPASSMYSQL') WHERE user = 'root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>quit
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

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):
root [/var/www/lafermeduweb] > apt-get install phpmyadmin
Par défaut, la configuration de phpMyAdmin est prête à être utilisée, mais vous pouvez changer quelques paramètres:
root [/var/www/lafermeduweb] > nano /etc/phpmyadmin/config.inc.php
Par exemple, changer la méthode d'identification:
$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:
$cfg['blowfish_secret'] = 'dYSD2H5lFcfHUJDsC0GrQczfwP';
avec une chaîne de caractères aléatoire, dans le fichier blowfish_secret.inc.php
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.
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.
Aide & Questions: Pour tous problèmes ou questions à propos de ce tutorial, merci d'utiliser le topic dédié dans le forum de La Ferme du Web
A voir aussi sur le même sujet:
Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:
Compte la Ferme du WebIdentifiez-vousInscrivez-vous |
Compte Facebook |
Compte Twitter
|