GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak používat více verzí PHP (PHP-FPM &FastCGI) s ISPConfig 3 (Ubuntu 13.04)

Jak používat více verzí PHP (PHP-FPM a FastCGI) s ISPConfig 3 (Ubuntu 13.04 )

Od ISPConfig 3.0.5 je možné používat více verzí PHP na jednom serveru a vybrat optimální verzi PHP pro web. Tato funkce funguje s PHP-FPM (počínaje PHP 5.3) a FastCGI (všechny verze PHP 5.x). Tento tutoriál ukazuje, jak vytvořit PHP 5.3 a PHP 5.4 jako verzi PHP-FPM a FastCGI na serveru Ubuntu 13.04. Tyto verze PHP lze použít společně s výchozím PHP (instalovaným přes apt) v ISPConfig.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

Nainstaluji PHP 5.3.24 a PHP 5.4.14, nejnovější verze PHP 5.3 a 5.4 v době psaní tohoto článku. Také ukážu, jak vytvořit některá další rozšíření PHP, jako je APC, memcache, memcached a ioncube.

Vezměte prosím na vědomí, že PHP-FPM lze použít na serverech Apache i nginx, zatímco FastCGI je k dispozici pouze pro servery Apache.

PHP-FPM a FastCGI se v PHP 5.3 a 5.4 vzájemně vylučují, proto ukazuji dva způsoby sestavení PHP, jeden pro PHP-FPM, jeden pro FastCGI, nicméně PHP můžete zkompilovat dvakrát, abyste získali oba, jednou s --enable -fpm a jednou s --enable-cgi (ujistěte se, že používáte různé základní adresáře, jako je /opt/php-5.3.24 pro PHP-FPM a /opt/phpfcgi-5.3.24 pro FastCGI).

2 Vytváření PHP 5.3.24 (PHP-FPM)

Stáhněte a rozbalte PHP 5.3.24:

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

cd php-5.3.24/

Nainstalujte předpoklady pro sestavení 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

(Poslední příkaz je nutný, pokud vytváříte PHP s --with-imap, protože jinak se ./configure zastaví s následující chybou:

kontrola kryptování v -lcrypt... yes
configure:error:Nelze najít knihovnu imap (libc-client.a). Zkontrolujte prosím instalaci svého c-klienta.
[email protected]:/usr/local/src/php5-build/php-5.3.24#

)

Nakonfigurujte a sestavte PHP 5.3.24 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure \
--prefix=/opt/php-5.3.24 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- kalendář \
--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

Poslední přepínač (--enable-fpm) zajišťuje, že tato verze PHP bude fungovat s PHP-FPM.

make
make install

Zkopírujte php.ini a php-fpm.conf do správných umístění:

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

