APACHE

De TwisterWiki

Le fichier .htaccess

Empêcher l'accès à un fichier

<Files admin.php3>
  AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
  AuthGroupFile /dev/null
  AuthName "Accès sécurisé au site ..."
  AuthType Basic
  <LIMIT GET POST>
    require user utilisateur1 utilisateur2
  </LIMIT>
</Files>

<Files admin2.php3>
 AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
 AuthGroupFile /dev/null
 AuthName "Accès sécurisé au site ..."
 AuthType Basic
 <LIMIT GET POST>
  require user utilisateur1 utilisateur2
 </LIMIT>
</Files>

Empêcher l'accès à un type de fichier

<Files *.png>
  Order Deny, Allow
  Deny from .LeNomDuDomaine.com
</Files>

Toutes les personnes (requêtes) provenant du domaine .LeNomDuDomaine.com ne pourront avoir accès aux images, dont l'extension est .png, comprises dans le répertoire et ses sous-répertoires

Autoriser l'accès à un groupe de fichiers par un domaine et un pays

<Files php*>
 Order Allow, Deny
 Deny from all
 Allow from .phpfrance.com
 Allow from .fr
</Files>

Cohabitation PHP4 et PHP5

php4 et php5 ne peuvent pas fonctionner tous les deux avec apache en mode module. La solution consiste à utiliser le mode cgi de php.

Installation de php4

Installation classique de php4 avec le paquet apache_mod_php4 (varie en fonction de la distrib linux).

Installation de php5

Installation classique de php4, il faut ajouter le paquet php5-cgi (varie en fonction de la distrib linux) et ne pas installer apache_mod_php5

Configuration

Installation du module apache mod_actions. ce module va permettre de modifier des valeurs propres à chaque vhosts.

création d'un fichier .htaccess comme suit:

<Files *.php>
  <IfModule mod_actions.c>
     AddHandler php-script .php
     Action php-script /cgi-bin/php5
  </IfModule>
</Files>

ou

<Files *.php5>
  <IfModule mod_actions.c>
     AddHandler php-script .php5
     Action php-script /cgi-bin/php5
  </IfModule>
</Files>


Cohabitation PHP5.2 et PHP5.3

  • Afin de faire cohabiter les deux versions 5.2 et 5.3 ensemble, il faut installer les paquets d'une des version puis compiler la seconde à partir des sources sur le site php.net
  • Options de compilation pour php5.2.17
./configure --enable-fastcgi --prefix=/usr/local/php5.2.17  --with-mysqli --with-xmlrpc
make
make install
a2enmod actions
ScriptAlias /local-bin /usr/local/php5.2.17/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi
<Directory "/usr/local/php-5.2.17/bin">
  Order allow,deny
  Allow from all
</Directory>

Installation Apache2.4 et PHP 5.4

Installation Apache 2.4

  • Installation des prérequis (pour debian squezee)
    • apt-get install libpcre3 libpcre3-dev
  • Décompactage des sources
    • tar -xzvf httpd-2.4.1.tar.gz -C /usr/local/src/httpd-2.4.1
    • tar -xzvf apr-1.4.6.tar.gz -C /usr/local/src/httpd-2.4.1/srclib && mv /usr/local/src/httpd-2.4.1/srclib/apr-1.4.6 /usr/local/src/httpd-2.4.1/srclib/apr
    • tar -xzvf apr-util-1.4.1.tar.gz -C /usr/local/src/httpd-2.4.1/srclib && mv /usr/local/src/httpd-2.4.1/srclib/apr-util-1.4.1 /usr/local/src/httpd-2.4.1/srclib/apr-util
  • compilation
    • cd /usr/local/src/apache2.4
    • ./configure --prefix=/usr/local/apache2.4 --enable-so --enable-alias --with-mpm=prefork
    • make
    • make install

Installation PHP 5.4

  • Décompactage des sources
    • tar -xzvf php-5.4.0.tar.gz -C /usr/local/src
  • Installation des prérequis (pour debian squezee)
    • apt-get install libxml2-dev
    • apt-get install zlib1g-dev
  • compilation
    • cd /usr/local/src/php-5.4.0
    • ./configure --prefix=/usr/local/php5.4 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php5.4/etc --enable-exif --enable-ftp --enable-mbstring --enable-zip --enable-calendar --with-mysql
    • make
    • make install


Configuration de php en mode CGI

  • cas standard avec php.ini commun à tous les vhosts
ScriptAlias /php /usr/lib/php5.3.20/
AddHandler php5-cgi .php
Action php5-cgi /php-cgi
  • Cas ou chaque vhost à besoin d'un php.ini differents
ScriptAlias /php 'emplacement du script php-cgi-wrapper (vosts)'
AddHandler php5-cgi .php
Action php5-cgi /php/php-cgi-wrapper

Contenu du fichier php-cgi-wrapper

#!/bin/bash
export PHPRC='emplacement du script php-cgi-wrapper (vosts)'
exec /usr/lib/php5.3.20/php-cgi