Configuration de Apache2.2.3 pour l’accès aux applications web PHP

Organisation de la configuration

Les fichiers de configuration sont stockés dans /etc/httpd/conf/. Le fichier principal de configuration est httpd.conf, les déclarations concernant les serveurs web virtuels sont stockés dans le dossier vhosts.d/

La racine du serveur est déclarée (configuration standard) dans /var/www/html.

Configuration préalable d’Apache

Par défaut, cette configuration d’Apache n’autorise pas l’utilisation des fichiers .htaccess (ou plutôt, ne tient pas compte de leur contenu). Il faut modifier le fichier httpd.conf pour rajouter l’option AllowOverride All (cette configuration ne peut être utilisée qu’en Intranet) :

<Directory "/var/www/html">
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
Options -Indexes FollowSymLinks MultiViews
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit Indexes
# AllowOverride None
AllowOverride All
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
</Directory>

Ne pas oublier de redémarrer le service Apache après modification...

service httpd restart

Installation d’une nouvelle application

L’installation va être réalisée en plusieurs étapes :

  • copie de l’application dans le dossier /var/www/html
  • modification des droits sur l’arborescence de l’application
  • création d’un lien générique vers l’application
  • création d’un alias dans le serveur DNS
  • création d’une entrée dans le dossier vhosts.d/ du serveur Apache

Copie de l’application dans le dossier /var/www/html

Utiliser les outils classiques comme winscp ou konqueror (protocole fish) pour installer l’application dans le dossier.

Modification des droits sur l’arborescence de l’application

Pour que le serveur Apache puisse accéder aux fichiers, il faut qu’il ait au moins les droits de lecture et d’exécution, voire d’écriture dans certains dossiers (en général indiqué dans la documentation d’installation de l’application).

chown -R root:apache /var/www/html/application
chmod -R 750 /var/www/html/application

Création d’un lien générique vers l’application

Par défaut, toute nouvelle application est installée dans un dossier contenant le numéro de version, par exemple, glpi.0.7. Pour simplifier la gestion et la mise en oeuvre de nouvelles versions, on va créer un lien générique vers ce dossier, et c’est ce lien qui servira de point d’accès à l’application :

cd /var/www/html
ln -s glpi.0.7 glpi

Ainsi, si on veut installer une nouvelle version, c’est très simple. On copie les nouveaux fichiers dans une nouvelle arborescence, on modifie (ou on recopie) les fichiers de paramètres, et si les tests sont ok, il suffit de modifier le lien pour que les utilisateurs aient accès immédiatement à la nouvelle application.

Création d’un alias dans le serveur DNS

Utiliser les outils disponibles pour créer un alias dans votre serveur dns.

Création d’une entrée dans le dossier vhosts.d

Créer une entrée dans le fichier vhosts.d pour votre application, en la préfixant par le numéro 96_, par exemple 96_lammap.conf.

Deux cas de figure sont à prendre en compte :

  • l’identification est déléguée à un CAS-SSO : on n’a pas besoin de cryptage
  • l’identification est réalisée par le serveur Apache : il faut basculer en mode https.

Configuration normale

cat 97_glpi.conf
<VirtualHost *:80>
ServerName glpi.societe.com
DocumentRoot /var/www/html/glpi
ServerPath /glpi
</VirtualHost>
<VirtualHost *:80>
ServerName glpi
RewriteEngine on
RewriteRule ^ http://glpi.societe.comi%{REQUEST_URI} [R]
</VirtualHost>

On crée deux entrées, l’une quand on tape l’adresse complète, l’autre si on ne tape que le nom de l’application (cas sur le réseau local).

On redirige vers le dossier (le lien) contenant l’application.

Configuration en mode https

cat 96_mrbs.conf
<VirtualHost *:80>
ServerName mrbs
DocumentRoot /var/www/html/mrbs
ServerPath /mrbs
Options FollowSymLinks
RewriteEngine on
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^ https://mrbs.societe.com/mrbs%{REQUEST_URI} [R]
</VirtualHost>
<VirtualHost *:80>
ServerName mrbs.societe.com
Options FollowSymLinks
RewriteCond %{SERVER_PORT} !=443
RewriteEngine on
DocumentRoot /var/www/html/mrbs
ServerPath /mrbs
RewriteRule ^ https://mrbs.societe.com/mrbs%{REQUEST_URI} [R]
</VirtualHost>

La configuration est différente. On ne peut pas accéder directement à l’application, on est obligé de « tricher », et d’indiquer le nom du dossier d’accès.

Dans le cas 1, on a un accès à l’application ainsi :

http://glpi.societe.com

Dans le second cas, l’accès contient le dossier contenant l’application :

https://mrbs.societe.com/mrbs

Néanmoins, pour l’utilisateur, c’est transparent, rares sont ceux qui sont capables de voir la différence...

Dans ce cas de figure, on ne peut pas accéder directement à l’application en tapant : https://mrbs : on arrive dans ce cas là à la racine du serveur web.

Une fois la configuration terminée...

Ne pas oublier de faire prendre en compte par Apache les modifications :

/etc/init.d/httpd reload