Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL BSD FORUM BSD TUTORIELS BSD LIVRES BSD SYSTEMES BSD BSD TV UNIX

Installation d'un environnement FAMP
(FreeBSD, Apache, PHP, MySQL)

Date de publication : 10/10/2007

Par julp (Autres articles)
 

Voyons comment installer le nécessaire pour transformer votre FreeBSD en un environnement de développement complet pour PHP. Pour cela nous utiliserons au maximum les caractéristiques de ce système et notamment le catalogue de logiciels portés.

Ce tutoriel se veut littéralement libre puisqu'aucune version du serveur Apache, de la base de données MySQL ou encore de PHP ne vous est imposée. La description de leur installation concerne le plus large éventail de versions possibles pour s'adapter aux besoins de chacun.


Avant de commencer
Notes concernant les logiciels portés
L'échéance de PHP 4
1. Installation d'Apache
1.1. Apache 1.3
1.2. Apache 2.0
1.3. Apache 2.2
1.4. Configuration du pare-feu
2. Installation de MySQL
2.1. Installation
2.2. Changement du mot de passe administrateur
3. Installation de PHP
3.1. PHP 4
3.2. PHP 5
3.3. Installer des extensions supplémentaires
4. Configuration d'Apache
4.1. Relative à PHP
4.2. Relative à SSL
5. Phase de test
5.1. Démarrage du serveur
5.2. Vérifier la bonne interprétation des scripts PHP
6. phpMyAdmin
6.1. Installation de phpMyAdmin
6.2. Configuration d'Apache
6.3. Configuration de phpMyAdmin
6.4. Création de l'utilisateur MySQL
7. Conclusion
7.1. Epilogue
7.2. Remerciements


Avant de commencer


Notes concernant les logiciels portés

Nous avons tout intérêt à utiliser et user de cet aspect du système FreeBSD pour tous les avantages qu'il offre notamment au niveau des mises à jour et des options supplémentaires qui sont offertes. Vous devez cependant savoir à leur sujet que :
  • Bien que les dépendances entre les différents programmes soient gérées par le système de logiciels portés, ce tutoriel se veut progressif. Les différentes installations et configuration sont effectuées pas à pas. On pourrait très bien commencer par phpMyAdmin qui installerait également MySQL et PHP mais je suis certain que cela ne vous fera, au final, pas gagner de temps ;
  • Les logiciels portés ne vous permettent pas d'installer plusieurs versions d'un même programme, quel qu'il soit, sur un même système car ils peuvent induire des conflits mutuels. Si vous aviez toutefois le besoin d'en utiliser plusieurs simultanément, vous n'aurez d'autres choix que d'installer les autres versions manuellement, vous faisant ainsi perdre tous leurs bénéfices notamment pour les mises à jour.
warning Il est vivement recommandé de posséder des logiciels portés à jour !

L'échéance de PHP 4

Sachez que PHP 4 n'évoluera plus, passé l'année 2007. Seules des mises à jour de sécurité seront disponibles jusque début août 2008. Il faut s'attendre à ce que le catalogue des ports évolue en ce sens à l'avenir.


1. Installation d'Apache

Nous débuterons par l'installation du serveur Apache. Vous êtes ici libres quant au choix de la version que vous envisagez d'utiliser puisque l'installation de chacune d'entre elle sera détaillée ici-même.


1.1. Apache 1.3

L'installation à partir des ports se fait simplement à l'aide des commandes suivantes :
cd /usr/ports/www/apache13-modssl
make install
Puis pour permettre un démarrage automatique du serveur Apache lors du boot de la machine nous ajoutons l'entrée suivante à /etc/rc.conf :
# Apache 1.3
apache_enable="YES"
apache_flags="-DSSL" # Active le support de SSL

1.2. Apache 2.0

