GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

ISPConfig 3(CentOS 6.3)で複数のPHPバージョン(PHP-FPMおよびFastCGI)を使用する方法

ISPConfig 3(CentOS 6.3で複数のPHPバージョン(PHP-FPMおよびFastCGI)を使用する方法)

ISPConfig 3.0.5以降、1つのサーバーで複数のPHPバージョンを使用して、Webサイトに最適なPHPバージョンを選択することができます。この機能は、PHP-FPM(PHP 5.3以降)およびFastCGI(すべてのPHP 5.xバージョン)で機能します。このチュートリアルでは、CentOS6.3サーバー上でPHP5.3およびPHP5.4をPHP-FPMおよびFastCGIバージョンとしてビルドする方法を示します。これらのPHPバージョンは、ISPConfigでデフォルトのPHP(yumを介してインストール)と一緒に使用できます。

これがあなたのために働くという保証はありません!

1予備メモ

この記事の執筆時点で、最新のPHP5.3および5.4バージョンであるPHP5.3.22およびPHP5.4.12をインストールします。また、APC、memcache、memcached、ioncubeなどの追加のPHP拡張機能を構築する方法も示します。

PHP-FPMはApacheサーバーとnginxサーバーの両方で使用できますが、FastCGIはApacheサーバーでのみ使用できることに注意してください。

PHP-FPMとFastCGIは、PHP 5.3と5.4で相互に排他的です。そのため、PHPを構築する2つの方法を示します。1つはPHP-FPM用、もう1つはFastCGI用ですが、PHPを2回コンパイルして、両方を取得できます。 -fpmおよび--enable-cgiを使用した場合(PHP-FPMの場合は/opt/php-5.3.22、FastCGIの場合は/opt/phpfcgi-5.3.22など、異なるベースディレクトリを使用してください)。

2 PHP 5.3.22(PHP-FPM)の構築

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/

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

PHP 5.3.22を次のように構成およびビルドします(./configureコマンドは必要に応じて調整できます。

を参照してください。
./configure --help

利用可能なすべてのオプションを表示します。別の./configureコマンドを使用すると、追加のライブラリが必要になる可能性があります。そうしないと、ビルドプロセスが失敗します):

./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-カレンダー\
--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

最後のスイッチ(--enable-fpm)は、このPHPバージョンがPHP-FPMで動作することを確認します。このPHP-FPMバージョンをApacheで使用する場合は、-with-fpm-user=apacheおよび--with-fpm-group=apacheを使用してください。このPHP-FPMバージョンをnginxで使用する場合は、-with-fpm-user=nginxおよび--with-fpm-group=nginxを使用してください。

make
make install

php.iniとphp-fpm.confを正しい場所にコピーします:

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

