GNU/Linux >> Belajar Linux >  >> Panels >> Panels

Cara Menggunakan Beberapa Versi PHP (PHP-FPM &FastCGI) Dengan ISPConfig 3 (CentOS 6.3)

Cara Menggunakan Beberapa Versi PHP (PHP-FPM &FastCGI) Dengan ISPConfig 3 (CentOS 6.3 )

Sejak ISPConfig 3.0.5, dimungkinkan untuk menggunakan beberapa versi PHP pada satu server dan memilih versi PHP yang optimal untuk sebuah situs web. Fitur ini bekerja dengan PHP-FPM (dimulai dengan PHP 5.3) dan FastCGI (semua versi PHP 5.x). Tutorial ini menunjukkan cara membangun PHP 5.3 dan PHP 5.4 sebagai versi PHP-FPM dan FastCGI di server CentOS 6.3. Versi PHP ini dapat digunakan bersama dengan PHP default (diinstal melalui yum) di ISPConfig.

Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!

1 Catatan Awal

Saya akan menginstal PHP 5.3.22 dan PHP 5.4.12, versi PHP 5.3 dan 5.4 terbaru pada saat penulisan ini. Saya juga akan menunjukkan cara membuat beberapa ekstensi PHP tambahan seperti APC, memcache, memcached, dan ioncube.

Harap dicatat bahwa PHP-FPM dapat digunakan pada server Apache dan nginx, sedangkan FastCGI hanya tersedia untuk server Apache.

PHP-FPM dan FastCGI saling eksklusif di PHP 5.3 dan 5.4, itu sebabnya saya menunjukkan dua cara membangun PHP, satu untuk PHP-FPM, satu untuk FastCGI, namun Anda dapat mengkompilasi PHP dua kali untuk mendapatkan keduanya, satu kali dengan --enable -fpm dan satu kali dengan --enable-cgi (pastikan untuk menggunakan direktori dasar yang berbeda, seperti /opt/php-5.3.22 untuk PHP-FPM dan /opt/phpfcgi-5.3.22 untuk FastCGI).

2 Membangun PHP 5.3.22 (PHP-FPM)

Unduh dan ekstrak 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/

Instal prasyarat untuk membangun 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

Konfigurasi dan build PHP 5.3.22 sebagai berikut (Anda dapat menyesuaikan perintah ./configure dengan kebutuhan Anda, lihat

./configure --help

untuk melihat semua opsi yang tersedia; jika Anda menggunakan perintah ./configure yang berbeda, ada kemungkinan perpustakaan tambahan diperlukan, atau proses pembangunan akan gagal):

./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- kalender \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
-- aktifkan-socket \
--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

Sakelar terakhir (--enable-fpm) memastikan versi PHP ini akan bekerja dengan PHP-FPM. Jika Anda ingin menggunakan versi PHP-FPM ini dengan Apache, silakan gunakan --with-fpm-user=apache dan --with-fpm-group=apache; jika Anda ingin menggunakan versi PHP-FPM ini dengan nginx, silakan gunakan --with-fpm-user=nginx dan --with-fpm-group=nginx.

buat
buat pasang

Salin php.ini dan php-fpm.conf ke lokasi yang benar:

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

