FreeBSD est utilisé pour faire tourner certains des sites les plus chargés au monde. La majorité des serveurs web sur l'Internet utilisent le serveur HTTP Apache. Les versions pré-compilées d'Apache devraient se trouver sur le support d'installation de FreeBSD que vous avez utilisé. Si vous n'avez pas installé Apache à l'installation de FreeBSD, alors vous pouvez installer le serveur à partir du logiciel porté www/apache13 ou www/apache20.
Une fois qu'Apache a été installé avec succès, il doit être configuré.
Cette section traite de la version 1.3.X du serveur
HTTP Apache étant
donné que c'est la version la plus largement
utilisée sous FreeBSD.
Apache 2.X introduit de
nombreuses nouvelles technologies mais elles ne sont pas
abordées ici. Pour plus d'informations concernant
Apache 2.X veuillez
consulter http://httpd.apache.org/
.
Le fichier principal de configuration du serveur HTTP
Apache est, sous FreeBSD, le fichier
/usr/local/etc/apache/httpd.conf
. Ce
fichier est un fichier texte de configuration UNIX® typique
avec des lignes de commentaires débutant par un
caractère #
. Une description
complète de toutes les options de configuration
possibles dépasse le cadre de cet ouvrage, aussi seules
les directives les plus fréquemment modifiées
seront décrites ici.
ServerRoot "/usr/local"
Indique le répertoire d'installation par
défaut pour l'arborescence
Apache. Les binaires sont
stockés dans les sous-répertoires bin
et sbin
de la racine du serveur,
et les fichiers de configuration dans etc/apache
.
ServerAdmin you@your.address
L'adresse électronique à laquelle tous les problèmes concernant le serveur doivent être rapportés. Cette adresse apparaît sur certaines pages générées par le serveur, comme des pages d'erreur.
ServerName www.example.com
La directive ServerName
vous
permet de fixer un nom de machine qui est renvoyé
aux clients de votre serveur si le nom est
différent de celui de la machine (i.e, utilisez
www
à la place du véritable
nom de la machine).
DocumentRoot "/usr/local/www/data"
DocumentRoot
est le
répertoire où se trouvent les documents que
votre serveur diffusera. Par défaut, toutes les
requêtes sont prises en compte par rapport à
ce répertoire, mais des liens symboliques et des
alias peuvent être utilisés pour pointer vers
d'autres emplacements.
C'est toujours une bonne idée de faire des copies de sauvegarde de votre fichier de configuration d'Apache avant de faire des modifications. Une fois que vous êtes satisfait avec votre configuration, vous êtes prêt à lancer Apache.
Apache n'est pas lancé à partir du “super-serveur” inetd comme pour beaucoup d'autres serveurs réseau. Il est configuré pour tourner de façon autonome pour de meilleures performances à la réception des requêtes HTTP des navigateurs web. Une procédure est fournie pour rendre le démarrage, l'arrêt, et le redémarrage du serveur aussi simple que possible. Pour démarrer Apache pour la première fois, exécutez:
#
/usr/local/sbin/apachectl start
Vous pouvez arrêter le serveur à tout moment en tapant:
#
/usr/local/sbin/apachectl stop
Après avoir effectué des modifications dans le fichier de configuration, vous devez redémarrer le serveur:
#
/usr/local/sbin/apachectl restart
Pour redémarrer Apache sans faire échouer les connexions en cours, exécutez:
#
/usr/local/sbin/apachectl graceful
Des informations supplémentaires sont disponibles dans la page de manuel d'apachectl(8).
Pour lancer Apache au
démarrage du système, ajoutez la ligne suivante
au fichier /etc/rc.conf
:
apache_enable="YES"
Si vous désirez passer des options en ligne de
commande supplémentaires au programme
httpd
d'Apache
lancé au démarrage du système, vous
pouvez les spécifier à l'aide d'une ligne dans
rc.conf
:
apache_flags=""
Maintenant que le serveur web tourne, vous pouvez voir
votre site web en pointant votre navigateur sur
http://localhost/
. La page web
affichée par défaut est
/usr/local/www/data/index.html
.
Apache supporte deux types différents de serveurs virtuels. Le premier type est celui des serveurs virtuels basés sur les noms. Ce type de serveurs virtuels utilise les entêtes HTTP/1.1 pour déterminer le nom de la machine. Cela autorise le partage de la même adresse IP entre plusieurs domaines différents.
Pour configurer Apache à
l'utilisation de serveurs virtuels basés sur les noms,
ajoutez une entrée comme la suivante à votre
fichier httpd.conf
:
NameVirtualHost *
Si votre serveur web est appelé www.domain.tld
et que vous voulez mettre
en place un domain virtuel pour www.someotherdomain.tld
alors vous
ajouterez les entrées suivantes au fichier
httpd.conf
:
<VirtualHost *> ServerName www.domain.tld DocumentRoot /www/domain.tld </VirtualHost> <VirtualHost *> ServerName www.someotherdomain.tld DocumentRoot /www/someotherdomain.tld </VirtualHost>
Remplacez les addresses avec celles que vous désirez utiliser et le chemin d'accès des documents avec celui que vous utilisez.
Pour plus d'informations sur la mise en place de serveurs
virtuels, veuillez consulter la documentation officielle
d'Apache à l'adresse http://httpd.apache.org/docs/vhosts/
.
Il existe de nombreux modules Apache disponibles en vue d'ajouter des fonctionnalités au serveur de base. Le catalogue des logiciels portés offre une méthode simple d'installation d'Apache avec certains des modules les plus populaires.
Le module mod_ssl utilise la bibliothèque OpenSSL pour offrir un chiffrement solide à l'aide des protocoles “Secure Sockets Layer” (SSL v2/v3) et “Transport Layer Security”. Ce module fourni tout ce qui est nécessaire à la demande de certificats signés auprès d'une autorité de certification connue de façon à pouvoir faire tourner un serveur web sécurisé sous FreeBSD.
Si vous n'avez pas déjà installé Apache, alors une version d'Apache 1.3.X comprenant mod_ssl peut être installée à l'aide du logiciel porté www/apache13-modssl. Le support SSL est également disponible pour Apache 2.X avec le logiciel porté www/apache20, où il est activé par défaut.
Ces dernières années, de plus en plus d'entreprises se sont tournées vers l'Internet pour augmenter leurs revenus et renforcer leur exposition. Cela a eu pour conséquence d'accroître le besoin de contenus Web interactifs. Quand certaines entreprises, comme Microsoft®, ont introduit dans leurs produits propriétaires des solutions à ces besoins, la communauté des logiciels libres a également répondu à l'appel. Deux options pour obtenir du contenu Web dynamique sont mod_perl et mod_php.
Le projet d'intégration Apache/Perl réuni la puissance du langage de programmation Perl et le serveur HTTP Apache. Avec le module mod_perl il est alors possible d'écrire des modules Apache entièrement en Perl. De plus, la présence d'un interpréteur intégré au serveur évite la surcharge due au lancement d'un interpréteur externe et le délai pénalisant du démarrage de Perl.
Le module mod_perl est peut être obtenu de diverses manières. Pour l'utilisation du module mod_perl souvenez-vous que mod_perl 1.0 ne fonctionne qu'avec Apache 1.3 et mod_perl 2.0 ne fonctionne qu'avec Apache 2. Le module mod_perl 1.0 est disponible sous www/mod_perl et une version compilée en statique sous www/apache13-modperl. Le module mod_perl 2.0 est disponible sous www/mod_perl2.
PHP, aussi connu sous le nom de « PHP: Hypertext Preprocessor » est un langage de script tout particulièrement adapté au développement Web. Pouvant être intégré à du HTML, sa syntaxe est dérivée du C, Java™, et du Perl avec pour objectif de permettre aux développeurs Web d'écrire rapidement des pages Web au contenu généré dynamiquement.
Pour ajouter le support de PHP5 au serveur Web Apache, commencez par installer le logiciel porté lang/php5.
Si c'est la première installation du logiciel
lang/php5, les
OPTIONS
disponibles seront
affichées automatiquement. Si aucun menu n'est
affiché, parce que le logiciel porté lang/php5 a été
installé par le passé, il est toujours
possible de forcer l'affichage du menu des options de
compilation en utilisant la commande:
#
make config
dans le répertoire du logiciel porté.
Dans le menu des options de compilation,
sélectionnez l'option APACHE
pour
compiler mod_php5 sous forme de
module chargeable pour le serveur Web
Apache.
De nombreux sites utilisent toujours PHP4 pour diverses raisons (des problèmes de compatibilité ou des applications Web déjà déployées). Si mod_php4 est requis à la place de mod_php5, utilisez alors le logiciel porté lang/php4. Le logiciel porté lang/php4 supporte plusieurs des options de configuration et de compilation du logiciel porté lang/php5.
Cela installera et configurera les modules requis au
support des applications dynamiques PHP.
Assurez-vous que les sections suivantes ont
été ajoutées au fichier
/usr/local/etc/apache/httpd.conf
:
LoadModule php5_module libexec/apache/libphp5.so
AddModule mod_php5.c <IfModule mod_php5.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule>
Ensuite, un simple appel à la commande
apachectl
pour un redémarrage
élégant est requis pour charger le module
PHP:
#
apachectl graceful
Lors des futures mises à jour de
PHP, la commande make
config
ne sera pas nécessaire; les
OPTIONS
précédemment
sélectionnées sont automatiquement
sauvegardées par le système des logiciels
portés de FreeBSD.
Le support de PHP sous FreeBSD est extrêmement modulaire ce qui donne lieu à une installation de base limitée. Il est très simple d'ajouter une fonctionnalité en utilisant le logiciel porté lang/php5-extensions. Ce logiciel porté fournit un menu pour l'installation des extensions PHP. Alternativement, il est possible d'installer les extensions individuellement en utilisant les logiciels portés correspondants.
Par exemple, pour ajouter à PHP5 le support pour le serveur de bases de données MySQL, installez simplement le logiciel porté databases/php5-mysql.
Après l'installation d'une extension, le serveur Apache doit être redémarré pour prendre en compte les changements de configuration:
#
apachectl graceful
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.