GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (CentOS 6.3)

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (CentOS 6.3 )

A partire da ISPConfig 3.0.5, è possibile utilizzare più versioni PHP su un server e selezionare la versione PHP ottimale per un sito web. Questa funzione funziona con PHP-FPM (a partire da PHP 5.3) e FastCGI (tutte le versioni di PHP 5.x). Questo tutorial mostra come creare PHP 5.3 e PHP 5.4 come PHP-FPM e una versione FastCGI su un server CentOS 6.3. Queste versioni di PHP possono essere utilizzate insieme al PHP predefinito (installato tramite yum) in ISPConfig.

Non garantisco che questo funzionerà per te!

1 Nota preliminare

Installerò PHP 5.3.22 e PHP 5.4.12, le ultime versioni di PHP 5.3 e 5.4 al momento della stesura di questo articolo. Mostrerò anche come creare alcune estensioni PHP aggiuntive come APC, memcache, memcached e ioncube.

Si noti che PHP-FPM può essere utilizzato sia su server Apache che nginx, mentre FastCGI è disponibile solo per server Apache.

PHP-FPM e FastCGI si escludono a vicenda in PHP 5.3 e 5.4, ecco perché mostro due modi per costruire PHP, uno per PHP-FPM, uno per FastCGI, tuttavia puoi compilare PHP due volte per ottenerli entrambi, una volta con --enable -fpm e una volta con --enable-cgi (assicurati di utilizzare directory di base diverse, come /opt/php-5.3.22 per PHP-FPM e /opt/phpfcgi-5.3.22 per FastCGI).

2 Creazione di PHP 5.3.22 (PHP-FPM)

Scarica ed estrai PHP 5.3.22:

mkdir /opt/php-5.3.22
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de. php.net/get/php-5.3.22.tar.bz2/from/this/mirror -O php-5.3.22.tar.bz2
tar jxf php-5.3.22.tar.bz2

cd php-5.3.22/

Installa i prerequisiti per la creazione di PHP5:

yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel

Configura e compila PHP 5.3.22 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un'occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se utilizzi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive o il processo di compilazione non riuscirà):

./configure \
--prefix=/opt/php-5.3.22 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--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-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native- ttf \
--with-openssl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
-- with-gettext \
--enable-fpm

L'ultima opzione (--enable-fpm) assicura che questa versione di PHP funzioni con PHP-FPM. Se vuoi usare questa versione di PHP-FPM con Apache, usa --with-fpm-user=apache e --with-fpm-group=apache; se vuoi usare questa versione PHP-FPM con nginx, usa --with-fpm-user=nginx e --with-fpm-group=nginx.

make
make install

Copia php.ini e php-fpm.conf nelle posizioni corrette:

cp /usr/local/src/php5-build/php-5.3.22/php.ini-production /opt/php-5.3.22/lib/php.ini
cp /opt/php-5.3.22/etc/php-fpm.conf.default /opt/php-5.3.22/etc/php-fpm.conf

