Nous partons sur l'hypothèse ou l'on a un système à jour, non seulement au niveau du noyau mais également au niveau des ports.

On ouvre donc un terminal en root.

Puis on installe Apache (version 2.2.4 au moment de l'écriture de ce post) depuis les ports FreeBSD:

# cd /usr/ports/www/apache22
# make install
... la compilation va prendre un certain temps... bon café...

Une fois la compilation terminé, il faut automatiser le lancement du daemon HTTP au démarrage du serveur. Pour cela il faut ajouter ajouter deux lignes au fichier /etc/rc.conf:

# echo 'apache22_enable="YES"' >> /etc/rc.conf

Il faut ensuite éditer le fichier :

 /usr/local/etc/apache22/httpd.conf

pour le faire coller à votre configuration. Il existe un bon nombre de documentations sur le sujet (par exemple: http://httpd.apache.org/docs/2.2/).

# vi /usr/local/etc/apache22/httpd.conf

Vous pouvez tester si votre installation a marché correctement en lancant le serveur Web:

# apachectl start

un problème qui peut arriver est l'erreur au lancement

/usr/local/sbin/apachectl start
cette erreur

httpd: apr_sockaddr_info_get() failed

dans ce cas il faut determiner le host name de la machine par la commande :

 hostname

et reporter la valeur trouvée dans le fichier /etc/hosts

 vi /etc/hosts


Puis en ouvrant un navigateur sur l'URL de votre serveur: http://<@IpDeVotreServeur>. Vous devrier avoir la page suivante qui s'affiche:


activer htaccess

 vi /usr/local/etc/apache22/httpd.conf

changer

AllowOverride None

par

AllowOverride All

Le répertoire racine de votre site Web se trouve:

 /usr/local/www/apache22/data/

En l'état actuel de la configuration, votre serveur ne prendra pas en compte le language PHP. Il faut pour cela installer le module PHP (version 5) pour Apache. Pour cela:

# cd /usr/ports/lang/php5

# make install

... Ne pas oublier de selectionner "Apache" !!! ...
# cd /usr/ports/lang/php5-extensions
# make install
... choisir les extensions voulues ...
cd /usr/local/etc/
# cp php.ini-recommended php.ini
... initialisation des variables...

Il faut ensuite configurer Apache pour qu'il prenne en compte PHP. Pour cela éditer le fichier

 /usr/local/etc/apache22/httpd.conf

# vi /usr/local/etc/apache22/httpd.conf
Ajouter dans la section ifmodule :

AddType application/x-httpd-php .php

ensuite ajouter dans la section "IfModule dir_module" (au besoin rajouter la section)


DirectoryIndex index.html, index.php

Il ne reste plus qu'a relancer le serveur Apache:

# apachectl stop
# apachectl start

ensuite phpmyadmin

cd /usr/ports/databases/phpmyadmin
make install

editer le fichier :

/usr/local/etc/apache22/httpd.conf

et ajouter :

   Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

    
        Options none
        AllowOverride Limit
        
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1 .example.com
    

créer un lien symbolique pour pouvoir accèder à partir du serveur apache à phpmyadmin

ln -s /usr/local/www/phpMyAdmin/ /usr/local/www/apache22/data/phpmyadmin
Connexion a la base impossible