viernes, 1 de septiembre de 2017

Compilar y configurar PHP-FPM 5.6.30 para que escuche en un puerto sobre Debian 8

Aprovecho que he tenido que compilar de nuevo PHP para poder utilizarlo con nGinx, y os dejo mi receta


> mkdir /opt/source
> mkdir -p /opt/php-5.6
> cd /opt/source # Bajo y descomprimo el código fuente en este directorio
> get http://es1.php.net/get/php-5.6.30.tar.gz
> tar -xzvf php-5.6.30.tar.gz
> apt-get install build-essential
> apt-get install libcurl4-openssl-dev pkg-config
> apt-get install libbz2-dev
> apt-get install libjpeg62 libjpeg62-dev
> apt-get install libpng12-dev
> apt-get install libfreetype6-dev
> apt-get update && apt-get install -y libc-client-dev libkrb5-dev
> mkdir /usr/lib64/
> ln -s /usr/lib/libc-client.a /usr/lib64/libc-client.a
> apt-get install make
> cd php-5.6.30
> ./configure \
--prefix=/opt/php-5.6 \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--with-gd \
--with-jpeg-dir=/usr/lib/ \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-intl \
--with-xsl \
--with-pear
> make
> make install

# Configuro PHP-fpm

> cp /opt/php-5.6/etc/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf
> cp /opt/source/php-5.6.30/php.ini-production /opt/php-5.6/lib/php.ini
> vi /opt/php-5.6/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
user = www-data
group = www-data
[...]
listen = 127.0.0.1:9001
[...]
#include=/opt/php-5.6/etc/pool.d/*.conf
[...]
[www-PHP56]
> cp /opt/source/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php5.6-fpm
> chmod 755 /etc/init.d/php5.6-fpm
> /etc/init.d/php5.6-fpm start

Solo faltaría configurar nGinx para que envíe las peticiones PHP a este puerto. También se podría configurar por socket.