Simplifier vos fichiers de configuration avec mod_macro

Si comme moi vous êtes allergiques au copier/coller, voici comment simplifier les fichiers de configuration Apache à l'aide d'un simple module : mod_macro.

Ce module permet la définition de macros, similaires à celles du pré-processeur C. Bien que basiques, elles permettent de factoriser une grande part de la configuration, tout particulièrement avec plusieurs virtualhosts.

Voici un exemple :

/etc/apache2/vhosts.d/01_poirsouille.org.conf
# Définition de la macro VH

        DocumentRoot "/home/poirsouille/public_html/$subdomain"
        ServerName $subdomain.poirsouille.org
        CustomLog /var/log/apache2/$subdomain_access_log combined
        ErrorLog /var/log/apache2/$subdomain_error_log

        
                Options Indexes FollowSymLinks
                Options +ExecCGI

                Order allow,deny
                Allow from all
        


# Autre macro pour la configuration SSL

        SSLEngine on
        SSLProtocol all -SSLv2

        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/ssl/apache2/$subdomain.poirsouille.crt
        SSLCertificateKeyFile /etc/ssl/apache2/poirsouille.key
        SSLCertificateChainFile /etc/ssl/apache2/sub.class1.server.ca.pem
        SSLCACertificateFile /etc/ssl/apache2/ca.pem
        
                SSLOptions +StdEnvVars
        

        
                SSLOptions +StdEnvVars
        
        
                CustomLog /var/log/apache2/ssl_request_log \
                        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        





        Use VH photos



        Use VH tech

        SuexecUserGroup poirsouille poirsouille
        FCGIWrapper /home/poirsouille/public_html/cgi-bin/php-fcgi .php


        Use VH tech
        Use SSL tech
        SuexecUserGroup poirsouille poirsouille
        FCGIWrapper /home/poirsouille/public_html/cgi-bin/php-fcgi .php


 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *