1) Introduction.
Ce didacticiel propose de configurer le fichier httpd.conf d'Apache. Cette configuration n'est pas spécifique à WampServer mais à tous les serveurs web fonctionnant sous windows.
Ce didacticiel fonctionne actuellement sous Windows 7 Pro et ses particularités sont ceux de la version 2.4 d'apache. En aucune façon, vous ne pouvez utiliser ce didacticel pour configurer une version antérieur à la 2.4 d'Apache, ou de le faire tourner sous windows XP qui est devenu obsolète depuis Avril 2014.
Nous ne détaillerons pas ici l'installation de WampServer, ni celle d'une nouvelle version d'Apache. On suppose que ces deux points sont déjà opérationnels.
Nous avons volontairement fait un découpage du fichier httpd.conf afin de détailler chaque partie pour comprendre l'usage que nous faisons.
2) Le fichier des paramètres.
Tout au début du fichier httpd.conf, j'ai introduit un fichier paramètre, qui se trouve dans le sous-répertoire "/conf" du répertoire racine d'Apache, que voici.
# ******************************************************* #
# #
# Fichier de Configuration du Serveur HTTP Apache #
# #
# ******************************************************* #
include conf/param.conf
Le but est de rendre paramétrable le numéro de la version d'Apache, ainsi que le numéro de la version de PhpMyAdmin. Dans ma version modifiée de WampServer, ce sont deux nouvelles fonctionnalités que j'ai mis en place. Les valeurs réelles seront placées dans le fichier param.conf comme ci-après :
Define Version_Apache f:/Wamp/bin/apache/apache2.4.10
Define Version_PhpMyAdmin f:/Wamp/apps/phpmyadmin4.2.10
Une des nouvelles fonctionnalités misent en place à partir de la version 2.4 d'Apache est de pouvoir substituer les chaines de caractères que voici "${Version_Apache}" et "${Version_PhpMyAdmin}", par la valeur qui est stockée dans le fichier paramètre.
Si vous n'avez aucun usage de ces paramètres, vous pouvez supprimer cette partie.
3) Les fonctionnalités de Base d'Apache.
Ce sont les paramétres généraux que nous appliquons au service "WampApache afin d'obtenir la meilleure réactivitée en fonction du nombre d'utilisateurs.
Vous trouverez plus d'explications dans la documentation d'apache dans le chapitre consacré aux "fonctionnalités de Base d'Apache".
# ====================== #
# #
# Serveur Apache #
# #
# ====================== #
ServerRoot "${Version_Apache}"
PidFile Logs/httpd.pid
LogLevel warn
ServerSignature On
ServerTokens Full
AcceptFilter http none
AcceptFilter https none
HostnameLookups Off
UseCanonicalName Off
Timeout 60
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2
MaxRequestsPerChild 0
ThreadsPerChild 250
4) Liste des Modules.
Nous mettons dans le fichier httpd.conf la liste de tous les modules qui sont présents dans le sous-répertoire "/modules" du répertoire racine d'Apache.
Si un module est présent dans le sous-répertoire "/modules" d'Apache mais absent dans le fichier httpd.conf, l'image suivante apparait dans l'onglet "Modules d'Apache" de l'icône WampServer et signifie que la déclarative de ce module est absente dans le fichier Httpd.conf. Pour remédier à cela, vous devez mettre le nom de ce module dans le fichier Httpd.conf.
Nous plaçons un "#" au début de la ligne si nous ne faisons aucun usage de ce module. Même si le module est en commentaire, le fait qu'il soit présent dans le fichier httpd.conf vous évite d'avoir un avertissement sous la forme de l'image .
Ci-après, la liste des modules n'ayant aucun paramétrage associé.
# ========================== #
# #
# Les Modules Apache #
# #
# ========================== #
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
# LoadModule auth_digest_module modules/mod_auth_digest.so
# LoadModule auth_form_module modules/mod_auth_form.so
# LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_core_module modules/mod_authn_core.so
# LoadModule authn_dbd_module modules/mod_authn_dbd.so
# LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_file_module modules/mod_authn_file.so
# LoadModule authn_socache_module modules/mod_authn_socache.so
# LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
# LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule authz_core_module modules/mod_authz_core.so
# LoadModule authz_dbd_module modules/mod_authz_dbd.so
# LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
# LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
# LoadModule buffer_module modules/mod_buffer.so
# LoadModule cache_disk_module modules/mod_cache_disk.so
# LoadModule cache_module modules/mod_cache.so
# LoadModule cache_socache_module modules/mod_cache_socache.so
# LoadModule cern_meta_module modules/mod_cern_meta.so
# LoadModule charset_lite_module modules/mod_charset_lite.so
# LoadModule data_module modules/mod_data.so
# LoadModule dav_module modules/mod_dav.so
# LoadModule dav_fs_module modules/mod_dav_fs.so
# LoadModule dav_lock_module modules/mod_dav_lock.so
# LoadModule dbd_module modules/mod_dbd.so
# LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
# LoadModule expires_module modules/mod_expires.so
# LoadModule ext_filter_module modules/mod_ext_filter.so
# LoadModule file_cache_module modules/mod_file_cache.so
# LoadModule heartbeat_module modules/mod_heartbeat.so
# LoadModule heartmonitor_module modules/mod_heartmonitor.so
# LoadModule ident_module modules/mod_ident.so
# LoadModule imagemap_module modules/mod_imagemap.so
LoadModule isapi_module modules/mod_isapi.so
# LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
# LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
# LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
# LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
# LoadModule ldap_module modules/mod_ldap.so
# LoadModule log_debug_module modules/mod_log_debug.so
# LoadModule log_forensic_module modules/mod_log_forensic.so
# LoadModule lua_module modules/mod_lua.so
# LoadModule macro_module modules/mod_macro.so
# LoadModule mime_magic_module modules/mod_mime_magic.so
# LoadModule proxy_module modules/mod_proxy.so
# LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# LoadModule proxy_connect_module modules/mod_proxy_connect.so
# LoadModule proxy_express_module modules/mod_proxy_express.so
# LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
# LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
# LoadModule proxy_http_module modules/mod_proxy_http.so
# LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
# LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
# LoadModule ratelimit_module modules/mod_ratelimit.so
# LoadModule reflector_module modules/mod_reflector.so
# LoadModule remoteip_module modules/mod_remoteip.so
# LoadModule reqtimeout_module modules/mod_reqtimeout.so
# LoadModule request_module modules/mod_request.so
# LoadModule sed_module modules/mod_sed.so
# LoadModule session_module modules/mod_session.so
# LoadModule session_cookie_module modules/mod_session_cookie.so
# LoadModule session_crypto_module modules/mod_session_crypto.so
# LoadModule session_dbd_module modules/mod_session_dbd.so
# LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
# LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
# LoadModule socache_dbm_module modules/mod_socache_dbm.so
# LoadModule socache_memcache_module modules/mod_socache_memcache.so
# LoadModule speling_module modules/mod_speling.so
# LoadModule unique_id_module modules/mod_unique_id.so
# LoadModule userdir_module modules/mod_userdir.so
# LoadModule usertrack_module modules/mod_usertrack.so
# LoadModule version_module modules/mod_version.so
# LoadModule watchdog_module modules/mod_watchdog.so
5) Les Modules avec paramétrage.
Nous regroupons les modules qui fonctionnent en synergie. Dans l'exemple ci-après, le module alias et le module vhost_alias vont de pairs.
Le "<IfModule>" ... "</IfModule>" permet d'activier le paramétrage si le module est actif.
# -------------------------------------- #
# Module Alias #
# -------------------------------------- #
LoadModule alias_module modules/mod_alias.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
<IfModule alias_module>
ScriptAlias /cgi-bin/ "f:/site-01/Ex_03/ f:/site-04/"
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Alias.
# -------------------------------------- #
# Module CGI #
# -------------------------------------- #
LoadModule cgi_module modules/mod_cgi.so
<IfModule cgi_module>
ScriptLog "f:Wamp/Logs/apache_cgi.log"
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Cgi.
# -------------------------------------- #
# Module Deflate #
# -------------------------------------- #
LoadModule deflate_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so
<IfModule deflate_module>
SetOutputFilter DEFLATE
DeflateCompressionLevel 9
<Location />
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Pour les proxies
Header append Vary User-Agent env=!dont-vary
</Location>
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Deflate.
# -------------------------------------- #
# Module Directory #
# -------------------------------------- #
LoadModule dir_module modules/mod_dir.so
<IfModule dir_module>
DirectoryIndex index.php index.html index.shtml /Erreurs/404.php
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Directory.
# -------------------------------------- #
# Module Headers #
# -------------------------------------- #
LoadModule headers_module modules/mod_headers.so
<IfModule headers_module>
<FilesMatch "\.(php|php3|html|htm|shtml|js|css|cgi|pl)$">
Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Headers.
# -------------------------------------- #
# Module Include #
# -------------------------------------- #
LoadModule include_module modules/mod_include.so
<IfModule include_module>
SSITimeFormat "%A %d %B %Y - %T"
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Include.
# -------------------------------------- #
# Module Info_module #
# -------------------------------------- #
LoadModule info_module modules/mod_info.so
<IfModule info_module>
<Location /server-info>
SetHandler server-info
<RequireAny>
Require local
Require ip 192.168.1.20
</RequireAny>
</Location>
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Info.
Pour utiliser le module Info, il suffit de taper "/server-info" après l'url du site. Exemple : "http://mon-site-un/server-info".
# -------------------------------------- #
# Module log_config #
# -------------------------------------- #
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Log.
# -------------------------------------- #
# Module Mime #
# -------------------------------------- #
LoadModule mime_module modules/mod_mime.so
<IfModule mime_module>
TypesConfig conf/mime.types
#
AddType application/json .json
AddType application/xml .xml
#
AddType application/x-tar .tgz
AddType application/x-rar-compressed .rar
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#
AddType application/x-httpd-php .php .phtml .htm .html
AddType application/x-httpd-php-source .phps
#
AddType image/x-icon .ico
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Mime.
# -------------------------------------- #
# Module Php5 #
# -------------------------------------- #
LoadModule php5_module "f:/Wamp/bin/php/courant/php5apache2_4.dll"
phpIniDir "f:/Wamp/bin/php/courant"
Dans la documentation de Php, voici comment installer Php5 en tant que gestionnaire.
La directive "phpIniDir" permet de préciser le chemin où se trouve le répertoire php de la version courante. Il est aussi nécessaire de préciser dans la commande "Path" de windows où se trouve ce chemin.
# -------------------------------------- #
# Module Proxy_Html #
# -------------------------------------- #
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule xml2enc_module modules/mod_xml2enc.so
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Proxy_Html.
# -------------------------------------- #
# Module Rewrite #
# -------------------------------------- #
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule negotiation_module modules/mod_negotiation.so
#<IfModule rewrite_module>
# RewriteEngine On
#</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Rewrite.
# -------------------------------------- #
# Module Setenvif #
# -------------------------------------- #
LoadModule setenvif_module modules/mod_setenvif.so
Dans la documentation d'apache 2.4, voici le détail du module Setenvif.
# -------------------------------------- #
# Module SSL #
# -------------------------------------- #
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
<IfModule ssl_module>
SSLProtocol -ALL +SSLv3 +TLSv1
#
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
#
SSLPassPhraseDialog builtin
# SSLPassPhraseDialog "exec:${Version_Apache}/conf/Certificat/passphrase.txt"
#
SSLSessionCache "shmcb:f:/Wamp/tmp/ssl_scache(512000)"
SSLSessionCacheTimeout 300
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module SSL.
# -------------------------------------- #
# Module Status #
# -------------------------------------- #
LoadModule status_module modules/mod_status.so
<IfModule status_module>
ExtendedStatus On
#
<Location /server-status>
SetHandler server-status
<RequireAny>
Require local
Require ip 192.168.1.20
</RequireAny>
</Location>
</IfModule>
Dans la documentation d'apache 2.4, voici le détail du module Status.
Pour utiliser le module status, il suffit de taper "/server-status" après l'url du site. Exemple : "http://mon-site-un/server-status".
6) Les accès aux répertoires.
Nous définissons l'usage que nous voulons faire des sous-répertoires du répertoire racine du site. Voici trois exemples de redéfinitions.
# ======================= #
# #
# Les Répertoires #
# #
# ======================= #
# -------------------------------- #
# Répertoire "f:/Erreurs/" #
# -------------------------------- #
<Directory "f:/Erreurs/">
Options +Includes
#
<RequireAny>
Require local
Require ip 192.168.1.20
</RequireAny>
</Directory>
#
Alias /Erreurs/ "f:/Erreurs/"
#
ErrorDocument 400 /Erreurs/400.php
ErrorDocument 401 /Erreurs/401.php
ErrorDocument 403 /Erreurs/403.php
ErrorDocument 404 /Erreurs/404.php
ErrorDocument 500 /Erreurs/500.php
Lorsque nous rencontrons une erreur de type 400, 401, 403, 404 et 500, le serveur web affiche la page HTML qui est associée. Nous précisions que toutes les pages HTML sont regroupées dans le répertoire "f:/Erreurs" et que les accès en mode local ou via internet sont autorisés.
# ----------------------------------------------------------------- #
# Répertoires utilisant les commandes "Server Side Include" #
# ----------------------------------------------------------------- #
<Directory "f:/site-01/Ex_05/">
Options +Includes
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
Nous définissons le sous-répertoire "/Ex_05" du répertoire racine du site "httpd://mon-site-un" comme pouvant exécuter des commandes SSI (Server Side Include).
# ---------------------------------------- #
# Répertoires exécutant du cgi-bin #
# ---------------------------------------- #
<DirectoryMatch "f:/site-01/Ex_05/">
Options +ExecCGI
#
AddHandler cgi-script .pl
</DirectoryMatch>
Nous définissons le sous-répertoire "/Ex_05" du répertoire racine du site "httpd://mon-site-un" comme pouvant exécuter des scripts CGI (Common Gateway Interface).
7) Les accès aux fichiers.
Nous définissons les autorisations d'accès aux fichiers.
# ==================== #
# #
# Les Fichiers #
# #
# ==================== #
# -------------------------------------- #
# Liste des Fichiers à Protéger #
# -------------------------------------- #
<FilesMatch "\.(?i)(bat|c|htaccess|htpasswd|ini|log|sql|txt)$">
Require all denied
</FilesMatch>
Les fichiers dont le suffixe se termine par ".bat", ".htaccess", ".htpasswd", ".ini", ".log", ".sql", ".txt" ne sont pas accessible à partir de l'url.
Le "(?i)" signifie que le suffixe est insensible à la casse. Autrement dit, ".Ini" ou ".inI" avec des majuscules ou ".ini" sans majuscule sera traité de la même façon.
# ------------------------------------------------- #
# Fichiers paramètres des bases de données #
# ------------------------------------------------- #
<FilesMatch "(?i)(MySql_In|MySql_Out)">
Require all denied
</FilesMatch>
De même, j'ai interdit les accès à des fichiers dont le préfixe commence par "MySql_In" ou par "MySql_Out". Ce sont les fichiers de paramétrages aux accès des bases de données.
8) Les ports en écoutes et les adresses IP autorisées.
Nous définissons le port 80, ainsi que le port 443 comme des ports autorisés à l'écoute par Apache. le port 443 est autorisé que si le module SSL est activé.
# =============================== #
# #
# Les Adresses IP & Ports #
# #
# =============================== #
Listen 80 http
#
<IfModule ssl_module>
listen [::1]:443 https
</IfModule>
9) La police des caractères et le langage par défaut.
J'ai désactivé l'usage par défaut de la police de caractères pour mon serveur Web. Elle est définie dans les documents HTML par la balise HTML5 <meta charset="utf-8" />.
J'ai laissé en commentaire deux exemples. Le premier est la valeur "ISO-8859-1' par défaut des documents HTML et Php. Le deuxième concerne les fichiers dont le suffice est ".php", ".htm", ".html", ".css", ".js", ".xml", ".json", ".rss".
Comme je suis français, j'ai indiqué que le langage par défaut est le "fr".
# ============================ #
# #
# Police de Caractères #
# #
# ============================ #
AddDefaultCharset Off
#AddDefaultCharset "ISO-8859-1"
#AddCharset "ISO-8859-1" .php .htm .html .css .js .xml .json .rss
#
DefaultLanguage "fr"
10) Le serveur principal.
J'utilise le serveur principal comme un site de redirection du genre poubelle dans le cas où l'url est mal écrit. Le port et l'adresse IP ne sont pas précisés.
Il est conseillé dans la documentation d'Apache, de définir le premier VirtualHost comme étant celui du serveur principale, ce que j'ai fait.
# ========================= #
# #
# Serveur Principal #
# #
# ========================= #
ServerName _default_
DocumentRoot "f:/Default/"
#
ErrorLog "${Version_Apache}/Logs/apache_error.log"
CustomLog "${Version_Apache}/Logs/apache_custom.log" common
#
<Directory />
Options none
AllowOverride none
<RequireAny>
Require local
</RequireAny>
</Directory>
# --------------- #
# default #
# --------------- #
<VirtualHost *:*>
ServerName _default_
ServerAdmin artemus@jcz.fr
DocumentRoot "f:/Default/"
#
ErrorLog "f:/Default/Logs/error.log"
CustomLog "f:/Default/Logs/custom.log" common
#
<Directory />
Options none
AllowOverride none
<RequireAny>
Require local
</RequireAny>
</Directory>
</VirtualHost>
11) Les autres sites.
Voici plusieurs exemples de déclaratives des VirtualHosts pour des usages différents.
# ===================== #
# #
# Virtual Hosts #
# #
# ===================== #
# -------------------------- #
# Localhost avec SSL #
# -------------------------- #
<VirtualHost [::1]:443>
ServerName localhost
ServerAdmin artemus@jcz.fr
DocumentRoot "f:/Wamp/www/"
#
ErrorLog "f:/Wamp/www/Logs/error.log"
#
SSLEngine on
SSLCertificateFile "${Version_Apache}/conf/Certificat/localhost.crt"
SSLCertificateKeyFile "${Version_Apache}/conf/Certificat/localhost.key"
#
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
#
<Directory />
SSLOptions +StdEnvVars
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride none
<RequireAny>
Require local
Require ip 192.168.1.20
</RequireAny>
</Directory>
#
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog "f:/wamp/www/Logs/custom.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
J'ai défini l'accès au site localhost en tapant "https://localhost", c'est-à-dire par le protocole https qui est sécurisé. Cela nécessite d'avoir une certification de type SSL.
# -------------------------- #
# Localhost sans SSL #
# -------------------------- #
<VirtualHost [::1]:80>
ServerName localhost
ServerAdmin artemus@jcz.fr
DocumentRoot "f:/Wamp/www/"
#
ErrorLog "f:/Wamp/www/Logs/error.log"
CustomLog "f:/Wamp/www/Logs/custom.log" common
#
<Directory />
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride none
<RequireAny>
Require local
Require ip 192.168.1.20
</RequireAny>
</Directory>
</VirtualHost>
Ici, l'accès au site localhost se fait en tapant "http://localhosy", c'est-à-dire sans le protocole sécurité.
# ------------------ #
# PhpMyAdmin #
# ------------------ #
<VirtualHost [::1]:80>
ServerName phpmyadmin
ServerAdmin artemus@jcz.fr
DocumentRoot "${Version_PhpMyAdmin}/"
#
ErrorLog "f:/Wamp/Logs/phpmyadmin_error.log"
CustomLog "f:/Wamp/Logs/phpmyadmin_custom.log" common
#
<Directory />
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride none
<RequireAny>
Require local
</RequireAny>
</Directory>
</VirtualHost>
L'accès à l'utilitaire PhpMyAdmin est défini en tant que site et non en tant qu'alias. On retrouve la variable "${Version_PhpMyAdmin}/" qui indique le numéro de la version de PhpMyAdmin courante.
# ------------------- #
# mon-site-un #
# ------------------- #
<VirtualHost 127.0.0.1:80>
ServerName mon-site-un
ServerAdmin artemus@jcz.fr
DocumentRoot "f:/Site-01/"
#
ErrorLog "f:/Site-01/Logs/error.log"
CustomLog "f:/Site-01/Logs/custom.log" common
#
<Directory />
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride all
<RequireAny>
Require local
</RequireAny>
</Directory>
</VirtualHost>
Pour mon environnement de développement, j'utilise size sites dont les noms vont de "mon-site-un" à mon-site-seize". Ils sont tous construits sur le même modèle ci-dessus.
# ----------------- #
# mon-forum #
# ----------------- #
<VirtualHost 127.0.0.17:80>
ServerName mon-forum
ServerAdmin artemus@jcz.fr
DocumentRoot "f:/Site-forum/"
#
ErrorLog "f:/Site-forum/Logs/error.log"
CustomLog "f:/Site-forum/Logs/custom.log" common
#
<Directory />
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride none
<RequireAny>
Require local
</RequireAny>
</Directory>
</VirtualHost>
J'ai aussi un forum en test sur mon ordinateur. Il est définit en tant que site.
# ----------------- #
# mon-forum #
# ----------------- #
Alias /forum "f:/site-forum/"
#
<Directory "f:/site-forum/">
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride none
<RequireAny>
Require local
Require ip 192.168.1.20
</RequireAny>
</Directory>
#
Et ce même forum est aussi définit en tant qu'Alias.
12) Les includes.
A la fin du fichier httpd.conf, j'ai placé les deux includes dont j'ai l'usage, à savoir celui des alias qui est présent dans le sous-répertoire "/alias" de WampServer et celui de "httpd-autoindex.conf".
# =========== #
# #
# Alias #
# #
# =========== #
Include "f:/Wamp/alias/*"
# ================================ #
# #
# Fancy directory listings #
# #
# ================================ #
Include conf/extra/httpd-autoindex.conf
13) Conclusion.
Ceci est le Httpd.conf que j'utilise pour la version d'Apache 2.4, en usage avec la version php 5 & 6. Il y a sûrement des améliorations à faire, mais pour débuter avec WampServer, c'est largement suffisant.
Vous pouvez télécharger le fichier zipper httpd.conf que j'utilise sous WampServer !