Avant de vous lancer dans l'installation, vous pouvez voir l'intégralité des options de compilation du port dans le but d'en changer certaines :
cd /usr/ports/www/apache20
make show-options
Dans le même ordre d'idée, le port correspondant au serveur Apache 2.0 vous permet de voir l'ensemble des modules disponibles et de savoir lesquels sont compilés par défaut et sous quelle forme (statique ou dynamique) :
cd /usr/ports/www/apache20
make show-modules show-categories
Après avoir pris connaissance des différentes options de compilation disponibles pour ce port, nous pouvons procéder à l'installation où ici nous désactivons les modules liés au protocole WebDAV :
cd /usr/ports/www/apache20
make install WITHOUT_DAV_MODULES=yes
Enfin, nous allons faire en sorte que Apache s'exécute automatiquement au démarrage de la machine. Pour cela, éditez le fichier /etc/rc.conf pour y ajouter :
# Apache 2.0
apache2_enable="YES"
# Support de SSL
apache2ssl_enable="YES" # Ou au choix apache2_flags="-DSSL"

1.3. Apache 2.2

Vous pouvez procéder à une installation interactive d'Apache 2.2 qui vous proposera par défaut un large choix de modules qui seront tous compilés sous la forme de modules dynamiques :

Si vous choisissez cette approche les commandes sont les suivantes :
cd /usr/ports/www/apache22
make config
make install
Mais cette branche du serveur Apache est fortement similaire à sa version précédente (2.0). En effet, le système de logiciels portés propose aussi une cible pour obtenir une liste exhaustive des options de compilation de ce programme :
cd /usr/ports/www/apache22
make show-options
On retrouve également la même commande concernant les modules (ceux qui sont activés par défaut et sous quelle forme ils sont liés) :
cd /usr/ports/www/apache22
make show-modules show-categories
Après avoir consulté les différentes options disponibles, nous pouvons lancer l'installation. La commande ci-dessous permet de se limiter aux principaux modules et de les intégrer sous forme statique à l'exception des modules ssl, rewrite et userdir :
cd /usr/ports/www/apache22
make install \
    WITHOUT_APACHE_OPTIONS=yes \
    WITH_MODULES="authz_host actions alias cgi charset_lite deflate dir env expires headers log_config logio mime mime_magic negotiation setenvif unique_id vhost_alias filter ssl rewrite userdir" \
    WITH_STATIC_MODULES="authz_host actions alias cgi charset_lite deflate dir env expires headers log_config logio mime mime_magic negotiation setenvif unique_id vhost_alias filter"

Enfin, pour démarrer Apache en même temps que la machine nous ajoutons dans le fichier /etc/rc.conf, les lignes suivantes :
# Apache 2.2
apache22_enable="YES"
apache22_flags="-DSSL" # Active le support de SSL

1.4. Configuration du pare-feu

Afin d'autoriser les connexions web entrantes (protocoles HTTP et HTTPS) et seulement celles-ci, nous avons besoin d'ajouter quelques règles dans la configuration de notre firewall. En voici un exemple avec Packet Filter :
##### Options #####
set skip on lo0

##### Macros #####
tcpflags = "flags S/SFRA"
if = "sis0" # Nom de votre interface réseau (voir ifconfig)

##### Règles #####
# Bloquer et loguer tout par défaut
block log all

# HTTP, HTTPS
pass in quick on $if proto tcp from any \
    to $if port { http https } $tcpflags keep state

# DNS (UDP)
pass out quick on $if proto udp from $if \
    to any port domain keep state

# MySQL
#pass in quick on $if proto tcp from any \
#    to $if port 3306 $tcpflags keep state

2. Installation de MySQL

Nous poursuivons par l'installation du SGBD MySQL. Plusieurs versions sont disponibles par les ports. Choisissez donc la version qui vous convient en prenant en considération les éléments suivants :

Versions disponibles dans les ports :
  • 3.23 : ancienne version de production
  • 4.0 : ancienne version de production
  • 4.1 : ancienne version de production
  • 5.0 : version de production actuelle (recommandée)
  • 5.1 : version en développement amenée à être la prochaine version de production

2.1. Installation