Otevřete /opt/php-5.3.24/etc/php-fpm.conf a upravte následující nastavení – v řádku pro poslech musíte použít nepoužívaný port (např. 8999; port 9000 může být používán výchozím PHP-FPM Ubuntu již ) a na konec musíte přidat řádek include=/opt/php-5.3.24/etc/pool.d/*.conf:

vi /opt/php-5.3.24/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.24/etc/pool.d/*.conf

Vytvořte adresář fondu pro PHP-FPM:

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

Dále vytvořte init skript pro PHP-FPM:

vi /etc/init.d/php-5.3.24-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-5.3.24-fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-5.3.24-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-5.3.24/sbin/php-fpm
php_fpm_CONF=/opt/php-5.3.24/etc/php-fpm.conf
php_fpm_PID=/opt/php-5.3.24/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

Vytvořte spustitelný init skript a vytvořte odkazy pro spuštění systému:

chmod 755 /etc/init.d/php-5.3.24-fpm
výchozí nastavení aktualizace-rc.d php-5.3.24-fpm

Nakonec spusťte PHP-FPM:

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

Dokud v /opt/php-5.3.24/etc/pool.d nejsou žádné fondy, zobrazí se toto varování, které můžete ignorovat:

[email protected]:/usr/local/src/php5-build/php-5.3.24# /etc/init.d/php-5.3.24-fpm start
Spouštění php-fpm [04-Mar -2013 14:58:41] VAROVÁNÍ:Nic neodpovídá vzoru zahrnutí '/opt/php-5.3.24/etc/pool.d/*.conf' z /opt/php-5.3.24/etc/php-fpm .conf na řádku 512.
hotovo
[email protected]:/usr/local/src/php5-build/php-5.3.24#

To je vše - pokud chcete, můžete nyní nainstalovat některé další moduly, jako je APC, memcache, memcached a ioncube.

Moduly APC, memcache a memcached lze nainstalovat prostřednictvím PEAR, který musíme nainstalovat a inicializovat jako první:

apt-get -y install php-pear
cd /opt/php-5.3.24/etc
pecl -C ./pear.conf update-channels

APC lze nyní nainstalovat následovně:

pecl -C ./pear.conf install apc

Přijměte všechny výchozí hodnoty. Poté otevřete /opt/php-5.3.24/lib/php.ini...

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

... a přidejte příponu řádku=apc.so na konec souboru (můžete také nakonfigurovat některá další nastavení APC):

[...]
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

Rozšíření memcache lze nainstalovat následovně:

pecl -C ./pear.conf install memcache   

Otevřete /opt/php-5.3.24/lib/php.ini...

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

... a přidejte příponu řádku=memcache.so na konec souboru:

[...]
extension=memcache.so

Rozšíření memcached lze nainstalovat následovně:

apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached

Otevřete /opt/php-5.3.24/lib/php.ini...

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

... a přidejte příponu řádku=memcached.so na konec souboru:

[...]
extension=memcached.so

ionCube Loader lze nainstalovat následovně:

cd /tmp

Dále si stáhněte a rozbalte správný balíček ionCube Loader pro vaši architekturu (x86_64 nebo x86).

Pro 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

Pro x86:

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

Postupujte následovně:

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

Přidejte řádek zend_extension =/opt/php-5.3.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so hned na začátek souboru (před řádek [PHP]):

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

Poté znovu načtěte PHP-FPM:

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

V ISPConfig 3.0.5 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 5.3.24) - tato verze PHP bude uvedena pod tímto názvem v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení PHP-FPM (záložka Nastavení FastCGI může zůstat prázdná) a vyplňte pole následovně:

Jak používat více verzí PHP (PHP-FPM a FastCGI) s ISPConfig 3 (Ubuntu 13.04) - Strana 2

3 Vytváření PHP 5.3.24 (FastCGI)

Stáhněte a rozbalte PHP 5.3.24:

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

cd php-5.3.24/

Nainstalujte předpoklady pro sestavení 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

(Poslední příkaz je nutný, pokud vytváříte PHP s --with-imap, protože jinak se ./configure zastaví s následující chybou:

kontrola kryptování v -lcrypt... yes
configure:error:Nelze najít knihovnu imap (libc-client.a). Zkontrolujte prosím instalaci svého c-klienta.
[email protected]:/usr/local/src/php5-build/php-5.3.24#

)

Nakonfigurujte a sestavte PHP 5.3.24 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure \
--prefix=/opt/phpfcgi-5.3.24 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- kalendář \
--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 \
--povolit -cgi

Poslední přepínač (--enable-cgi) zajišťuje, že tato verze PHP bude fungovat s FastCGI.

make
make install

Zkopírujte php.ini do správného umístění:

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

To je vše - pokud chcete, můžete nyní nainstalovat některé další moduly, jako je APC, memcache, memcached a ioncube.

Moduly APC, memcache a memcached lze nainstalovat prostřednictvím PEAR, který musíme nainstalovat a inicializovat jako první:

apt-get -y install php-pear
cd /opt/phpfcgi-5.3.24/etc
pecl -C ./pear.conf update-channels

APC lze nyní nainstalovat následovně:

pecl -C ./pear.conf install apc

Přijměte všechny výchozí hodnoty. Poté otevřete /opt/phpfcgi-5.3.24/lib/php.ini...

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

... a přidejte příponu řádku=apc.so na konec souboru (můžete také nakonfigurovat některá další nastavení APC):

[...]
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

Rozšíření memcache lze nainstalovat následovně:

pecl -C ./pear.conf install memcache   

Otevřete /opt/phpfcgi-5.3.24/lib/php.ini...

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

... a přidejte příponu řádku=memcache.so na konec souboru:

[...]
extension=memcache.so

Rozšíření memcached lze nainstalovat následovně:

apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached

Otevřete /opt/phpfcgi-5.3.24/lib/php.ini...

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

... a přidejte příponu řádku=memcached.so na konec souboru:

[...]
extension=memcached.so

ionCube Loader lze nainstalovat následovně:

cd /tmp

Dále si stáhněte a rozbalte správný balíček ionCube Loader pro vaši architekturu (x86_64 nebo x86).

Pro 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

Pro x86:

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

Postupujte následovně:

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

Přidejte řádek zend_extension =/opt/phpfcgi-5.3.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so hned na začátek souboru (před řádek [PHP]):

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

V ISPConfig 3.0.5 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 5.3.24) - tato verze PHP bude uvedena pod tímto názvem v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení FastCGI (záložka Nastavení PHP-FPM může zůstat prázdná) a vyplňte pole následovně:

Jak používat více verzí PHP (PHP-FPM a FastCGI) s ISPConfig 3 (Ubuntu 13.04) - Strana 3

4 Vytváření PHP 5.4.14 (PHP-FPM)

Stáhněte a rozbalte PHP 5.4.14:

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

cd php-5.4.14/

Nainstalujte předpoklady pro sestavení 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

(Poslední příkaz je nutný, pokud vytváříte PHP s --with-imap, protože jinak se ./configure zastaví s následující chybou:

kontrola kryptování v -lcrypt... yes
configure:error:Nelze najít knihovnu imap (libc-client.a). Zkontrolujte prosím instalaci svého c-klienta.
[email protected]:/usr/local/src/php5-build/php-5.4.14#

)

Nakonfigurujte a sestavte PHP 5.4.14 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure \
--prefix=/opt/php-5.4.14 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- kalendář \
--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

Poslední přepínač (--enable-fpm) zajišťuje, že tato verze PHP bude fungovat s PHP-FPM.

make
make install

Zkopírujte php.ini a php-fpm.conf do správných umístění:

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

Otevřete /opt/php-5.4.14/etc/php-fpm.conf a upravte následující nastavení – v řádku pro poslech musíte použít nepoužívaný port (např. 8998; port 9000 může být používán výchozím PHP-FPM Ubuntu již ) a na konec musíte přidat řádek include=/opt/php-5.4.14/etc/pool.d/*.conf:

vi /opt/php-5.4.14/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.14/etc/pool.d/*.conf

Vytvořte adresář fondu pro PHP-FPM:

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

Dále vytvořte init skript pro PHP-FPM:

vi /etc/init.d/php-5.4.14-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-5.4.14-fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-5.4.14-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-5.4.14/sbin/php-fpm
php_fpm_CONF=/opt/php-5.4.14/etc/php-fpm.conf
php_fpm_PID=/opt/php-5.4.14/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

Vytvořte spustitelný init skript a vytvořte odkazy pro spuštění systému:

chmod 755 /etc/init.d/php-5.4.14-fpm
výchozí nastavení aktualizace-rc.d php-5.4.14-fpm

Nakonec spusťte PHP-FPM:

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

Dokud v /opt/php-5.4.14/etc/pool.d nejsou žádné fondy, zobrazí se toto varování, které můžete ignorovat:

[email protected]:/usr/local/src/php5-build/php-5.4.14# /etc/init.d/php-5.4.14-fpm start
Spouštění php-fpm [04-Mar -2013 16:03:35] VAROVÁNÍ:Nic neodpovídá vzoru zahrnutí '/opt/php-5.4.14/etc/pool.d/*.conf' z /opt/php-5.4.14/etc/php-fpm .conf na řádku 512.
hotovo
[email protected]:/usr/local/src/php5-build/php-5.4.14#

To je vše - pokud chcete, můžete nyní nainstalovat některé další moduly, jako je APC, memcache, memcached a ioncube.

Moduly APC, memcache a memcached lze nainstalovat prostřednictvím PEAR, který musíme nainstalovat a inicializovat jako první:

apt-get -y install php-pear
cd /opt/php-5.4.14/etc
pecl -C ./pear.conf update-channels

APC lze nyní nainstalovat následovně:

pecl -C ./pear.conf install apc

Přijměte všechny výchozí hodnoty. Poté otevřete /opt/php-5.4.14/lib/php.ini...

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

... a přidejte příponu řádku=apc.so na konec souboru (můžete také nakonfigurovat některá další nastavení APC):

[...]
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

Rozšíření memcache lze nainstalovat následovně:

pecl -C ./pear.conf install memcache   

Otevřete /opt/php-5.4.14/lib/php.ini...

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

... a přidejte příponu řádku=memcache.so na konec souboru:

[...]
extension=memcache.so

Rozšíření memcached lze nainstalovat následovně:

apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached

Otevřete /opt/php-5.4.14/lib/php.ini...

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

... a přidejte příponu řádku=memcached.so na konec souboru:

[...]
extension=memcached.so

ionCube Loader lze nainstalovat následovně:

cd /tmp

Dále si stáhněte a rozbalte správný balíček ionCube Loader pro vaši architekturu (x86_64 nebo x86).

Pro 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

Pro x86:

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

Postupujte následovně:

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

Přidejte řádek zend_extension =/opt/php-5.4.14/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so hned na začátek souboru (před řádek [PHP]):

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

Poté znovu načtěte PHP-FPM:

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

V ISPConfig 3.0.5 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 5.4.14) - tato verze PHP bude uvedena pod tímto názvem v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení PHP-FPM (záložka Nastavení FastCGI může zůstat prázdná) a vyplňte pole následovně:

Jak používat více verzí PHP (PHP-FPM a FastCGI) s ISPConfig 3 (Ubuntu 13.04) - Strana 4

5 Vytváření PHP 5.4.14 (FastCGI)

Stáhněte a rozbalte PHP 5.4.14:

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

cd php-5.4.14/

Nainstalujte předpoklady pro sestavení 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

(Poslední příkaz je nutný, pokud vytváříte PHP s --with-imap, protože jinak se ./configure zastaví s následující chybou:

kontrola kryptování v -lcrypt... yes
configure:error:Nelze najít knihovnu imap (libc-client.a). Zkontrolujte prosím instalaci svého c-klienta.
[email protected]:/usr/local/src/php5-build/php-5.4.14#

)

Nakonfigurujte a sestavte PHP 5.4.14 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure \
--prefix=/opt/phpfcgi-5.4.14 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- kalendář \
--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 \
--povolit -cgi

Poslední přepínač (--enable-cgi) zajišťuje, že tato verze PHP bude fungovat s FastCGI.

make
make install

Zkopírujte php.ini do správného umístění:

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

To je vše - pokud chcete, můžete nyní nainstalovat některé další moduly, jako je APC, memcache, memcached a ioncube.

The APC, memcache, and memcached modules can be installed through PEAR which we must install and initialize first:

apt-get -y install php-pear
cd /opt/phpfcgi-5.4.14/etc
pecl -C ./pear.conf update-channels

APC can now be installed as follows:

pecl -C ./pear.conf install apc

Accept all default values. Afterwards, open /opt/phpfcgi-5.4.14/lib/php.ini...

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

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

apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached

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

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

Add the line zend_extension =/opt/phpfcgi-5.4.14/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.14/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.14) - 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/
  • Ubuntu:http://www.ubuntu.com/

About The Author

Falko Timme is the owner of Timme Hosting (ultra-fast nginx web hosting). He is the lead maintainer of HowtoForge (since 2005) and one of the core developers of ISPConfig (since 2000). He has also contributed to the O'Reilly book "Linux System Administration".


Panels
  1. Jak nainstalovat LAMP s PHP 7.4 na Ubuntu 20.04

  2. Jak nainstalovat PHP 7.4 s Nginx na Ubuntu 20.04

  3. Jak nainstalovat PHP-FPM s Apache na Ubuntu 20.04

  1. Jak nainstalovat PHP 7 (PHP-FPM &FastCGI) pro ISPConfig 3 na Debian 8 (Jessie)

  2. Jak nainstalovat PHP 7 jako PHP-FPM &FastCGI pro ISPConfig 3 na Debian 8 (Jessie)

  3. Jak spustit více verzí PHP s Nginx na Ubuntu?

  1. Jak nainstalovat PHP 5.6 jako další PHP-FPM &FastCGI pro ISPConfig 3.1 na Ubuntu 16.04

  2. Jak nainstalovat PHP 7.1.16 jako PHP-FPM &FastCGI pro ISPConfig 3.1 na Debian 8 (Jessie)

  3. Jak nainstalovat PHP 7.1, 7.2 a 5.6 jako PHP-FPM &FastCGI pro ISPConfig 3 na Debian 9