« APACHE » : différence entre les versions

De TwisterWiki
 
(24 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
= Le fichier .htaccess =
== Le fichier .htaccess ==


== Empêcher l'accès à un fichier ==
=== Empêcher l'accès à un fichier ===
<Files admin.php3>
<source lang="php">
  AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
<Files admin.php3>
  AuthGroupFile /dev/null
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
  AuthName "Accès sécurisé au site ..."
AuthGroupFile /dev/null
  AuthType Basic
AuthName "Accès sécurisé au site ..."
  <LIMIT GET POST>
AuthType Basic
    require user utilisateur1 utilisateur2
<LIMIT GET POST>
  </LIMIT>
  require user utilisateur1 utilisateur2
</Files>
</LIMIT>
</Files>
   
   
<Files admin2.php3>
<Files admin2.php3>
  AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
  AuthGroupFile /dev/null
AuthGroupFile /dev/null
  AuthName "Accès sécurisé au site ..."
AuthName "Accès sécurisé au site ..."
  AuthType Basic
AuthType Basic
  <LIMIT GET POST>
<LIMIT GET POST>
  require user utilisateur1 utilisateur2
  require user utilisateur1 utilisateur2
  </LIMIT>
</LIMIT>
</Files>
</Files>
 
</source>
== Empêcher l'accès à un type de fichier==


=== Empêcher l'accès à un type de fichier===
<source lang="c">
  <Files *.png>
  <Files *.png>
   Order Deny, Allow
   Order Deny, Allow
   Deny from .LeNomDuDomaine.com
   Deny from .LeNomDuDomaine.com
  </Files>
  </Files>
 
</source>
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
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 ==
== Autoriser l'accès à un groupe de fichiers par un domaine et un pays ==
<source lang="php">
  <Files php*>
  <Files php*>
   Order Allow, Deny
   Order Allow, Deny
Ligne 38 : Ligne 41 :
   Allow from .fr
   Allow from .fr
  </Files>
  </Files>
</source>


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


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


== Installation de php5 ==
=== 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
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 ===
==== Configuration ====
Installation du module apache mod_actions. ce module va permettre de modifier des valeurs propres à chaque vhosts.
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:
création d'un fichier .htaccess comme suit:
<source lang="c">
  <Files *.php>
  <Files *.php>
   <IfModule mod_actions.c>
   <IfModule mod_actions.c>
Ligne 59 : Ligne 64 :
   </IfModule>
   </IfModule>
  </Files>
  </Files>
</source>
ou
ou
<source lang="c">
  <Files *.php5>
  <Files *.php5>
   <IfModule mod_actions.c>
   <IfModule mod_actions.c>
Ligne 66 : Ligne 73 :
   </IfModule>
   </IfModule>
  </Files>
  </Files>
</source>


== Installation PHP5.3.23 ==
* Options de compilation pour php5.3.23
<source lang="bash">
./configure \
--prefix=/usr/local/php5.3.23 \
--enable-shared \
--disable-debug \
--with-regex=php \
--disable-rpath \
--disable-static \
--with-pic \
--with-layout=GNU \
--with-pear=/usr/share/php5.3.23 \
--enable-calendar \
--enable-json \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-bcmath \
--with-bz2 \
--enable-ctype \
--with-db4 \
--without-gdbm \
--with-iconv \
--enable-exif \
--enable-ftp \
--with-gettext \
--enable-mbstring \
--with-pcre-regex \
--enable-shmop \
--enable-sockets \
--enable-simplexml \
--enable-dom=/usr \
--enable-wddx \
--with-libxml-dir=/usr \
--enable-tokenizer \
--with-zlib \
--with-kerberos=/usr \
--with-openssl=/usr \
--enable-soap \
--enable-zip \
--with-config-file-path=/usr/lib/php5.3.23 \
--with-config-file-scan-dir=/usr/lib/php5.3.23/conf.d \
--datadir=/usr/lib/php5.3.23 \
--bindir=/usr/lib/php5.3.23 \
--libdir=/usr/lib/php5.3.23 \
--sysconfdir=/usr/lib/php5.3.23 \
--with-exec-dir=/usr/lib/php5.3.23/libexec \
--with-curl=shared,/usr \
--with-zlib-dir=/usr \
--with-gd=shared \
--enable-gd-native-ttf \
--with-gmp=shared,/usr \
--with-jpeg-dir=shared,/usr \
--with-xpm-dir=shared,/usr/X11R6 \
--with-png-dir=shared,/usr \
--with-freetype-dir=shared,/usr \
--with-t1lib=shared,/usr \
--with-mcrypt=shared,/usr \
--with-mhash=shared,/usr \
--with-mysql=shared,/usr \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-mysqli=shared,/usr/bin/mysql_config \
--with-pspell=shared,/usr \
--with-unixODBC=shared,/usr \
--with-xsl=shared,/usr \
--with-mssql=shared,/usr \
--with-tidy=shared \
--with-xmlrpc=shared \
--with-sqlite=shared,/usr \
--enable-pdo=shared \
--without-pdo-dblib \
--with-pdo-sqlite=shared,/usr \
--with-pdo-mysql=shared,/usr \
--with-pdo-odbc=shared,unixODBC,/usr \
--with-pdo-pgsql=shared,/usr/bin/pg_config \
--with-pdo-dblib=shared,/usr


= 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
Otions de compilation pour php5.2.17
./configure --enable-fastcgi --prefix=/usr/local/php5.2.17  --with-mysqli --with-xmlrpc
  make
  make
  make install
  make install
</source>


<source lang="php">
  a2enmod actions
  a2enmod actions
</source>
=== Configuration de php en mode CGI ===
* cas standard avec php.ini commun à tous les vhosts
<source lang="bash">
ScriptAlias /php /usr/lib/php5.3.23/
AddHandler php5-cgi .php
Action php5-cgi /php-cgi
</source>
* Cas ou chaque vhost à besoin d'un php.ini differents
<source lang="bash">
ScriptAlias /php 'emplacement du script php-cgi-wrapper (vosts)'
AddHandler php5-cgi .php
Action php5-cgi /php/php-cgi-wrapper
</source>
Contenu du fichier php-cgi-wrapper
<source lang="bash">
#!/bin/bash
export PHPRC='emplacement du fichier php.ini (vhosts)'
exec /usr/lib/php5.3.23/php-cgi
</source>
== Installation Apache2.4 et PHP 5.4 ==
=== Installation Apache 2.4 ===
* Récupération des sources sur le site apache
** wget http://mirrors.ircam.fr/pub/apache/httpd/httpd-2.4.1.tar.gz
** wget http://mirrors.ircam.fr/pub/apache/apr/apr-1.4.6.tar.gz
** wget http://mirrors.ircam.fr/pub/apache/apr/apr-util-1.4.1.tar.gz
* Installation des prérequis (pour debian squezee)
** apt-get install libpcre3 libpcre3-dev
* Décompactage des sources
<source lang="bash">
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
</source>
* 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 ===
* Récupération des sources sur le site apache
** wget http://fr2.php.net/get/php-5.4.0.tar.gz/from/fr.php.net/mirror && mv mirror php-5.4.0.tar.gz
* 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


ScriptAlias /local-bin /usr/local/php5.2.17/bin
[[category:système]]
AddHandler application/x-httpd-php5 php
[[category:Linux]]
Action application/x-httpd-php5 /local-bin/php-cgi
<Directory "/usr/local/php-5.2.17/bin">
  Order allow,deny
  Allow from all
</Directory>

Dernière version du 22 août 2013 à 16:02

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>

Installation PHP5.3.23

  • Options de compilation pour php5.3.23
 ./configure \
 --prefix=/usr/local/php5.3.23 \
 --enable-shared \
 --disable-debug \
 --with-regex=php \
 --disable-rpath \
 --disable-static \
 --with-pic \
 --with-layout=GNU \
 --with-pear=/usr/share/php5.3.23 \
 --enable-calendar \
 --enable-json \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-sysvmsg \
 --enable-bcmath \
 --with-bz2 \
 --enable-ctype \
 --with-db4 \
 --without-gdbm \
 --with-iconv \
 --enable-exif \
 --enable-ftp \
 --with-gettext \
 --enable-mbstring \
 --with-pcre-regex \
 --enable-shmop \
 --enable-sockets \
 --enable-simplexml \
 --enable-dom=/usr \
 --enable-wddx \
 --with-libxml-dir=/usr \
 --enable-tokenizer \
 --with-zlib \
 --with-kerberos=/usr \
 --with-openssl=/usr \
 --enable-soap \
 --enable-zip \
 --with-config-file-path=/usr/lib/php5.3.23 \
 --with-config-file-scan-dir=/usr/lib/php5.3.23/conf.d \
 --datadir=/usr/lib/php5.3.23 \
 --bindir=/usr/lib/php5.3.23 \
 --libdir=/usr/lib/php5.3.23 \
 --sysconfdir=/usr/lib/php5.3.23 \
 --with-exec-dir=/usr/lib/php5.3.23/libexec \
 --with-curl=shared,/usr \
 --with-zlib-dir=/usr \
 --with-gd=shared \
 --enable-gd-native-ttf \
 --with-gmp=shared,/usr \
 --with-jpeg-dir=shared,/usr \
 --with-xpm-dir=shared,/usr/X11R6 \
 --with-png-dir=shared,/usr \
 --with-freetype-dir=shared,/usr \
 --with-t1lib=shared,/usr \
 --with-mcrypt=shared,/usr \
 --with-mhash=shared,/usr \
 --with-mysql=shared,/usr \
 --with-mysql-sock=/var/run/mysqld/mysqld.sock \
 --with-mysqli=shared,/usr/bin/mysql_config \
 --with-pspell=shared,/usr \
 --with-unixODBC=shared,/usr \
 --with-xsl=shared,/usr \
 --with-mssql=shared,/usr \
 --with-tidy=shared \
 --with-xmlrpc=shared \
 --with-sqlite=shared,/usr \
 --enable-pdo=shared \
 --without-pdo-dblib \
 --with-pdo-sqlite=shared,/usr \
 --with-pdo-mysql=shared,/usr \
 --with-pdo-odbc=shared,unixODBC,/usr \
 --with-pdo-pgsql=shared,/usr/bin/pg_config \
 --with-pdo-dblib=shared,/usr

 make
 make install
 a2enmod actions

Configuration de php en mode CGI

  • cas standard avec php.ini commun à tous les vhosts
 ScriptAlias /php /usr/lib/php5.3.23/
 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 fichier php.ini (vhosts)'
 exec /usr/lib/php5.3.23/php-cgi

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