Alianwebserver.com

Retour au sommaire informatique

Installation et configuration d'Apache avec mod_perl, mod_php, mod_ssl en statique

Introduction

Tous les archives sont décompressées dans /usr/local/soft C'est un répertoire temporaire commum utilisé dans l'exemple. Le répertoire final d'Apache (où se trouve la conf, les bin, ...) est /usr/local/apache.

Récupérer les sources:

1/ Apache

Récupérer Apache (au moins version 1.3.26) depuis http://www.apache.org/dist/httpd. et le décompresser dans /usr/local/soft/apache_1.3.x.

2/ OpenSSL

3/ Mod_ssl :

Pour voir le coté théorique des serveurs Web, voir plutôt ici.

Installation

1/ Installer et compiler OpenSSL :

% tar zxvf openssl-0.9.x.tar.gz 
% cd openssl-0.9.x 
% ./config 
% make (ca dure un petit moment ...) 
% make test 

2/ Configurer mod_ssl

% cd mod_ssl-2.x 
% ./configure --with-apache=../apache_1.3.x

3/ Installer et compiler mod_perl :

% tar zxvf mod_perl-1_21_tar.gz 
% cd mod_perl-1.21
% perl Makefile.PL \ 
       EVERYTHING=1 \ 
       APACHE_SRC=../apache_1.3.x/src \ 
       USE_APACI=1 \ PREP_HTTPD=1 \
       DO_HTTPD=1
% make 
% make install 
% cd .. 

4/ Installer et compiler php :

% tar zxvf php-3_0_12_tar.gz
% cd php-3.0.12
% ./configure --with-apache="../apache_1.3.x" \
              --with-mysql="/usr/local/mysql" \
              --enable-memory-limit=yes 
              --enable-debug=no
% make
% make install 
% cd ..        

5/ Recompiler Apache

% cd apache_1.3.x 
% SSL_BASE=/path/to/openssl 
% ./configure \ 
      --prefix=/path/to/apache \
      --enable-module=ssl \
      --activate-module=src/modules/perl/libperl.a \
      --enable-module=perl \
      --activate-module=src/modules/php3/libphp3.a \
      --enable-module=php3
% make 
% make certificate 
% make install 

6/ Installer la version d'Apache qui vient d'être compilée

Arrêter le serveur Web si il marche par un

% kill -TERM `cat /usr/local/apache/var/run/httpd.pid`

puis

% make install

7/ Configuration d'Apache :

Ensuite renommez les fichiers /usr/local/apache/etc/*.default en *. car Apache n'a pas écrasé vos anciens fichiers de conf (encore heureux !) Récupérez bien sur avant de renommer la configuration spécifique que vous aviez auparavant.

8/ Relancer Apache :

% /usr/local/apache/httpd/bin/httpd -DSSL 

(-DSSL pour les directives de httpd.conf).

Remarques

Remarque 1:

La configuration d'un certificat SSL sur Apache est faite automatiquement par la commande make certificate du 6/. Pour le certificat final, voir http://www.modssl.org/docs/2.8/ssl_faq.html#ToC27

Remarque 2 :

Comment fait on pour que seuls certains répertoires soient protéger par SSL?

Exemple :

1/ Physiquement, séparer au niveau des répertoires ce qui va être protégé de ce qui ne va pas l'être.

2/ Mettre la racine de HTTP sur la partie non sécurisé, celle de HTTPS sur les répertoires à sécuriser.

3/ Faire des redirections sur les répertoires qui doivent être protégés par https dans la partie de configuration de HTTP pointant vers l'URL correspondant sur HTTPS :

Redirect /service http://foo2.bar.com/service 

Une autre solution pour faire quelque chose d'équivalent serait d'utiliser le module d'Apache mod_rewrite : http://www.apache.org/docs/misc/rewriteguide.html

Remarque 3 :

Pour empêcher l'accès à un répertoire :