Suivant la version choisie :
  • MySQL 3.23 :
    cd /usr/ports/databases/mysql323-server
    make install WITH_OPENSSL=yes WITH_CHARSET=latin1 WITH_XCHARSET=all
    
  • MySQL 4.0 :
    cd /usr/ports/databases/mysql40-server
    make install WITH_OPENSSL=yes WITH_CHARSET=latin1 WITH_XCHARSET=all
    
  • MySQL 4.1 :
    cd /usr/ports/databases/mysql41-server
    make install \
        WITH_OPENSSL=yes \
        WITH_CHARSET=latin1 \
        WITH_XCHARSET=all \
        WITH_COLLATION=latin1_swedish_ci
    
  • MySQL 5.0 :
    cd /usr/ports/databases/mysql50-server
    make install \
        WITH_OPENSSL=yes \
        WITH_CHARSET=latin1 \
        WITH_XCHARSET=all \
        WITH_COLLATION=latin1_swedish_ci
    
  • MySQL 5.1 :
    cd /usr/ports/databases/mysql51-server
    make install \
        WITH_OPENSSL=yes \
        WITH_CHARSET=latin1 \
        WITH_XCHARSET=all \
        WITH_COLLATION=latin1_swedish_ci
    
Quelque soit la version choisie, le démarrage automatique se fait de la même manière. Pour cela éditez /etc/rc.conf pour y ajouter la ligne suivante :
# MySQL 3.23|4.0|4.1|5.0|5.1
mysql_enable="YES"
Si vous souhaitez lancer de suite MySQL sans avoir à redémarrer, vous pouvez le faire à l'aide de la commande suivante :
# MySQL 3.23|4.0|4.1|5.0|5.1
/usr/local/etc/rc.d/mysql-server start

2.2. Changement du mot de passe administrateur

L'administrateur MySQL nommé root (aucun lien avec le système) ne dispose pas par défaut de mot de passe. Il convient donc de fixer ce dernier rapidement.

Pour ce faire, connectez-vous à MySQL à l'aide de la commande :
mysql -u root -D mysql
Puis effectuez les requêtes suivantes :
-- Ménage : suppression des comptes présents par défaut
DELETE FROM mysql.user WHERE Host <> 'localhost' OR User <> 'root';

-- Changement du mot de passe de l'administrateur local
SET PASSWORD FOR root@localhost=PASSWORD('mot_de_passe');

-- Prendre en compte ces changements immédiatement
FLUSH PRIVILEGES;

3. Installation de PHP

Dernière grande étape : l'installation de PHP en tant que module dynamique du serveur HTTP Apache. Celle-ci se divise en deux temps, tout d'abord l'installation du core puis des extensions, sous formes dynamiques donc.


3.1. PHP 4

L'installation de PHP se réalise à l'aide des commandes suivantes :
cd /usr/ports/lang/php4
make config
make install
Sélectionnez au moins "Apache".

Puis passons à l'installation des extensions :
cd /usr/ports/lang/php4-extensions
make config
make install
Les extensions minimales recommandées sont : bz2, mbstring, mysql et/ou mysqli, openssl, pcre (expressions régulières compatibles PERL : fonctions preg_*), session, zlib. Mais vous pourrez sans problème en rajouter ou retirer par la suite.

Le fichier principal de configuration de php est par défaut attendu dans le répertoire /usr/local/etc/. Vous pouvez le créer à présent à partir des configurations modèles qui ont été installées :
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

3.2. PHP 5

Pour installer PHP, procédez aux commandes suivantes :
cd /usr/ports/lang/php5
make config
make install
Vous devez choisir au minimum "Apache".

Installation des extensions :
cd /usr/ports/lang/php5-extensions
make config
make install
Les extensions de base recommandées sont : bz2, mbstring, mysql, openssl, pcre (expressions régulières compatibles PERL : fonctions preg_*), session, zlib. Vous pourrez utiliser les ports pour ajouter ou supprimer des extensions à tout moment par la suite.

Le fichier php.ini chargé par défaut par PHP est /usr/local/etc/php.ini. Or il vous revient de créer ce dernier. Pour ce faire basez-vous sur les exemples que vous pouvez modifier au passage :
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

3.3. Installer des extensions supplémentaires

