Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 ( Debian Wheezy)
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 costruire PHP 5.3 e PHP 5.4 come PHP-FPM e una versione FastCGI su un server Debian Wheezy. 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 \
-- enable-exif \
--enable-bcmath \
--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 \
--con-imap-ssl \
--con-kerber os \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--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
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 già utilizzata dal PHP-FPM predefinito di Debian ), 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
insserv php-5.3.22-fpm
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
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 (Debian Wheezy) - 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 \
-- enable-exif \
--enable-bcmath \
--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 \
--con-imap-ssl \
--con-ke rberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--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
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 (Debian Wheezy) - 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 \
-- enable-exif \
--enable-bcmath \
--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 \
--con-imap-ssl \
--con-kerber os \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--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
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 già utilizzata dal PHP-FPM predefinito di Debian ), 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
insserv php-5.4.12-fpm
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
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 (Debian Wheezy) - 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 \
-- enable-exif \
--enable-bcmath \
--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 \
--con-imap-ssl \
--con-ke rberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--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
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:
6 link
- PHP:http://www.php.net/
- Configurazione ISP:http://www.ispconfig.org/
- Debian:http://www.debian.org/
Informazioni sull'autore
Falko Timme è il proprietario di Timme Hosting (hosting web nginx ultra veloce). È 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".