Outils pour utilisateurs

Outils du site


tutoriels:php52x-suphp

PHP 5.2.17 : CGI/FastCGI & SuPHP

PHP (sigle de PHP: Hypertext Preprocessor3) est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet complètes5. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage.

Installation de PHP 5.2.17 depuis les sources

Depuis les sources

  • Récupération de l'archive sur le site officiel :

cd /root/sources
wget http://fr2.php.net/get/php-5.2.17.tar.gz/fromfr.php.net/mirror
mv mirror php-5.2.17.tgz
tar xvzf php-5.2.17.tgz
cd php-5.2.17

  • Comme toute install depuis les sources, il y a les README :

Compilation de PHP

On constate aussi qu'un certain nombre d'extensions “couramment utilisées” sont déja dispo dans le Directory ext.

Compilation du moteur PHP en CGI/FCGI

  • Pour les extensions de PHP, on peut soit les compiler “en dur” avec le moteur soit on pourra les compiler séparement pour les chargés sous forme de librairies dynamiques (.so)

Installation des librairies de développement et paquets nécessaires pour la compil

aptitude install build-essential libxml2-dev libssl-dev libcurl4-gnutls-dev libjpeg62-dev libpng12-dev libltdl-dev libfreetype6-dev libgmp3-dev libmcrypt-dev libmhash-dev libmysqlclient-dev libxslt1-dev libc-client2007e-dev gettext

  • Voici les options que j'inclus directement dans le moteur PHP:

'./configure' \
'--prefix=/usr/local/php-5.2.17' \
'--disable-cli' \
'--enable-cgi' \
'--enable-fastcgi' \
'--with-mysql' \
'--with-mysqli' \
'--enable-bcmath' \
'--with-zlib-dir=/usr/include/' \
'--enable-simplexml' \
'--with-xsl' \
'--with-gd' \
'--with-openssl' \
'--enable-magic-quotes' \
'--enable-exif' \
'--enable-ftp' \
'--enable-sockets' \
'--enable-shmop' \
'--enable-mbstring' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-calendar' \
'--with-png-dir=/usr' \
'--with-iconv' \
'--with-jpeg-dir=/usr' \
'--with-freetype-dir=/usr' \
'--with-pdo-mysql' \
'--with-mcrypt' \
'--enable-shmop' \
'--with-gmp' \
'--with-curl' \
'--with-mhash' \
'--enable-soap' \
'--with-imap' \
'--with-imap-ssl' \
'--with-kerberos' \
'--enable-dba' \
'--enable-zip' \
'--with-gettext' 

  • Le résultat génère le Makefile ne retourne pas d'erreurs donc un screen de ce type :

Compilation sans erreurs

Création du binaire de notre moteur PHP 5.2.17

Compilaton

make
ça prend du temps, ne soyez pas étonné :
real    3m49.165s
user    2m41.554s
sys     0m26.350s

Installation du moteur

make install
Installation du binaire PHP

Le moteur moteur PHP 5.2.17 en CGI est disponible et fonctionnel :

PHP 5.2.17 installé

  • La fonction phpinfo() :

PHP-5.2.17 phpinfo();

Configuration de plusieurs versions PHP avec suPHP par vhost

Contexte :

Vous disposez d'un LAMP avec par exemple un PHP (5.2.X), et vous souhaitez disposez des 2 versions de PHP sans pour autant relacher votre sécurité avec Apache2 et suPHP.


Logos

Ressources :

Installation de suPHP

aptitude install libapache2-mod-suphp

Déclaration de différents Handlers pour gérer plusieurs moteurs PHP

  • Modifier le /etc/suphp/suphp.conf

[handlers]
;Handler for php-scripts
application/x-httpd-php526=php:/usr/bin/php-cgi
application/x-httpd-php536=php:/usr/local/php-5.3.6/bin/php-cgi
application/x-httpd-php5217=php:/usr/local/php-5.2.17/bin/php-cgi
Pour cet exemple, j'ai 3 moteurs PHP : 5.2.6 (paquet Debian)/ 5.3.6 (compilé) et 5.2.17 (compilé).

  • Déclarer ces Handlers dans le fichier /etc/apache2/mods-enabled/suphp.conf :

<IfModule mod_suphp.c>
        # Handler du PHP-CGI en 5.3.6
        AddType application/x-httpd-php536 .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-php536
        # Handler du PHP-CGI en 5.2.17
        AddType application/x-httpd-php5217 .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-php5217
        # Handler du PHP-CGI en 5.2.6
        AddType application/x-httpd-php526 .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-php526
.....

Cette méthode permet de pouvoir surcharger la conf de suphp dans les vhosts des instances d'Apache !!

Vous pouvez vous permettre maintenant d’appeler différentes versions de PHP toujours en bénéficiant de la sécurité de suPHP (contrôle owner/group/DocumentRoot…) en appelant le handler de votre choix dans le VHOST :

AddType application/x-httpd-php5217 .php .php3 .php4 .php5 .phtml

Si toutefois, vous ne précisez pas cette spécification, suPHP prendra le dernier lu dans le fichier /etc/apache2/mods-enabled/suphp/suphp.conf .

tutoriels/php52x-suphp.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page