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 :