Tutorial: Installer MySQL, PHP et PhpMyAdmin sur Freenas

J’ai expliqué il y a quelques temps comment monter son propre NAS et y installer Freenas.

J’avais alors installé Freenas en « full installation » sur une carte Compact Flash, afin de pouvoir y installer d’autres applications.

Parmi ces dernières, j’avais notamment besoin de MySQL, utile pour héberger des sites web, mais surtout pour mon serveur domotique, puisque celui ci enregistre toutes les actions effectuées en base de données.

Je vous explique donc ici comment installer MySQL sur Freenas, et en même temps nous allons installer PHP 5 et phpMyAdmin, histoire d’avoir un serveur web complet.

I. Installation de MySQL

 

Avant de procéder à l’installation, il faut avant tout créer un groupe d’utilisateurs et un utilisateur dédiés à MySQL. On les crée via l’interface web de Freenas:

 

01

02

 

Il faut ensuite se connecter en SSH au serveur Freenas. Personnellement j’utilise Kitty (ou Putty). Il suffit d’indiquer l’adresse IP, cocher SSH, et lancer la connexion.

 

03

 

On vous demande alors le nom d’utilisateur et le mot de passe. S’ils n’ont pas été changés, il s’agit par défaut de root, et freenas. Ne vous étonnez pas si rien n’apparait quand vous saisissez le mot de passe, c’est normal.

Vous devez alors avoir une invite de commande:

 

04

 

Par défaut, MySQL va vouloir stocker les fichiers de la base de données dans le répertoire /var/db/mysql, qui devrait se trouver sur la carte Compact Flash où est installé Freenas. Etant donné que la base de données est appelée à grossir avec le temps, et que je préfère sécuriser les données en les placant sur mes disques en RAID, nous allons donc placer la base de données sur le disque Raid que nous avions monté dans le précédent tutorial (appelé chez moi Volume1 )

On va donc créer le répertoire qui accueillera la base de données:

 

# mkdir /mnt/Volume1/db/mysql

 

Puis un lien symbolique vers ce répertoire, qui permettra à MySQL de retrouver ses fichiers:

 

# ln -s /mnt/Volume1/db/mysql /var/db/mysql

 

On donne ensuite toutes les autorisations nécessaires à l’utilisateur mysql (créé précédemment sous Freenas) pour accéder à ces fichiers:

 

# chown -R mysql:mysql /mnt/Volume1/db/mysql

 

Et on autorise tout le monde à créer des fichiers temporaires dans ces répertoires:

 

# chmod 777 /tmp
# chmod 777 /var/tmp

 

On peut maintenant procéder à l’installation de MySQL server. il suffit d’avoir une connexion internet, et de lancer la commande bien connue des utilisateurs linux:

 

# pkg_add -r mysql50-server

 

Il faut ensuite libérer la ligne de commande en tapant:

 

# rehash

 

Puis on lance la création des bases de données par défaut, nécessaires au fonctionnement de MySQL:

 

# mysql_install_db

 

On a alors un message dans ce genre:

 

Installing MySQL system tables…
090819 11:18:58 [Warning] option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
090819 11:18:58 [Warning] option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
OK
Filling help tables…
090819 11:18:58 [Warning] option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
090819 11:18:58 [Warning] option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password ‘new-password’
/usr/local/bin/mysqladmin -u root -h freenas.local password ‘new-password’

Alternatively you can run:
/usr/local/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com

 

Il reste ensuite à créer un dernier lien symbolique:

 

ln -s /mnt/Volume1/db/mysql/mysql /usr/local/libexec/

 

Voilà ! Dernière opération: programmer le démarrage de la base de données en même temps que Freenas.

Pour cela il faut aller dans l’interface web de Freenas, menu Système, Avancé, puis onglet rc.conf. Cliquez sur le signe « + » en rouge pour ajouter une nouvelle entrée:

 

05

 

Complétez les champs comme sur la capture, validez, puis cliquez sur « Appliquer les Changements »

Il n’y a plus qu’à redémarrer Freenas pour que toutes les modifications soient prises en compte.

 


2 Commentaires
  1. bonjour à tous,

    c’est une mauvaise idée d’installer un serveur web directement sur freenas, il faut l’installer dans une jail,

  2. Bonjour

    Regarder se qie me fait le serveur quand je mes :

    [[email protected]] ~# pkg_add -r mysql50-server
    pkg_add: Command not found.

    Quelle est la commende pour faire une installation

    Laisser un commentaire

    Ne ratez plus aucune news !

    Inscrivez vous à notre newsletter, et recevez chaque mois toute l'actualité du blog pour ne plus rien louper: actualité, guides, tutoriaux, concours !

    Merci pour votre inscription !