Configuration du serveur MySQL[1]

On active le service puis on le lance :

# chkconfig mysqld on
# service mysqld start


Au moment de l'installation, le super-utilisateur root du serveur MySQL (à ne pas confondre avec le root de notre système) est créé sans mot de passe. Corrigeons cela rapidement :

# mysql --user root
mysql> UPDATE mysql.user SET Password = PASSWORD('votre_mot_de_passe') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit


Par la suite, on utilisera l'interface Web fournie par phpMyAdmin pour gérer les utilisateurs et les bases MySQL.


Configuration de PHP.

La configuration de PHP se fait très simplement au travers de l'édition du fichier texte /etc/php.ini. Ouvrons ce dernier avec gedit :

# gedit /etc/php.ini

Il n'y à plus qu'à réaliser les modifications suivantes :

ligne 226, remplacez safe_mode = Off par safe_mode = On
ligne 231, remplacez safe_mode_gid = Off par safe_mode_gid = On
ligne 312, remplacez max_execution_time = 30 par max_execution_time = 600
ligne 313, remplacez max_input_time = 60 par max_input_time = 600
ligne 314, remplacez memory_limit = 16M par memory_limit = 128M
ligne 421, remplacez ;error_log = filename par error_log = /var/log/php-scripts.log
ligne 477, remplacez post_max_size = 8M par post_max_size = 50M
ligne 582, remplacez upload_max_filesize = 2M par upload_max_filesize = 50M

Le raccourci Ctrl + I permet de se déplacer directement vers la ligne spécifiée.

Enregistrez et quittez.

Ces valeurs devraient vous permettre d'éviter tout refus de traitement de base un peu importante.


Activons le fameux module Yaz précédemment compilé :

# gedit /etc/php.d/yaz.ini

Collez le texte suivant dans ce fichier :

; Enable yaz extension module
extension=yaz.so

Enregistrez et quittez.


Configuration d'Apache.

En fait, Apache est préconfiguré et devrait fonctionner correctement dès qu'on le lancera.
Le seul souci que j'ai rencontré lors d'essais précédents tient à l'encodage des caractères. CentOS, comme tout bon système d'exploitation multilingue est entièrement configuré pour utiliser l'UTF-8[2]. En toute logique, le serveur Apache aussi. Malheureusement, bien que PMB propose lors de l'installation de basculer en UTF-8 ça n'a pas l'air de fonctionner correctement.

J'ai aussi eu quelques soucis lors d'importations/conversions de notices. Donc pour ne pas se prendre la tête et ne pas prendre de risque, on va configurer Apache pour qu'il autorise la spécification du Charset pour chacun des sites ou outil Web hébergé et ce de manière individuelle.

Une méthode de configuration alternative avec un utilisateur dédié à l'hébergement est disponible dans ce billet


On ouvre le fichier de configuration d'Apache :

# gedit /etc/httpd/conf/httpd.conf


Recherchez le texte suivant (tout à la fin du fichier normalement) :

<Directory "/var/www/html">
        Options Indexes Includes FollowSymLinks
 
        AllowOverride None
        Allow from all
 
        Order allow,deny
</Directory>


Modifiez la ligne AllowOverride None comme suit :

<Directory "/var/www/html">
        Options Indexes Includes FollowSymLinks
 
        AllowOverride FileInfo
        Allow from all
 
        Order allow,deny
</Directory>


Enregistrez et quittez l'éditeur.


Pour l'instant, on se contentera d'un serveur simple sans Virtual Hosts, donc la déclaration de votre serveur dans votre DNS suffira Au cas où ça coince, il conviendra de renseigner le nom du serveur à partir du Menu Système > Administration > Paramètres de serveur > HTTP.

Autre point important : pour des raisons de sécurité, phpMyAdmin est configuré de manière à n'être accessible qu'à partir du serveur. Si vous désirez pouvoir l'utiliser à partir de n'importe quel poste du réseau, il faudra modifier la configuration dans le fichier /etc/httpd/conf.d/phpMyadmin.conf, activer et configurer SSL et configurer le pare-feu pour qu'il autorise les connexions HTTPS.


Il ne reste donc plus qu'à lancer le tout et, tant qu'à faire, configurer pour que le démarrage soit automatique.

# chkconfig httpd on
# service httpd start


Configuration de PureFTP.

On va tout de suite se servir de ce qu'on a mis en place pour faciliter la configuration de notre serveur FTP.

Comme notre serveur Web risque d'accueillir de plus en plus d'applications (serveur intranet, gestion de parc, cahier de texte, ...), autant s'y préparer correctement tout de suite.