Il vous est possible de connaître l'ensemble des extensions PHP figurant parmi les logiciels portés en y effectuant une recherche à l'aide des commandes suivantes :
cd /usr/ports
# PHP 4
make search name=php4-\|pecl- | less
# PHP 5
make search name=php5-\|pecl- | less
info Certaines extensions de type PECL requièrent une version 5 de PHP et d'autres ont été, depuis, intégrées à PHP (c'est le cas par exemple des extensions json ou zip).
Il ne vous reste ensuite qu'à compiler/installer celles que vous avez choisi de la même manière que nous l'avons fait précédemment pour Apache, MySQL ou encore PHP. Exemple avec l'extension PECL appelée bcompiler :
cd /usr/ports/devel/pecl-bcompiler
make install

4. Configuration d'Apache

Note concernant la valeur de la directive ServerName : si vous y indiquez un nom, assurez-vous que celui-ci puisse être résolu par le système en une adresse car sans cela Apache refusera de démarrer. La résolution de noms, avec une configuration par défaut, est réalisée par consultation du fichier /etc/hosts puis des serveurs DNS (indiqués par le fichier /etc/resolv.conf).


4.1. Relative à PHP

Nous avons besoin de lier l'extension php au module PHP pour que le serveur Apache interprète les scripts. Pour plus de confort nous indiquons, qu'un fichier du nom de index.php doit être considéré comme une page par défaut de répertoire.

Modifications à apporter suivant la version :
  • Apache 1.3 : ajoutez à /usr/local/etc/apache/httpd.conf, en fin de fichier par exemple :
    <IfModule mod_mime.c>
        <IfModule mod_php4.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <IfModule mod_php5.c>
            AddType application/x-httpd-php .php
        </IfModule>
    </IfModule>
    
    Remplacez également la partie suivante qui ne prend pas en charge la dernière version de PHP :
    <IfModule mod_dir.c>
        <IfModule mod_php3.c>
            <IfModule mod_php4.c>
                DirectoryIndex index.php index.php3 index.html
            </IfModule>
            <IfModule !mod_php4.c>
                DirectoryIndex index.php3 index.html
            </IfModule>
        </IfModule>
        <IfModule !mod_php3.c>
            <IfModule mod_php4.c>
                DirectoryIndex index.php index.html
            </IfModule>
            <IfModule !mod_php4.c>
                DirectoryIndex index.html
            </IfModule>
        </IfModule>
    </IfModule>
    
    En :
    <IfModule mod_dir.c>
        <IfModule mod_php5.c>
            DirectoryIndex index.php index.html
        </IfModule>
        <IfModule !mod_php5.c>
            <IfModule mod_php4.c>
                DirectoryIndex index.php index.html
            </IfModule>
            <IfModule !mod_php4.c>
                DirectoryIndex index.html
            </IfModule>
        </IfModule>
    </IfModule>
    
  • Apache 2.0 : ajoutez dans /usr/local/etc/apache2/httpd.conf ou créez le fichier /usr/local/etc/apache2/Includes/php.conf contenant :
    <IfModule mod_mime.c>
        <IfModule mod_php4.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <IfModule mod_php5.c>
            AddType application/x-httpd-php .php
        </IfModule>
    </IfModule>
    
    Modifions le nom des pages par défaut de répertoire. Pour ce faire remplaçons dans /usr/local/etc/apache2/httpd.conf :
    DirectoryIndex index.html index.html.var
    
    Vers une configuration similaire à celle-ci :
    <IfModule mod_dir.c>
        <IfModule mod_php5.c>
            DirectoryIndex index.php index.html
        </IfModule>
        <IfModule !mod_php5.c>
            <IfModule mod_php4.c>
                DirectoryIndex index.php index.html
            </IfModule>
            <IfModule !mod_php4.c>
                DirectoryIndex index.html
            </IfModule>
        </IfModule>
    </IfModule>
    
  • Apache 2.2 : ajoutez à /usr/local/etc/apache22/httpd.conf ou créez /usr/local/etc/apache22/Includes/php.conf tel que :
    <IfModule mime_module>
        <IfModule php4_module>
            AddType application/x-httpd-php .php
        </IfModule>
        <IfModule php5_module>
            AddType application/x-httpd-php .php
        </IfModule>
    </IfModule>
    
    Trouver et remplacer dans /usr/local/etc/apache22/httpd.conf afin d'ajouter index.php comme nom des pages de répertoire par défaut :
    <IfModule dir_module>
        DirectoryIndex index.html
    </IfModule>
    
    Par :
    <IfModule dir_module>
        <IfModule php5_module>
            DirectoryIndex index.php index.html
        </IfModule>
        <IfModule !php5_module>
            <IfModule php4_module>
                DirectoryIndex index.php index.html
            </IfModule>
            <IfModule !php4_module>
                DirectoryIndex index.html
            </IfModule>
        </IfModule>
    </IfModule>
    

