Cette installation est testé sous Ubuntu 15.01 mais pourrait être utilisée pour un serveur debian en production.

SuPhp n’est plus maintenu depuis quelques années maintenant, il n’est donc plus dans les repository des distributions récentes, et il devient difficile de le compiler sur un kernel 4.x (ce qui est mon cas, depuis mon passage sous Ubuntu 15.10).

Note : le paquet est toujours disponible sur Ubuntu 14.01LTS.

1 – Installation des packages de base.

sudo apt-get install    build-essential    fakeroot    dh-make    debconf    execstack  dh-modaliases xserver-xorg-dev  automake autoconf libaprutil1 libaprutil1-dev libsvn-dev wx2.8-headers libwxgtk2.8-dev  libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev  libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev  libgd-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev apache2 apache2-dev libxml2 libaprutil1-dev libxml2 libxml2-dev libssl-dev pkg-config curl libcurl4-openssl-dev enchant libenchant-dev libjpeg8 libjpeg8-dev libpng12-0 libpng12-dev  libvpx-dev libfreetype6 libfreetype6-dev  libgmp10 libgmp-dev libicu-dev mcrypt libmcrypt4 libmcrypt-dev libpspell-dev libedit2 libedit-dev libsnmp30 libsnmp-dev libxslt1.1 libxslt1-dev postgresql-server-dev-9.4 postgresql-server-dev-all

2- Compilation de PHP

On commence par faire un lien symbolique d’une lib qui serait potentiellement introuvable lors de la compilation :

sudo ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

On récupère les sources de PHP :

sudo wget -O php-5.6.16.tar.gz http://fr2.php.net/get/php-5.6.16.tar.gz/from/this/mirror && tar xzvf php-5.6.16.tar.gz && cd php-5.6.16

Puis on compile :

sudo ./configure --prefix=/usr/local/php --with-apxs2=/usr/bin/apxs2  --with-config-file-path=/usr/local/php/conf --with-config-file-scan-dir=/usr/local/php/conf.d --enable-debug --with-openssl --with-kerberos --with-zlib --enable-calendar --with-curl  --with-enchant --enable-exif --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-vpx-dir=/usr --with-freetype-dir=/usr  --enable-exif --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-intl --enable-mbstring --with-mcrypt --with-mysql --with-mysqli --enable-pcntl --with-pdo-mysql --with-pdo-pgsql --with-pgsql --with-pspell --with-libedit --with-readline --enable-shmop  --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvshm --with-xsl --enable-zip --with-pear --enable-zend-signals --enable-maintainer-zts --enable-bcmath  && sudo make && sudo make install

3- Configuration d’apache :
On référence notre répertoir dans lequel se trouve php, dans le fichier de conf d’apache /etc/apache2/apache2.conf

sudo vi /etc/apache2/apache2.conf

ScriptAlias /php5.6.16/ "/usr/local/php/bin/"
<Directory "/usr/local/php/bin/">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>

On procède ensuite a la configuration de notre vhost avec les directives suivantes :

Action php-script '/php5.6.16/php-cgi-5.6.16'
AddHandler php-script .php
PHPIniDir "/var/www/ATLV/"

Ce qui nous une configuration comme suit :

<VirtualHost *:80>
Options FollowSymLinks
DirectoryIndex app_dev.php
ServerName www.kuoni.dev
DocumentRoot /var/www/ATLV/web

Action php-script '/php5.6.16/php-cgi-5.6.16'
AddHandler php-script .php
PHPIniDir "/var/www/ATLV/"
<Directory /var/www/ATLV/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex app_dev.php
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Il nous reste à activer le mod actions :

a2enmod actions

Et à relancer apache2 :

service apache2 restart

And voila :

 

Sélection_050