Buka /opt/php-5.3.22/etc/php-fpm.conf dan sesuaikan pengaturan berikut - di baris listen Anda harus menggunakan port yang tidak digunakan (mis. 8999; port 9000 mungkin digunakan oleh CentOS PHP-FPM default sudah), dan Anda harus menambahkan baris include=/opt/php-5.3.22/etc/pool.d/*.conf di akhir. Jika Anda ingin menggunakan versi PHP-FPM ini dengan Apache, silakan gunakan user =apache dan group =apache; jika Anda ingin menggunakan versi PHP-FPM ini dengan nginx, silakan gunakan user =nginx dan 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

Buat direktori kumpulan untuk PHP-FPM:

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

Selanjutnya buat skrip init untuk 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

Jadikan skrip init dapat dieksekusi dan buat tautan startup sistem:

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

Akhirnya mulai PHP-FPM:

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

Selama tidak ada kumpulan di /opt/php-5.3.22/etc/pool.d, Anda akan mendapatkan peringatan ini yang dapat Anda abaikan:

[[email protected] php-5.3.22]# /etc/init.d/php-5.3.22-fpm start
Memulai php-fpm [05-Mar-2013 17:34:54] PERINGATAN:Tidak ada yang cocok dengan pola include '/opt/php-5.3.22/etc/pool.d/*.conf' dari /opt/php-5.3.22/etc/php-fpm.conf pada baris 511.
selesai
[[email protected] php-5.3.22]#

Itu saja - jika Anda mau, Anda sekarang dapat menginstal beberapa modul tambahan seperti APC, memcache, memcached, dan ioncube.

Modul APC, memcache, dan memcached dapat diinstal melalui PEAR yang harus kita instal dan inisialisasi terlebih dahulu:

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

APC sekarang dapat diinstal sebagai berikut:

pecl -C ./pear.conf install apc

Terima semua nilai default. Setelah itu, buka /opt/php-5.3.22/lib/php.ini...

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

... dan tambahkan baris extension=apc.so di akhir file (Anda juga dapat mengonfigurasi beberapa pengaturan APC tambahan):

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

Ekstensi memcache dapat diinstal sebagai berikut:

pecl -C ./pear.conf install memcache   

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

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

... dan tambahkan baris extension=memcache.so di akhir file:

[...]
extension=memcache.so

Ekstensi memcached dapat diinstal sebagai berikut:

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

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

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

... dan tambahkan baris extension=memcached.so di akhir file:

[...]
extension=memcached.so

ionCube Loader dapat diinstal sebagai berikut:

cd /tmp

Selanjutnya unduh dan ekstrak paket ionCube Loader yang benar untuk arsitektur Anda (x86_64 atau x86).

Untuk 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

Untuk x86:

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

Lanjutkan sebagai berikut:

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

Tambahkan baris zend_extension =/opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so tepat di awal file (sebelum baris [PHP]):

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

Muat ulang PHP-FPM setelahnya:

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

Di ISPConfig 3.0.5, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 5.3.22) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:

Buka tab Pengaturan PHP-FPM (tab Pengaturan FastCGI dapat dikosongkan) dan isi kolom sebagai berikut:

Cara Menggunakan Beberapa Versi PHP (PHP-FPM &FastCGI) Dengan ISPConfig 3 (CentOS 6.3) - Halaman 2

3 Membangun PHP 5.3.22 (FastCGI)

Unduh dan ekstrak 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/

Instal prasyarat untuk membangun 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

Konfigurasi dan build PHP 5.3.22 sebagai berikut (Anda dapat menyesuaikan perintah ./configure dengan kebutuhan Anda, lihat

./configure --help

untuk melihat semua opsi yang tersedia; jika Anda menggunakan perintah ./configure yang berbeda, ada kemungkinan perpustakaan tambahan diperlukan, atau proses pembangunan akan gagal):

./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- kalender \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
-- aktifkan-socket \
--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

Switch terakhir (--enable-cgi) memastikan versi PHP ini akan bekerja dengan FastCGI.

buat
buat pasang

Salin php.ini ke lokasi yang benar:

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

Itu saja - jika Anda mau, Anda sekarang dapat menginstal beberapa modul tambahan seperti APC, memcache, memcached, dan ioncube.

Modul APC, memcache, dan memcached dapat diinstal melalui PEAR yang harus kita instal dan inisialisasi terlebih dahulu:

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

APC sekarang dapat diinstal sebagai berikut:

pecl -C ./pear.conf install apc

Terima semua nilai default. Setelah itu, buka /opt/phpfcgi-5.3.22/lib/php.ini...

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

... dan tambahkan baris extension=apc.so di akhir file (Anda juga dapat mengonfigurasi beberapa pengaturan APC tambahan):

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

Ekstensi memcache dapat diinstal sebagai berikut:

pecl -C ./pear.conf install memcache   

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

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

... dan tambahkan baris extension=memcache.so di akhir file:

[...]
extension=memcache.so

Ekstensi memcached dapat diinstal sebagai berikut:

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

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

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

... dan tambahkan baris extension=memcached.so di akhir file:

[...]
extension=memcached.so

ionCube Loader dapat diinstal sebagai berikut:

cd /tmp

Selanjutnya unduh dan ekstrak paket ionCube Loader yang benar untuk arsitektur Anda (x86_64 atau x86).

Untuk 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

Untuk x86:

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

Lanjutkan sebagai berikut:

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

Tambahkan baris zend_extension =/opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so tepat di awal file (sebelum baris [PHP]):

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

Di ISPConfig 3.0.5, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 5.3.22) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:

Buka tab FastCGI Settings (tab Pengaturan PHP-FPM dapat dikosongkan) dan isi kolom sebagai berikut:

Cara Menggunakan Beberapa Versi PHP (PHP-FPM &FastCGI) Dengan ISPConfig 3 (CentOS 6.3) - Halaman 3

4 Membangun PHP 5.4.12 (PHP-FPM)

Unduh dan ekstrak 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/

Instal prasyarat untuk membangun 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

Konfigurasi dan build PHP 5.4.12 sebagai berikut (Anda dapat menyesuaikan perintah ./configure dengan kebutuhan Anda, lihat

./configure --help

untuk melihat semua opsi yang tersedia; jika Anda menggunakan perintah ./configure yang berbeda, ada kemungkinan perpustakaan tambahan diperlukan, atau proses pembangunan akan gagal):

./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- kalender \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
-- aktifkan-socket \
--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

Sakelar terakhir (--enable-fpm) memastikan versi PHP ini akan bekerja dengan PHP-FPM. Jika Anda ingin menggunakan versi PHP-FPM ini dengan Apache, silakan gunakan --with-fpm-user=apache dan --with-fpm-group=apache; jika Anda ingin menggunakan versi PHP-FPM ini dengan nginx, silakan gunakan --with-fpm-user=nginx dan --with-fpm-group=nginx.

buat
buat pasang

Salin php.ini dan php-fpm.conf ke lokasi yang benar:

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

Buka /opt/php-5.4.12/etc/php-fpm.conf dan sesuaikan pengaturan berikut - di baris listen Anda harus menggunakan port yang tidak digunakan (mis. 8998; port 9000 mungkin digunakan oleh CentOS PHP-FPM default sudah), dan Anda harus menambahkan baris include=/opt/php-5.4.12/etc/pool.d/*.conf di akhir. Jika Anda ingin menggunakan versi PHP-FPM ini dengan Apache, silakan gunakan user =apache dan group =apache; jika Anda ingin menggunakan versi PHP-FPM ini dengan nginx, silakan gunakan user =nginx dan 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

Buat direktori kumpulan untuk PHP-FPM:

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

Selanjutnya buat skrip init untuk 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

Jadikan skrip init dapat dieksekusi dan buat tautan startup sistem:

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

Akhirnya mulai PHP-FPM:

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

Selama tidak ada kumpulan di /opt/php-5.4.12/etc/pool.d, Anda akan mendapatkan peringatan ini yang dapat Anda abaikan:

[[email protected] php-5.4.12]# /etc/init.d/php-5.4.12-fpm start
Memulai php-fpm [05-Mar-2013 19:37:55] PERINGATAN:Tidak ada yang cocok dengan pola include '/opt/php-5.4.12/etc/pool.d/*.conf' dari /opt/php-5.4.12/etc/php-fpm.conf pada baris 511.
selesai
[[email protected] php-5.4.12]#

Itu saja - jika Anda mau, Anda sekarang dapat menginstal beberapa modul tambahan seperti APC, memcache, memcached, dan ioncube.

Modul APC, memcache, dan memcached dapat diinstal melalui PEAR yang harus kita instal dan inisialisasi terlebih dahulu:

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

APC sekarang dapat diinstal sebagai berikut:

pecl -C ./pear.conf install apc

Terima semua nilai default. Setelah itu, buka /opt/php-5.4.12/lib/php.ini...

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

... dan tambahkan baris extension=apc.so di akhir file (Anda juga dapat mengonfigurasi beberapa pengaturan APC tambahan):

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

Ekstensi memcache dapat diinstal sebagai berikut:

pecl -C ./pear.conf install memcache   

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

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

... dan tambahkan baris extension=memcache.so di akhir file:

[...]
extension=memcache.so

Ekstensi memcached dapat diinstal sebagai berikut:

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

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

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

... dan tambahkan baris extension=memcached.so di akhir file:

[...]
extension=memcached.so

ionCube Loader dapat diinstal sebagai berikut:

cd /tmp

Selanjutnya unduh dan ekstrak paket ionCube Loader yang benar untuk arsitektur Anda (x86_64 atau x86).

Untuk 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

Untuk x86:

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

Lanjutkan sebagai berikut:

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

Tambahkan baris zend_extension =/opt/php-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so tepat di awal file (sebelum baris [PHP]):

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

Muat ulang PHP-FPM setelahnya:

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

Di ISPConfig 3.0.5, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 5.4.12) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:

Buka tab Pengaturan PHP-FPM (tab Pengaturan FastCGI dapat dikosongkan) dan isi kolom sebagai berikut:

Cara Menggunakan Beberapa Versi PHP (PHP-FPM &FastCGI) Dengan ISPConfig 3 (CentOS 6.3) - Halaman 4

5 Membangun PHP 5.4.12 (FastCGI)

Unduh dan ekstrak 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/

Instal prasyarat untuk membangun 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

Konfigurasi dan build PHP 5.4.12 sebagai berikut (Anda dapat menyesuaikan perintah ./configure dengan kebutuhan Anda, lihat

./configure --help

untuk melihat semua opsi yang tersedia; jika Anda menggunakan perintah ./configure yang berbeda, ada kemungkinan perpustakaan tambahan diperlukan, atau proses pembangunan akan gagal):

./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- kalender \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
-- aktifkan-socket \
--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

Switch terakhir (--enable-cgi) memastikan versi PHP ini akan bekerja dengan FastCGI.

buat
buat pasang

Salin php.ini ke lokasi yang benar:

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

Itu saja - jika Anda mau, Anda sekarang dapat menginstal beberapa modul tambahan seperti APC, memcache, memcached, dan ioncube.

Modul APC, memcache, dan memcached dapat diinstal melalui PEAR yang harus kita instal dan inisialisasi terlebih dahulu:

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

APC sekarang dapat diinstal sebagai berikut:

pecl -C ./pear.conf install apc

Terima semua nilai default. Setelah itu, buka /opt/phpfcgi-5.4.12/lib/php.ini...

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

... dan tambahkan baris extension=apc.so di akhir file (Anda juga dapat mengonfigurasi beberapa pengaturan APC tambahan):

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

Ekstensi memcache dapat diinstal sebagai berikut:

pecl -C ./pear.conf install memcache   

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

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

... dan tambahkan baris extension=memcache.so di akhir file:

[...]
extension=memcache.so

Ekstensi memcached dapat diinstal sebagai berikut:

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

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

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

... dan tambahkan baris extension=memcached.so di akhir file:

[...]
extension=memcached.so

ionCube Loader dapat diinstal sebagai berikut:

cd /tmp

Selanjutnya unduh dan ekstrak paket ionCube Loader yang benar untuk arsitektur Anda (x86_64 atau x86).

Untuk 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

Untuk x86:

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

Lanjutkan sebagai berikut:

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

Tambahkan baris zend_extension =/opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so tepat di awal file (sebelum baris [PHP]):

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

Di ISPConfig 3.0.5, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 5.4.12) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:

Buka tab FastCGI Settings (tab Pengaturan PHP-FPM dapat dikosongkan) dan isi kolom sebagai berikut:

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

Tentang Penulis

Falko Timme adalah pemilik Timme Hosting (hosting web nginx ultra-cepat). Dia adalah pengelola utama HowtoForge (sejak 2005) dan salah satu pengembang inti ISPConfig (sejak 2000). Dia juga berkontribusi pada buku O'Reilly "Linux System Administration".


Panels
  1. Cara Membangun PHP 5.6 (PHP-FPM &FastCGI) dengan Zend OPcache Dan APCu Untuk ISPConfig 3 Di Debian 7 (Wheezy)

  2. Cara menggunakan EasyApache 3 dengan WHM/cPanel

  3. Bagaimana Cara Menjalankan Beberapa versi PHP dengan Nginx di Ubuntu?

  1. Cara Menginstal dan Menggunakan Komposer PHP di CentOS 7

  2. Cara Menginstal dan Menggunakan Komposer PHP di CentOS 7

  3. Cara menginstal PHP 7 (PHP-FPM &FastCGI) untuk ISPConfig 3 di Debian 8 (Jessie)

  1. Cara menginstal PHP 7 sebagai PHP-FPM &FastCGI untuk ISPConfig 3 di Debian 8 (Jessie)

  2. Cara menginstal PHP 5.6 sebagai tambahan PHP-FPM &FastCGI untuk ISPConfig 3.1 di Ubuntu 16.04

  3. Cara menginstal PHP 7.1.16 sebagai PHP-FPM &FastCGI untuk ISPConfig 3.1 di Debian 8 (Jessie)