4.2. Relative à SSL

Génération d'un certificat :
  1. Nous utilisons le répertoire personnel de root pour assurer la sécurité des fichiers qui seront générés.
  2. Création de la clé privée du serveur :
    openssl genrsa -des3 -out server.key 1024
    
    Generating RSA private key, 1024 bit long modulus
    ......................++++++
    ...........++++++
    e is 65537 (0x10001)
    Enter pass phrase for server.key:
    Verifying - Enter pass phrase for server.key:la passphrase qu'il faudra conserver
    
  3. Nous générons une demande de certificat :
    openssl req -new -key server.key -out server.csr
    
    Enter pass phrase for server.key:la passphrase donnée précédemment
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:FR
    State or Province Name (full name) [Some-State]:.
    Locality Name (eg, city) []:.
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
    Organizational Unit Name (eg, section) []:.
    Common Name (eg, YOUR name) []:le nom exact de votre serveur web
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:un mot de passe solide (vous n'avez nul besoin de le mémoriser)
    An optional company name []:
    
  4. On termine en signant le certificat :
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    Signature ok
    subject=/C=FR/CN=apache20
    Getting Private key
    Enter pass phrase for server.key:la même passphrase qu'au tout début
    
Installation du certificat et de la clé privée :
  • Apache 1.3 :
    cp ~/server.key /usr/local/etc/apache/ssl.key/
    cp ~/server.crt /usr/local/etc/apache/ssl.crt/
    chmod u=r,go= /usr/local/etc/apache/ssl.key/server.key
    chmod u=r,go= /usr/local/etc/apache/ssl.crt/server.crt
    
  • Apache 2.0 :
    mkdir /usr/local/etc/apache2/ssl.key
    mkdir /usr/local/etc/apache2/ssl.crt
    cp ~/server.key /usr/local/etc/apache2/ssl.key/
    cp ~/server.crt /usr/local/etc/apache2/ssl.crt/
    chmod u=r,go= /usr/local/etc/apache2/ssl.key/server.key
    chmod u=r,go= /usr/local/etc/apache2/ssl.crt/server.crt
    
  • Apache 2.2 :
    cp ~/server.key /usr/local/etc/apache22/
    cp ~/server.crt /usr/local/etc/apache22/
    chmod u=r,go= /usr/local/etc/apache22/server.key
    chmod u=r,go= /usr/local/etc/apache22/server.crt
    
Si vous ne désirez pas que le serveur Apache vous demande la passphrase à chacun de ses démarrages, vous pouvez supprimer son cryptage par la passphrase en procédant ainsi :
  • On conserve une copie du certificat original chiffré :
    • Apache 1.3 :
      cp /usr/local/etc/apache/ssl.key/server.key /usr/local/etc/apache/ssl.key/server.key.orig
      
    • Apache 2.0 :
      cp /usr/local/etc/apache2/ssl.key/server.key /usr/local/etc/apache2/ssl.key/server.key.orig
      
    • Apache 2.2 :
      cp /usr/local/etc/apache22/server.key /usr/local/etc/apache22/server.key.orig
      
  • On supprime ce chiffrage :
    • Apache 1.3 :
      openssl rsa -in /usr/local/etc/apache/ssl.key/server.key -out /usr/local/etc/apache/ssl.key/server.key
      
    • Apache 2.0 :
      openssl rsa -in /usr/local/etc/apache2/ssl.key/server.key -out /usr/local/etc/apache2/ssl.key/server.key
      
    • Apache 2.2 :
      openssl rsa -in /usr/local/etc/apache22/server.key -out /usr/local/etc/apache22/server.key
      
Apache 2.2 n'est initialement pas prévu pour pouvoir stopper la prise en charge du protocole HTTPS comme c'est le cas d'Apache 1.3 et 2.0 en omettant le paramètre -DSSL. Vous pouvez rectifier le tir si besoin en modifiant les deux parties suivantes :
  1. Le chargement du module SSL si explicitement demandé via la ligne de commande de lancement du serveur Apache :
    LoadModule ssl_module libexec/apache22/mod_ssl.so
    
    En :
    <IfDefine SSL>
        LoadModule ssl_module libexec/apache22/mod_ssl.so
    </IfDefine>
    
  2. L'analyse du fichier annexe dédié à la configuration de ce module si spécifié :
    # Secure (SSL/TLS) connections
    #Include etc/apache22/extra/httpd-ssl.conf
    
    En :
    # Secure (SSL/TLS) connections
    <IfModule ssl_module>
        Include etc/apache22/extra/httpd-ssl.conf
    </IfModule>
    

5. Phase de test


5.1. Démarrage du serveur

Le moment est venu de tester notre installation et pour nous épargner un redémarrage de la machine nous allons démarrer Apache manuellement. Suivant la version utilisée :
  • Apache 1.3 :
    /usr/local/etc/rc.d/apache.sh start
    
  • Apache 2.0 :
    /usr/local/etc/rc.d/apache2.sh start
    
  • Apache 2.2 :
    /usr/local/etc/rc.d/apache22 start
    

5.2. Vérifier la bonne interprétation des scripts PHP

Avant d'aller plus loin nous devons nous assurer que nos scripts sont bien interprétés par PHP et pour cela nous allons procéder à un test fort simple.

En fonction de la version employée de Apache :
  • Apache 1.3 et 2.0 : créer le fichier /usr/local/www/data-dist/index.php avec pour contenu :
    <?php
    phpinfo();
    ?>
    
  • Apache 2.2 : créer le fichier /usr/local/www/apache22/data/index.php avec pour contenu :
    <?php
    phpinfo();
    ?>
    
Vous devriez alors voir apparaître à l'adresse http://votre_machine/index.php un tableau similaire à celui ci-dessous :

phpinfo
phpinfo

6. phpMyAdmin

phpMyAdmin est une interface, écrite en PHP, qui va vous permettre d'administrer facilement votre base de données ou encore d'élaborer et tester vos différentes requêtes. Ceci en fait donc un outil incontournable.


6.1. Installation de phpMyAdmin

phpMyAdmin figure parmi les logiciels portés, nous profiterons donc de cette opportunité pour son installation :
cd /usr/ports/databases/phpmyadmin
make config
make install
Une liste d'options telle que celle ci-dessous devrait alors vous être proposée :

Il s'agit des extensions PHP requises par phpMyAdmin pour ses fonctionnalités avancées et vous en avez probablement déjà installé une partie plus tôt. Par conséquent, vous pouvez ne rien sélectionner et celles qui sont déjà présentes seront tout simplement ignorées.

info L'extension MySQLi requiert une version 5 de PHP ainsi qu'une version 4.1 ou supérieure de MySQL.

6.2. Configuration d'Apache

Modifiez la configuration d'Apache afin de déclarer un nouvel alias, pour pouvoir utiliser phpMyAdmin, parmi les autres qui y figurent déjà. L'utilisation d'un alias est nécessaire puisque les scripts constituant phpMyAdmin sont situés à l'extérieur de la racine.
  • Apache 1.3 et 2.0 : pour Apache 1.3 ajoutez les lignes ci-dessous à /usr/local/etc/apache/httpd.conf ; dans le cas d'Apache 2.0 faites de même avec son fichier de configuration, à savoir /usr/local/etc/apache2/httpd.conf, ou créez le fichier /usr/local/etc/apache2/Includes/phpmyadmin.conf avec pour contenu :
    #
    # phpMyAdmin
    #
    <IfModule mod_alias.c>
        <IfModule mod_php4.c>
            Alias /pma/ "/usr/local/www/phpMyAdmin/"
    
            <Directory "/usr/local/www/phpMyAdmin">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
            </Directory>
        </IfModule>
        <IfModule mod_php5.c>
            Alias /pma/ "/usr/local/www/phpMyAdmin/"
    
            <Directory "/usr/local/www/phpMyAdmin">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
            </Directory>
        </IfModule>
    </IfModule>
    
  • Apache 2.2 : complétez votre fichier /usr/local/etc/apache22/httpd.conf ou créez /usr/local/etc/apache22/Includes/phpmyadmin.conf tel que :
    #
    # phpMyAdmin
    #
    <IfModule alias_module>
        <IfModule php4_module>
            Alias /pma/ "/usr/local/www/phpMyAdmin/"
    
            <Directory "/usr/local/www/phpMyAdmin">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
            </Directory>
        </IfModule>
        <IfModule php5_module>
            Alias /pma/ "/usr/local/www/phpMyAdmin/"
    
            <Directory "/usr/local/www/phpMyAdmin">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
            </Directory>
        </IfModule>
    </IfModule>
    
Vous avez besoin de redémarrer Apache pour prendre en considération ces changements afin de pouvoir utiliser phpMyAdmin. Voici la procédure :
  • Apache 1.3 :
    /usr/local/etc/rc.d/apache.sh restart
    
  • Apache 2.0 :
    /usr/local/etc/rc.d/apache2.sh restart
    
  • Apache 2.2 :
    /usr/local/etc/rc.d/apache22 restart
    
info Au lieu de redémarrer Apache, vous pouvez lui dire de relire ses fichiers de configuration en lui envoyant un signal HUP (valeur numérique 1) - à l'aide de la commande (p)kill.

6.3. Configuration de phpMyAdmin

Nous aurons besoin de créer un sous-répertoire config dans lequel phpMyAdmin s'attend à y écrire le fichier de configuration que nous nous apprêtons à générer :
mkdir /usr/local/www/phpMyAdmin/config/
chmod o+rw /usr/local/www/phpMyAdmin/config/
Nous sommes maintenant en mesure de pouvoir configurer phpMyAdmin. Pour cela, Dirigez-vous à l'adresse http(s)://<votre_machine>/pma/scripts/setup.php avec un navigateur. Toute la procédure de configuration est illustrée par la vidéo suivante :


Une fois l'installation terminée, nous déplaçons le fichier de configuration de phpMyAdmin et supprimons le répertoire temporaire config :
mv /usr/local/www/phpMyAdmin/config/config.inc.php /usr/local/www/phpMyAdmin/
chown root:wheel /usr/local/www/phpMyAdmin/config.inc.php
rm -fr /usr/local/www/phpMyAdmin/config/

6.4. Création de l'utilisateur MySQL

Dans le cas d'une configuration multi-utilisateurs, nous devons créer notre utilisateur MySQL de contrôle pour phpMyAdmin que nous avons renseigné précédemment lors de sa configuration. Remplacez mot_de_passe ci-dessous par celui que vous avez fourni tantôt.
-- Création de l'utilisateur
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'mot_de_passe';

-- Définition de ses droits
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';

-- MySQL >= 4.0.2
GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';

-- MySQL < 4.0.2
/*GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
) ON mysql.user TO 'pma'@'localhost';*/

7. Conclusion


7.1. Epilogue

Vous avez à votre disposition un environnement de travail complet et prêt à l'emploi pour développer en PHP. Vous pouvez enrichir ce dernier d'autres langages scripts interprétés comme Perl, Python, Ruby, etc ou des SGBDR alternatifs tels que PostGreSQL.

La configuration avancée de ces différents éléments et leur sécurité n'étant pas abordées ici, je vous renvoie donc sur les différentes sections de Developpez. Pour en savoir plus sur ces sujets, consultez :
Pour faciliter vos développements PHP, on trouve également quelques IDE dans le catalogue de logiciels portés :
Questions relatives aux logiciels portés :
Autres liens Developpez :
Les différentes documentations :

7.2. Remerciements

Je remercie loka pour sa relecture attentive.

Sans oublier mes confrères de la section Linux pour leurs recommandations et leur soutien (gorgonite et ovh).



Valid XHTML 1.1!Valid CSS!

Copyright © 2007 julp. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsables bénévoles de la rubrique BSD : julp et Olivier Régnier - Contacter par EMail :
Vos questions techniques : forum d'entraide BSD - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.