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:
6 link
- 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".