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

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

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

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 Ubuntu 12.04. Queste versioni di PHP possono essere utilizzate insieme al PHP predefinito (installato tramite apt) 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:

apt-get install build-essential 
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

(L'ultimo comando è necessario se crei PHP con --with-imap, perché altrimenti ./configure si fermerà con il seguente errore:

verifica di crypt in -lcrypt... sì
configure:errore:impossibile trovare la libreria imap (libc-client.a). Controlla la tua installazione di c-client.
[email protected]:/usr/local/src/php5-build/php-5.3.22#

)

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=www-data \
--with-fpm-group=www-data \
-- with-libdir=/lib/x86_64-linux-gnu \
--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.

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

Apri /opt/php-5.3.22/etc/php-fpm.conf e regola le seguenti impostazioni:nella riga di ascolto devi utilizzare una porta non utilizzata (ad esempio 8999; la porta 9000 potrebbe essere già utilizzata dal PHP-FPM predefinito di Ubuntu ), e devi aggiungere la riga include=/opt/php-5.3.22/etc/pool.d/*.conf alla fine:

vi /opt/php-5.3.22/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
user = www-data
group = www-data
[...]
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
update-rc.d php-5.3.22-fpm defaults

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]:/usr/local/src/php5-build/php-5.3.22# /etc/init.d/php-5.3.22-fpm start
Avvio di php-fpm [04-marzo -2013 14:58:41] ATTENZIONE:Niente corrisponde al pattern di inclusione '/opt/php-5.3.22/etc/pool.d/*.conf' da /opt/php-5.3.22/etc/php-fpm .conf alla riga 512.
fatto
[email protected]:/usr/local/src/php5-build/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:

apt-get -y 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:

apt-get install libmemcached-dev
ln -s /usr/include/libmemcached /usr/include/libmemcached-1.0
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 (Ubuntu 12.04 LTS) - 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:

apt-get install build-essential 
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

(L'ultimo comando è necessario se crei PHP con --with-imap, perché altrimenti ./configure si fermerà con il seguente errore:

verifica di crypt in -lcrypt... sì
configure:errore:impossibile trovare la libreria imap (libc-client.a). Controlla la tua installazione di c-client.
[email protected]:/usr/local/src/php5-build/php-5.3.22#

)

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=www-data \
--with-fpm-group=www-data \
-- with-libdir=/lib/x86_64-linux-gnu \
--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:

apt-get -y 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:

apt-get install libmemcached-dev
ln -s /usr/include/libmemcached /usr/include/libmemcached-1.0
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 (Ubuntu 12.04 LTS) - 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:

apt-get install build-essential 
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

(L'ultimo comando è necessario se crei PHP con --with-imap, perché altrimenti ./configure si fermerà con il seguente errore:

verifica di crypt in -lcrypt... sì
configure:errore:impossibile trovare la libreria imap (libc-client.a). Controlla la tua installazione di c-client.
[email protected]:/usr/local/src/php5-build/php-5.4.12#

)

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=www-data \
--with-fpm-group=www-data \
-- with-libdir=/lib/x86_64-linux-gnu \
--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.

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

Apri /opt/php-5.4.12/etc/php-fpm.conf e regola le seguenti impostazioni:nella riga di ascolto devi utilizzare una porta non utilizzata (ad esempio 8998; la porta 9000 potrebbe essere già utilizzata dal PHP-FPM predefinito di Ubuntu ), e devi aggiungere la riga include=/opt/php-5.4.12/etc/pool.d/*.conf alla fine:

vi /opt/php-5.4.12/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
user = www-data
group = www-data
[...]
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
update-rc.d php-5.4.12-fpm defaults

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]:/usr/local/src/php5-build/php-5.4.12# /etc/init.d/php-5.4.12-fpm start
Avvio di php-fpm [04-marzo -2013 16:03:35] ATTENZIONE:Niente corrisponde al pattern di inclusione '/opt/php-5.4.12/etc/pool.d/*.conf' da /opt/php-5.4.12/etc/php-fpm .conf alla riga 512.
fatto
[email protected]:/usr/local/src/php5-build/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:

apt-get -y 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:

apt-get install libmemcached-dev
ln -s /usr/include/libmemcached /usr/include/libmemcached-1.0
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 (Ubuntu 12.04 LTS) - 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:

apt-get install build-essential 
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

(L'ultimo comando è necessario se crei PHP con --with-imap, perché altrimenti ./configure si fermerà con il seguente errore:

verifica di crypt in -lcrypt... sì
configure:errore:impossibile trovare la libreria imap (libc-client.a). Controlla la tua installazione di c-client.
[email protected]:/usr/local/src/php5-build/php-5.4.12#

)

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=www-data \
--with-fpm-group=www-data \
-- with-libdir=/lib/x86_64-linux-gnu \
--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:

apt-get -y 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. Successivamente, apri /opt/phpfcgi-5.4.12/lib/php.ini...

vi /opt/phpfcgi-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/phpfcgi-5.4.12/lib/php.ini...

vi /opt/phpfcgi-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:

apt-get install libmemcached-dev
ln -s /usr/include/libmemcached /usr/include/libmemcached-1.0
pecl -C ./pear.conf install memcached

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

vi /opt/phpfcgi-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/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/phpfcgi-5.4.12/ lib/php.ini

Aggiungi la riga zend_extension =/opt/phpfcgi-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/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/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.4.12) - 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:

  • PHP:http://www.php.net/
  • Configurazione ISP:http://www.ispconfig.org/
  • Ubuntu:http://www.ubuntu.com/

Informazioni sull'autore

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


Panels
  1. Come installare più versioni PHP su Ubuntu 18.04 LTS

  2. Come installare LAMP con PHP 7.4 su Ubuntu 20.04

  3. Come installare PHP 7.4 con Nginx su Ubuntu 20.04

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

  5. Come installare PHP-FPM con Apache su Ubuntu 20.04

Come installare Apache/PHP-FPM su Ubuntu 16.04 LTS

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

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 (CentOS 6.3)

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)