/opt/php-5.3.22/etc/php-fpm.confを開き、次の設定を調整します-リッスンラインで未使用のポートを使用する必要があります(例:8999;ポート9000はデフォルトのCentOSPHP-FPMで使用されている可能性がありますすでに)、最後にinclude =/ opt / php-5.3.22 / etc / pool.d/*。confという行を追加する必要があります。このPHP-FPMバージョンをApacheで使用する場合は、user=apacheおよびgroup=apacheを使用してください。このPHP-FPMバージョンをnginxで使用する場合は、user=nginxおよび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

PHP-FPMのプールディレクトリを作成します:

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

次に、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

initスクリプトを実行可能にし、システム起動リンクを作成します。

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

最後にPHP-FPMを開始します:

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

/opt/php-5.3.22/etc/pool.dにプールがない限り、無視できる次の警告が表示されます。

[[email protected] php-5.3.22]#/etc/init.d/php-5.3.22-fpm start
php-fpmを開始しています[05-Mar-201317:34:54]警告: 511行目の/opt/php-5.3.22/etc/php-fpm.confのインクルードパターン'/opt/php-5.3.22/etc/pool.d/*.conf'に一致するものはありません。
完了
[[email protected]]#

以上です。必要に応じて、APC、memcache、memcached、ioncubeなどの追加モジュールをインストールできます。

APC、memcache、およびmemcachedモジュールは、PEARを介してインストールできます。これらは、最初にインストールして初期化する必要があります。

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

これで、APCを次のようにインストールできます。

pecl -C ./pear.conf install apc

すべてのデフォルト値を受け入れます。その後、/ opt / php-5.3.22 / lib / php.ini ...

を開きます。
vi /opt/php-5.3.22/lib/php.ini

...そしてファイルの最後にextension=apc.soという行を追加します(追加の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

memcache拡張機能は次のようにインストールできます:

pecl -C ./pear.conf install memcache   

/opt/php-5.3.22/lib/php.iniを開きます...

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

...そしてファイルの最後にextension=memcache.soという行を追加します:

[...]
extension=memcache.so

memcached拡張機能は次のようにインストールできます:

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

/opt/php-5.3.22/lib/php.iniを開きます...

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

...そしてファイルの最後にextension=memcached.soという行を追加します:

[...]
extension=memcached.so

ionCubeローダーは次のようにインストールできます:

cd /tmp

次に、アーキテクチャに適したionCube Loaderパッケージ(x86_64またはx86)をダウンロードして解凍します。

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

x86の場合:

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

次のように進めます:

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

ファイルの先頭([PHP]行の前)にzend_extension=/opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.soという行を追加します。

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

後でPHP-FPMをリロードします:

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

ISPConfig 3.0.5では、[システム]>[追加のPHPバージョン]で新しいPHPバージョンを構成できます。 [名前]タブで、PHPバージョンの名前を入力するだけです(例:PHP 5.3.22)-このPHPバージョンは、ISPConfigのWebサイト設定でこの名前の下に一覧表示されます:

[PHP-FPM設定]タブに移動し([FastCGI設定]タブは空のままにすることができます)、次のようにフィールドに入力します。

ISPConfig 3(CentOS 6.3)で複数のPHPバージョン(PHP-FPMおよびFastCGI)を使用する方法-2ページ

3 PHP 5.3.22(FastCGI)の構築

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/

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

PHP 5.3.22を次のように構成およびビルドします(./configureコマンドは必要に応じて調整できます。

を参照してください。
./configure --help

利用可能なすべてのオプションを表示します。別の./configureコマンドを使用すると、追加のライブラリが必要になる可能性があります。そうしないと、ビルドプロセスが失敗します):

./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-カレンダー\
--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

最後のスイッチ(--enable-cgi)は、このPHPバージョンがFastCGIで動作することを確認します。

make
make install

php.iniを正しい場所にコピーします:

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

以上です。必要に応じて、APC、memcache、memcached、ioncubeなどの追加モジュールをインストールできます。

APC、memcache、およびmemcachedモジュールは、PEARを介してインストールできます。これらは、最初にインストールして初期化する必要があります。

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

これで、APCを次のようにインストールできます。

pecl -C ./pear.conf install apc

すべてのデフォルト値を受け入れます。その後、/ opt / phpfcgi-5.3.22 / lib / php.ini ...

を開きます。
vi /opt/phpfcgi-5.3.22/lib/php.ini

...そしてファイルの最後にextension=apc.soという行を追加します(追加の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

memcache拡張機能は次のようにインストールできます:

pecl -C ./pear.conf install memcache   

/opt/phpfcgi-5.3.22/lib/php.iniを開きます...

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

...そしてファイルの最後にextension=memcache.soという行を追加します:

[...]
extension=memcache.so

memcached拡張機能は次のようにインストールできます:

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

/opt/phpfcgi-5.3.22/lib/php.iniを開きます...

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

...そしてファイルの最後にextension=memcached.soという行を追加します:

[...]
extension=memcached.so

ionCubeローダーは次のようにインストールできます:

cd /tmp

次に、アーキテクチャに適したionCube Loaderパッケージ(x86_64またはx86)をダウンロードして解凍します。

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

x86の場合:

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

次のように進めます:

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

zend_extension =/opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.soという行をファイルの先頭([PHP]行の前)に追加します。

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

ISPConfig 3.0.5では、[システム]>[追加のPHPバージョン]で新しいPHPバージョンを構成できます。 [名前]タブで、PHPバージョンの名前を入力するだけです(例:PHP 5.3.22)-このPHPバージョンは、ISPConfigのWebサイト設定でこの名前の下に一覧表示されます:

FastCGI設定タブに移動し(PHP-FPM設定タブは空のままにすることができます)、次のようにフィールドに入力します。

ISPConfig 3(CentOS 6.3)で複数のPHPバージョン(PHP-FPMおよびFastCGI)を使用する方法-3ページ

4 PHP 5.4.12(PHP-FPM)の構築

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/

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

PHP 5.4.12を次のように構成およびビルドします(./configureコマンドは必要に応じて調整できます。

を参照してください。
./configure --help

利用可能なすべてのオプションを表示します。別の./configureコマンドを使用すると、追加のライブラリが必要になる可能性があります。そうしないと、ビルドプロセスが失敗します):

./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-カレンダー\
--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

最後のスイッチ(--enable-fpm)は、このPHPバージョンがPHP-FPMで動作することを確認します。このPHP-FPMバージョンをApacheで使用する場合は、-with-fpm-user=apacheおよび--with-fpm-group=apacheを使用してください。このPHP-FPMバージョンをnginxで使用する場合は、-with-fpm-user=nginxおよび--with-fpm-group=nginxを使用してください。

make
make install

php.iniとphp-fpm.confを正しい場所にコピーします:

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

/opt/php-5.4.12/etc/php-fpm.confを開き、次の設定を調整します-リッスンラインでは、未使用のポートを使用する必要があります(例:8998;ポート9000はデフォルトのCentOSPHP-FPMで使用されている可能性がありますすでに)、最後にinclude =/ opt / php-5.4.12 / etc / pool.d/*。confという行を追加する必要があります。このPHP-FPMバージョンをApacheで使用する場合は、user=apacheおよびgroup=apacheを使用してください。このPHP-FPMバージョンをnginxで使用する場合は、user=nginxおよび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

PHP-FPMのプールディレクトリを作成します:

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

次に、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

initスクリプトを実行可能にし、システム起動リンクを作成します。

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

最後にPHP-FPMを開始します:

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

/opt/php-5.4.12/etc/pool.dにプールがない限り、無視できる次の警告が表示されます。

[[email protected] php-5.4.12]#/etc/init.d/php-5.4.12-fpm start
php-fpmを開始しています[05-Mar-201319:37:55]警告: 511行目の/opt/php-5.4.12/etc/php-fpm.confのインクルードパターン'/opt/php-5.4.12/etc/pool.d/*.conf'に一致するものはありません。
完了
[[email protected]]#

以上です。必要に応じて、APC、memcache、memcached、ioncubeなどの追加モジュールをインストールできます。

APC、memcache、およびmemcachedモジュールは、PEARを介してインストールできます。これらは、最初にインストールして初期化する必要があります。

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

これで、APCを次のようにインストールできます。

pecl -C ./pear.conf install apc

すべてのデフォルト値を受け入れます。その後、/ opt / php-5.4.12 / lib / php.ini ...

を開きます。
vi /opt/php-5.4.12/lib/php.ini

...そしてファイルの最後にextension=apc.soという行を追加します(追加の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

memcache拡張機能は次のようにインストールできます:

pecl -C ./pear.conf install memcache   

/opt/php-5.4.12/lib/php.iniを開きます...

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

...そしてファイルの最後にextension=memcache.soという行を追加します:

[...]
extension=memcache.so

memcached拡張機能は次のようにインストールできます:

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

/opt/php-5.4.12/lib/php.iniを開きます...

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

...そしてファイルの最後にextension=memcached.soという行を追加します:

[...]
extension=memcached.so

ionCubeローダーは次のようにインストールできます:

cd /tmp

次に、アーキテクチャに適したionCube Loaderパッケージ(x86_64またはx86)をダウンロードして解凍します。

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

x86の場合:

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

次のように進めます:

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

zend_extension =/opt/php-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.soという行をファイルの先頭([PHP]行の前)に追加します。

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

後でPHP-FPMをリロードします:

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

ISPConfig 3.0.5では、[システム]>[追加のPHPバージョン]で新しいPHPバージョンを構成できます。 [名前]タブで、PHPバージョンの名前を入力するだけです(例:PHP 5.4.12)-このPHPバージョンは、ISPConfigのWebサイト設定でこの名前の下に一覧表示されます:

[PHP-FPM設定]タブに移動し([FastCGI設定]タブは空のままにすることができます)、次のようにフィールドに入力します。

ISPConfig 3(CentOS 6.3)で複数のPHPバージョン(PHP-FPMおよびFastCGI)を使用する方法-4ページ

5 PHP 5.4.12(FastCGI)の構築

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/

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

PHP 5.4.12を次のように構成およびビルドします(./configureコマンドは必要に応じて調整できます。

を参照してください。
./configure --help

利用可能なすべてのオプションを表示します。別の./configureコマンドを使用すると、追加のライブラリが必要になる可能性があります。そうしないと、ビルドプロセスが失敗します):

./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-カレンダー\
--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

最後のスイッチ(--enable-cgi)は、このPHPバージョンがFastCGIで動作することを確認します。

make
make install

php.iniを正しい場所にコピーします:

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

以上です。必要に応じて、APC、memcache、memcached、ioncubeなどの追加モジュールをインストールできます。

APC、memcache、およびmemcachedモジュールは、PEARを介してインストールできます。これらは、最初にインストールして初期化する必要があります。

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

これで、APCを次のようにインストールできます。

pecl -C ./pear.conf install apc

すべてのデフォルト値を受け入れます。 Afterwards, open /opt/phpfcgi-5.4.12/lib/php.ini...

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

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

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

The memcache extension can be installed as follows:

pecl -C ./pear.conf install memcache 

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

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

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

[...]
extension=memcache.so

The memcached extension can be installed as follows:

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

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

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

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

[...]
extension=memcached.so

The ionCube Loader can be installed as follows:

cd /tmp

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

For x86_64:

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

For x86:

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

Proceed as follows:

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

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

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

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

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

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

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. Debian7(Wheezy)でISPConfig3用のZendOPcacheとAPCuを使用してPHP5.6(PHP-FPM&FastCGI)を構築する方法

  2. EasyApache3をWHM/cPanelで使用する方法

  3. UbuntuでNginxを使用して複数のPHPバージョンを実行する方法は?

  1. CentOS7にPHPComposerをインストールして使用する方法

  2. CentOS7にPHPComposerをインストールして使用する方法

  3. Debian 8(Jessie)にISPConfig3用のPHP7(PHP-FPM&FastCGI)をインストールする方法

  1. PHP7をPHPとしてインストールする方法-Debian8上のISPConfig3用のFPMおよびFastCGI(Jessie)

  2. 追加のPHPとしてPHP5.6をインストールする方法-Ubuntu16.04上のISPConfig3.1用のFPMおよびFastCGI

  3. PHP7.1.16をPHPとしてインストールする方法-Debian8(Jessie)上のISPConfig3.1用のFPMおよびFastCGI