Aprire /opt/php-5.3.22/etc/php-fpm.conf e regolare le seguenti impostazioni:nella riga di ascolto è necessario utilizzare una porta non utilizzata (ad es. 8999; la porta 9000 potrebbe essere utilizzata dal PHP-FPM CentOS predefinito già), e devi aggiungere la riga include=/opt/php-5.3.22/etc/pool.d/*.conf alla fine. Se vuoi usare questa versione PHP-FPM con Apache, usa user =apache e group =apache; se vuoi usare questa versione PHP-FPM con nginx, usa user =nginx e group =nginx.

vi /opt/php-5.3.22/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
user = nginx
group = nginx
[...]
listen = 127.0.0.1:8999
[...]
include=/opt/php-5.3.22/etc/pool.d/*.conf

Crea la directory del pool per PHP-FPM:

mkdir /opt/php-5.3.22/etc/pool.d

Quindi crea uno script di inizializzazione per PHP-FPM:

vi /etc/init.d/php-5.3.22-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-5.3.22-fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-5.3.22-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-5.3.22/sbin/php-fpm
php_fpm_CONF=/opt/php-5.3.22/etc/php-fpm.conf
php_fpm_PID=/opt/php-5.3.22/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"

wait_for_pid () {
        try=0
        while test $try -lt 35 ; do
                case "$1" in
                        'created')
                        if [ -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                        'removed')
                        if [ ! -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                esac
                echo -n .
                try=`expr $try + 1`
                sleep 1
        done
}
case "$1" in
        start)
                echo -n "Starting php-fpm "
                $php_fpm_BIN $php_opts
                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi
                wait_for_pid created $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;
        stop)
                echo -n "Gracefully shutting down php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -QUIT `cat $php_fpm_PID`
                wait_for_pid removed $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed. Use force-exit"
                        exit 1
                else
                        echo " done"
                       echo " done"
                fi
        ;;
        force-quit)
                echo -n "Terminating php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -TERM `cat $php_fpm_PID`
                wait_for_pid removed $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;
        restart)
                $0 stop
                $0 start
        ;;
        reload)
                echo -n "Reload service php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -USR2 `cat $php_fpm_PID`
                echo " done"
        ;;
        *)
                echo "Usage: $0 {start|stop|force-quit|restart|reload}"
                exit 1
        ;;
esac

Rendi eseguibile lo script init e crea i collegamenti di avvio del sistema:

chmod 755 /etc/init.d/php-5.3.22-fpm
chkconfig --levels 235 php-5.3.22-fpm su

Finalmente avvia PHP-FPM:

/etc/init.d/php-5.3.22-fpm start

Finché non ci sono pool in /opt/php-5.3.22/etc/pool.d, riceverai questo avviso che puoi ignorare:

[[email protected] php-5.3.22]# /etc/init.d/php-5.3.22-fpm start
Avvio di php-fpm [05-Mar-2013 17:34:54] ATTENZIONE:Niente corrisponde al modello di inclusione '/opt/php-5.3.22/etc/pool.d/*.conf' da /opt/php-5.3.22/etc/php-fpm.conf alla riga 511.
fatto
[[email protected] php-5.3.22]#

Questo è tutto:se lo desideri, ora puoi installare alcuni moduli aggiuntivi come APC, memcache, memcached e ioncube.

I moduli APC, memcache e memcached possono essere installati tramite PEAR che dobbiamo prima installare e inizializzare:

yum install php-pear
cd /opt/php-5.3.22/etc
pecl -C ./pear.conf update-channels

APC ora può essere installato come segue:

pecl -C ./pear.conf install apc

Accetta tutti i valori predefiniti. Successivamente, apri /opt/php-5.3.22/lib/php.ini...

vi /opt/php-5.3.22/lib/php.ini

... e aggiungi la riga extension=apc.so alla fine del file (puoi anche configurare alcune impostazioni APC aggiuntive):

[...]
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5

L'estensione memcache può essere installata come segue:

pecl -C ./pear.conf install memcache   

Apri /opt/php-5.3.22/lib/php.ini...

vi /opt/php-5.3.22/lib/php.ini

... e aggiungi la riga extension=memcache.so alla fine del file:

[...]
extension=memcache.so

L'estensione memcached può essere installata come segue:

yum install libmemcached-devel
pecl -C ./pear.conf install memcached

Apri /opt/php-5.3.22/lib/php.ini...

vi /opt/php-5.3.22/lib/php.ini

... e aggiungi la riga extension=memcached.so alla fine del file:

[...]
extension=memcached.so

Il caricatore ionCube può essere installato come segue:

cd /tmp

Quindi scarica e decomprimi il pacchetto ionCube Loader corretto per la tua architettura (x86_64 o x86).

Per x86_64:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz

Per x86:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz

Procedi come segue:

cp ioncube/ioncube_loader_lin_5.3.so /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
vi /opt/php-5.3.22/ lib/php.ini

Aggiungi la riga zend_extension =/opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so proprio all'inizio del file (prima della riga [PHP]):

zend_extension = /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
[PHP]
[...]

Ricarica PHP-FPM in seguito:

/etc/init.d/php-5.3.22-fpm reload

In ISPConfig 3.0.5, puoi configurare la nuova versione PHP in Sistema> Versioni PHP aggiuntive. Nella scheda Nome, inserisci semplicemente un nome per la versione PHP (ad es. PHP 5.3.22) - questa versione PHP sarà elencata con questo nome nelle impostazioni del sito Web in ISPConfig:

Vai alla scheda Impostazioni PHP-FPM (la scheda Impostazioni FastCGI può essere lasciata vuota) e compila i campi come segue:

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (CentOS 6.3) - Pagina 2

3 Creazione di PHP 5.3.22 (FastCGI)

Scarica ed estrai PHP 5.3.22:

mkdir /opt/phpfcgi-5.3.22
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de. php.net/get/php-5.3.22.tar.bz2/from/this/mirror -O php-5.3.22.tar.bz2
tar jxf php-5.3.22.tar.bz2

cd php-5.3.22/

Installa i prerequisiti per la creazione di PHP5:

yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel

Configura e compila PHP 5.3.22 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un'occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se utilizzi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive o il processo di compilazione non riuscirà):

./configure \
--prefix=/opt/phpfcgi-5.3.22 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--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-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native- ttf \
--with-openssl \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
-- with-gettext \
--enable-cgi

L'ultima opzione (--enable-cgi) assicura che questa versione di PHP funzioni con FastCGI.

make
make install

Copia php.ini nella posizione corretta:

cp /usr/local/src/php5-build/php-5.3.22/php.ini-production /opt/phpfcgi-5.3.22/lib/php.ini

Questo è tutto:se lo desideri, ora puoi installare alcuni moduli aggiuntivi come APC, memcache, memcached e ioncube.

I moduli APC, memcache e memcached possono essere installati tramite PEAR che dobbiamo prima installare e inizializzare:

yum install php-pear
cd /opt/phpfcgi-5.3.22/etc
pecl -C ./pear.conf update-channels

APC ora può essere installato come segue:

pecl -C ./pear.conf install apc

Accetta tutti i valori predefiniti. Successivamente, apri /opt/phpfcgi-5.3.22/lib/php.ini...

vi /opt/phpfcgi-5.3.22/lib/php.ini

... e aggiungi la riga extension=apc.so alla fine del file (puoi anche configurare alcune impostazioni APC aggiuntive):

[...]
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5

L'estensione memcache può essere installata come segue:

pecl -C ./pear.conf install memcache   

Apri /opt/phpfcgi-5.3.22/lib/php.ini...

vi /opt/phpfcgi-5.3.22/lib/php.ini

... e aggiungi la riga extension=memcache.so alla fine del file:

[...]
extension=memcache.so

L'estensione memcached può essere installata come segue:

yum install libmemcached-devel
pecl -C ./pear.conf install memcached

Apri /opt/phpfcgi-5.3.22/lib/php.ini...

vi /opt/phpfcgi-5.3.22/lib/php.ini

... e aggiungi la riga extension=memcached.so alla fine del file:

[...]
extension=memcached.so

Il caricatore ionCube può essere installato come segue:

cd /tmp

Quindi scarica e decomprimi il pacchetto ionCube Loader corretto per la tua architettura (x86_64 o x86).

Per x86_64:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz

Per x86:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz

Procedi come segue:

cp ioncube/ioncube_loader_lin_5.3.so /opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
vi /opt/phpfcgi-5.3.22/ lib/php.ini

Aggiungi la riga zend_extension =/opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so proprio all'inizio del file (prima della riga [PHP]):

zend_extension = /opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
[PHP]
[...]

In ISPConfig 3.0.5, puoi configurare la nuova versione PHP in Sistema> Versioni PHP aggiuntive. Nella scheda Nome, inserisci semplicemente un nome per la versione PHP (ad es. PHP 5.3.22) - questa versione PHP sarà elencata con questo nome nelle impostazioni del sito Web in ISPConfig:

Vai alla scheda Impostazioni FastCGI (la scheda Impostazioni PHP-FPM può essere lasciata vuota) e compila i campi come segue:

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (CentOS 6.3) - Pagina 3

4 Creazione di PHP 5.4.12 (PHP-FPM)

Scarica ed estrai PHP 5.4.12:

mkdir /opt/php-5.4.12
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de. php.net/get/php-5.4.12.tar.bz2/from/this/mirror -O php-5.4.12.tar.bz2
tar jxf php-5.4.12.tar.bz2

cd php-5.4.12/

Installa i prerequisiti per la creazione di PHP5:

yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel

Configura e compila PHP 5.4.12 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un'occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se utilizzi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive o il processo di compilazione non riuscirà):

./configure \
--prefix=/opt/php-5.4.12 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--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-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native- ttf \
--with-openssl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
-- with-gettext \
--enable-fpm

L'ultima opzione (--enable-fpm) assicura che questa versione di PHP funzioni con PHP-FPM. Se vuoi usare questa versione di PHP-FPM con Apache, usa --with-fpm-user=apache e --with-fpm-group=apache; se vuoi usare questa versione PHP-FPM con nginx, usa --with-fpm-user=nginx e --with-fpm-group=nginx.

make
make install

Copia php.ini e php-fpm.conf nelle posizioni corrette:

cp /usr/local/src/php5-build/php-5.4.12/php.ini-production /opt/php-5.4.12/lib/php.ini
cp /opt/php-5.4.12/etc/php-fpm.conf.default /opt/php-5.4.12/etc/php-fpm.conf

Aprire /opt/php-5.4.12/etc/php-fpm.conf e regolare le seguenti impostazioni:nella riga di ascolto è necessario utilizzare una porta non utilizzata (ad es. 8998; la porta 9000 potrebbe essere utilizzata dal PHP-FPM CentOS predefinito già), e devi aggiungere la riga include=/opt/php-5.4.12/etc/pool.d/*.conf alla fine. Se vuoi usare questa versione PHP-FPM con Apache, usa user =apache e group =apache; se vuoi usare questa versione PHP-FPM con nginx, usa user =nginx e group =nginx.

vi /opt/php-5.4.12/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
user = nginx
group = nginx
[...]
listen = 127.0.0.1:8998
[...]
include=/opt/php-5.4.12/etc/pool.d/*.conf

Crea la directory del pool per PHP-FPM:

mkdir /opt/php-5.4.12/etc/pool.d

Quindi crea uno script di inizializzazione per PHP-FPM:

vi /etc/init.d/php-5.4.12-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-5.4.12-fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-5.4.12-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-5.4.12/sbin/php-fpm
php_fpm_CONF=/opt/php-5.4.12/etc/php-fpm.conf
php_fpm_PID=/opt/php-5.4.12/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"

wait_for_pid () {
        try=0
        while test $try -lt 35 ; do
                case "$1" in
                        'created')
                        if [ -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                        'removed')
                        if [ ! -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                esac
                echo -n .
                try=`expr $try + 1`
                sleep 1
        done
}
case "$1" in
        start)
                echo -n "Starting php-fpm "
                $php_fpm_BIN $php_opts
                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi
                wait_for_pid created $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;
        stop)
                echo -n "Gracefully shutting down php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -QUIT `cat $php_fpm_PID`
                wait_for_pid removed $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed. Use force-exit"
                        exit 1
                else
                        echo " done"
                       echo " done"
                fi
        ;;
        force-quit)
                echo -n "Terminating php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -TERM `cat $php_fpm_PID`
                wait_for_pid removed $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;
        restart)
                $0 stop
                $0 start
        ;;
        reload)
                echo -n "Reload service php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -USR2 `cat $php_fpm_PID`
                echo " done"
        ;;
        *)
                echo "Usage: $0 {start|stop|force-quit|restart|reload}"
                exit 1
        ;;
esac

Rendi eseguibile lo script init e crea i collegamenti di avvio del sistema:

chmod 755 /etc/init.d/php-5.4.12-fpm
chkconfig --levels 235 php-5.4.12-fpm su

Finalmente avvia PHP-FPM:

/etc/init.d/php-5.4.12-fpm start

Finché non ci sono pool in /opt/php-5.4.12/etc/pool.d, riceverai questo avviso che puoi ignorare:

[[email protected] php-5.4.12]# /etc/init.d/php-5.4.12-fpm start
Avvio di php-fpm [05-Mar-2013 19:37:55] ATTENZIONE:Niente corrisponde al modello di inclusione '/opt/php-5.4.12/etc/pool.d/*.conf' da /opt/php-5.4.12/etc/php-fpm.conf alla riga 511.
fatto
[[email protected] php-5.4.12]#

Questo è tutto:se lo desideri, ora puoi installare alcuni moduli aggiuntivi come APC, memcache, memcached e ioncube.

I moduli APC, memcache e memcached possono essere installati tramite PEAR che dobbiamo prima installare e inizializzare:

yum install php-pear
cd /opt/php-5.4.12/etc
pecl -C ./pear.conf update-channels

APC ora può essere installato come segue:

pecl -C ./pear.conf install apc

Accetta tutti i valori predefiniti. Successivamente, apri /opt/php-5.4.12/lib/php.ini...

vi /opt/php-5.4.12/lib/php.ini

... e aggiungi la riga extension=apc.so alla fine del file (puoi anche configurare alcune impostazioni APC aggiuntive):

[...]
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5

L'estensione memcache può essere installata come segue:

pecl -C ./pear.conf install memcache   

Apri /opt/php-5.4.12/lib/php.ini...

vi /opt/php-5.4.12/lib/php.ini

... e aggiungi la riga extension=memcache.so alla fine del file:

[...]
extension=memcache.so

L'estensione memcached può essere installata come segue:

yum install libmemcached-devel
pecl -C ./pear.conf install memcached

Apri /opt/php-5.4.12/lib/php.ini...

vi /opt/php-5.4.12/lib/php.ini

... e aggiungi la riga extension=memcached.so alla fine del file:

[...]
extension=memcached.so

Il caricatore ionCube può essere installato come segue:

cd /tmp

Quindi scarica e decomprimi il pacchetto ionCube Loader corretto per la tua architettura (x86_64 o x86).

Per x86_64:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz

Per x86:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz

Procedi come segue:

cp ioncube/ioncube_loader_lin_5.4.so /opt/php-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/php-5.4.12/ lib/php.ini

Aggiungi la riga zend_extension =/opt/php-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so proprio all'inizio del file (prima della riga [PHP]):

zend_extension = /opt/php-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
[PHP]
[...]

Ricarica PHP-FPM in seguito:

/etc/init.d/php-5.4.12-fpm reload

In ISPConfig 3.0.5, puoi configurare la nuova versione PHP in Sistema> Versioni PHP aggiuntive. Nella scheda Nome, inserisci semplicemente un nome per la versione PHP (ad es. PHP 5.4.12) - questa versione PHP sarà elencata con questo nome nelle impostazioni del sito Web in ISPConfig:

Vai alla scheda Impostazioni PHP-FPM (la scheda Impostazioni FastCGI può essere lasciata vuota) e compila i campi come segue:

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (CentOS 6.3) - Pagina 4

5 Creazione di PHP 5.4.12 (FastCGI)

Scarica ed estrai PHP 5.4.12:

mkdir /opt/phpfcgi-5.4.12
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de. php.net/get/php-5.4.12.tar.bz2/from/this/mirror -O php-5.4.12.tar.bz2
tar jxf php-5.4.12.tar.bz2

cd php-5.4.12/

Installa i prerequisiti per la creazione di PHP5:

yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel

Configura e compila PHP 5.4.12 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un'occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se utilizzi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive o il processo di compilazione non riuscirà):

./configure \
--prefix=/opt/phpfcgi-5.4.12 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--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-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native- ttf \
--with-openssl \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
-- with-gettext \
--enable-cgi

L'ultima opzione (--enable-cgi) assicura che questa versione di PHP funzioni con FastCGI.

make
make install

Copia php.ini nella posizione corretta:

cp /usr/local/src/php5-build/php-5.4.12/php.ini-production /opt/phpfcgi-5.4.12/lib/php.ini

Questo è tutto:se lo desideri, ora puoi installare alcuni moduli aggiuntivi come APC, memcache, memcached e ioncube.

I moduli APC, memcache e memcached possono essere installati tramite PEAR che dobbiamo prima installare e inizializzare:

yum install php-pear
cd /opt/phpfcgi-5.4.12/etc
pecl -C ./pear.conf update-channels

APC ora può essere installato come segue:

pecl -C ./pear.conf install apc

Accetta tutti i valori predefiniti. Afterwards, open /opt/phpfcgi-5.4.12/lib/php.ini...

vi /opt/phpfcgi-5.4.12/lib/php.ini

... and add the line extension=apc.so at the end of the file (you can also configure some additional APC settings):

[...]
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5

The memcache extension can be installed as follows:

pecl -C ./pear.conf install memcache   

Open /opt/phpfcgi-5.4.12/lib/php.ini...

vi /opt/phpfcgi-5.4.12/lib/php.ini

... and add the line extension=memcache.so at the end of the file:

[...]
extension=memcache.so

The memcached extension can be installed as follows:

yum install libmemcached-devel
pecl -C ./pear.conf install memcached

Open /opt/phpfcgi-5.4.12/lib/php.ini...

vi /opt/phpfcgi-5.4.12/lib/php.ini

... and add the line extension=memcached.so at the end of the file:

[...]
extension=memcached.so

The ionCube Loader can be installed as follows:

cd /tmp

Next download and unpack the correct ionCube Loader package for your architecture (x86_64 or x86).

For x86_64:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz

For x86:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz

Proceed as follows:

cp ioncube/ioncube_loader_lin_5.4.so /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/phpfcgi-5.4.12/lib/php.ini

Add the line zend_extension =/opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so right at the beginning of the file (before the [PHP] line):

zend_extension = /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
[PHP]
[...]

In ISPConfig 3.0.5, you can configure the new PHP version under System> Additional PHP Versions. On the Name tab, you just fill in a name for the PHP version (e.g. PHP 5.4.12) - this PHP version will be listed under this name in the website settings in ISPConfig:

Go to the FastCGI Settings tab (the PHP-FPM Settings tab can be left empty) and fill out the fields as follows:

  • PHP:http://www.php.net/
  • ISPConfig:http://www.ispconfig.org/
  • CentOS:http://www.centos.org/

Informazioni sull'autore

Falko Timme è il proprietario di Timme Hosting (ultra-fast nginx web hosting). È il principale manutentore di HowtoForge (dal 2005) e uno degli sviluppatori principali di ISPConfig (dal 2000). Ha anche contribuito al libro di O'Reilly "Linux System Administration".


Panels
  1. Come installare e utilizzare PHP Composer su CentOS 7

  2. Come installare e utilizzare PHP Composer su CentOS 7

  3. Come costruire PHP 5.6 (PHP-FPM e FastCGI) con Zend OPcache e APCu per ISPConfig 3 su Debian 7 (Wheezy)

  4. Come usare EasyApache 3 con WHM/cPanel

  5. Come eseguire più versioni di PHP con Nginx su Ubuntu?

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (Ubuntu 12.10)

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (Ubuntu 12.04 LTS)

Come costruire PHP 5.5 (PHP-FPM e FastCGI) con ionCube Loader, Zend OPcache e APCu per ISPConfig 3 (Debian Wheezy)

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (Debian Wheezy)

Come utilizzare PHP 4.4.9 (FastCGI) con Apache e ISPConfig 3 (Debian Wheezy)

Come configurare PHP-FPM con NGINX