Plutôt que de créer un compte FTP pour chaque utilisation possible, on va compartimenter en vue d'utilisations futures grâce à une gestion d'utilisateurs FTP virtuels via une base de données MySQL.


On commence par créer un utilisateur et un groupe réels :

# groupadd -g 600 ftpgrp
# useradd -u 600 -s /bin/false -d /bin/null -c "pureftpd" -g ftpgrp ftpusr


Cet utilisateur n'a pas de mot de passe et ne pourra pas se connecter au système, il ne servira qu'au travers des connexions FTP.


Étape suivante : on crée la base de données qui va héberger nos utilisateurs virtuels.

  • Lancez Firefox à partir de la barre de menu (icône représentant une souris et un globe).
  • Tapez l'adresse http://localhost/phpmyadmin/ dans la barre d'adresse.
  • Utilisateur : root, Mot de passe : celui que vous avez défini précédemment.
  • Créer une base de données nommée pureftpd (par exemple, libre à vous de choisir un autre nom).

Création d'une base de données

  • Cliquez sur l'onglet SQL et copiez la requête suivante qui va créer la table users :
CREATE TABLE users (
 User varchar(16) NOT NULL default '',
 Password varchar(64) NOT NULL default '',
 Uid varchar(11) NOT NULL default '',
 Gid varchar(11) NOT NULL default '',
 Dir varchar(128) NOT NULL default '',
 PRIMARY KEY  (User)
);
  • Cliquez sur le bouton Exécuter, la table est créée.
  • On en profite pour créer tout de suite un utilisateur général 'web' :
INSERT INTO `users` ( `User` , `Password` , `Uid` , `Gid` , `Dir` )
VALUES ('web', MD5( 'mot_de_passe_web' ) , '600', '600', '/var/www/html/');
  • puis un utilisateur spécifique 'pmb'
INSERT INTO `users` ( `User` , `Password` , `Uid` , `Gid` , `Dir` )
VALUES ('pmb', MD5( 'mot_de_passe_pmb' ) , '600', '600', '/var/www/html/pmb/');
  • Pensez à changer les mots de passe !


Toujours à partir de phpMyAdmin, on va créer un utilisateur spécifique pour la gestion de cette base. Cliquez sur la maison en-dessous du logo phpMyAdmin puis sur le lien privilèges. Cliquez sur Ajouter un utilisateur. Remplissez les champs en vous inspirant de la capture ci-dessous.

Création d'un utilisateur

  • Cliquez sur le bouton Exécuter.
  • Dans la rubrique « Privilèges spécifiques à une base de données », sélectionnez la base précédemment créée.
  • Dans la fenêtre qui apparait, sélectionnez Tout cocher puis validez avec Exécuter.


À partir du Terminal, ouvrez le fichier de configuration de l'accès MySQL de Pureftpd :

# gedit /etc/pure-ftpd/pureftpd-mysql.conf
  • Modifiez les valeurs suivantes :
ligne 27, MYSQLUser	votre_utilisateur_sql
ligne 32, MYSQLPassword	son_mot_de_passe
ligne 45, MYSQLCrypt	md5
  • Enregistrez et quittez.


Ouvrez le fichier de configuration générale de Pureftpd :

# gedit /etc/pure-ftpd/pure-ftpd.conf
  • Modifiez les valeurs suivantes :
ligne 40, MaxClientsNumber	10
ligne 52, MaxClientsPerIP	3
ligne 77, NoAnonymous		yes
ligne 116, MySQLConfigFile	/etc/pure-ftpd/pureftpd-mysql.conf (décommentez le #)
ligne 137, PAMAuthentication	no
ligne 45, CreateHomeDir	yes
  • Enregistrez et quittez.


On lance le tout :

# chkconfig pure-ftpd on
# service pure-ftpd start


Voilà, l'installation de notre serveur et sa configuration sont terminées. On va enfin pouvoir rentrer dans le vif du sujet et installer puis configurer PMB.


Préparation de la Base de données pour PMB.

A partir du navigateur toujours ouvert et de phpMyAdmin, créez une nouvelle base pour PMB. Nommez la comme vous voulez : pmb, bibli ou autre. Ça n'a que peu d'importance, il faudra juste bien spécifier le nom de celle-ci lors de l'initialisation de PMB.


De la même manière que pour Pureftpd, créez un nouvel utilisateur pour l'administration de la base de PMB puis accordez lui tous les droits sur celle-ci.


Voilà, c'est prêt pour la suite.

Fermez toutes les fenêtres et déconnectez vous (Système > Clore la Session).

Notes

[1] Basé sur la documentation de Fedora-fr : Installation_et_configuration_de_MySQL

[2] UTF-8 sur Wikipédia