Cara Menggunakan Beberapa Versi PHP (PHP-FPM &FastCGI) Dengan ISPConfig 3 (Ubuntu 13.04 )
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 bagaimana membangun PHP 5.3 dan PHP 5.4 sebagai versi PHP-FPM dan FastCGI di server Ubuntu 13.04. Versi PHP ini dapat digunakan bersama dengan PHP default (diinstal melalui apt) di ISPConfig.
Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!
1 Catatan Awal
Saya akan menginstal PHP 5.3.24 dan PHP 5.4.14, 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.24 untuk PHP-FPM dan /opt/phpfcgi-5.3.24 untuk FastCGI).
2 Membangun PHP 5.3.24 (PHP-FPM)
Unduh dan ekstrak 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/
Instal prasyarat untuk membangun 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
(Perintah terakhir diperlukan jika Anda membuat PHP dengan --with-imap, karena jika tidak ./configure akan berhenti dengan kesalahan berikut:
memeriksa crypt di -lcrypt... yes
configure:error:Cannot find imap library (libc-client.a). Silakan periksa instalasi c-client Anda.
[email protected]:/usr/local/src/php5-build/php-5.3.24#
)
Konfigurasi dan build PHP 5.3.24 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.24 \
--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=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
Sakelar terakhir (--enable-fpm) memastikan versi PHP ini akan bekerja dengan PHP-FPM.
buat
buat pasang
Salin php.ini dan php-fpm.conf ke lokasi yang benar:
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
Buka /opt/php-5.3.24/etc/php-fpm.conf dan sesuaikan pengaturan berikut - di baris listen Anda harus menggunakan port yang tidak digunakan (mis. 8999; port 9000 mungkin sudah digunakan oleh PHP-FPM default Ubuntu ), dan Anda harus menambahkan baris include=/opt/php-5.3.24/etc/pool.d/*.conf di akhir:
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 |
Buat direktori kumpulan untuk PHP-FPM:
mkdir /opt/php-5.3.24/etc/pool.d
Selanjutnya buat skrip init untuk 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 |
Jadikan skrip init dapat dieksekusi dan buat tautan startup sistem:
chmod 755 /etc/init.d/php-5.3.24-fpm
update-rc.d php-5.3.24-fpm default
Akhirnya mulai PHP-FPM:
/etc/init.d/php-5.3.24-fpm start
Selama tidak ada kumpulan di /opt/php-5.3.24/etc/pool.d, Anda akan mendapatkan peringatan ini yang dapat Anda abaikan:
[email protected]:/usr/local/src/php5-build/php-5.3.24# /etc/init.d/php-5.3.24-fpm start
Memulai php-fpm [04-Mar -2013 14:58:41] PERINGATAN:Tidak ada yang cocok dengan pola include '/opt/php-5.3.24/etc/pool.d/*.conf' dari /opt/php-5.3.24/etc/php-fpm .conf pada baris 512.
selesai
[email protected]:/usr/local/src/php5-build/php-5.3.24#
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:
apt-get -y install php-pear
cd /opt/php-5.3.24/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.24/lib/php.ini...
vi /opt/php-5.3.24/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.24/lib/php.ini...
vi /opt/php-5.3.24/lib/php.ini
... dan tambahkan baris extension=memcache.so di akhir file:
[...] extension=memcache.so |
Ekstensi memcached dapat diinstal sebagai berikut:
apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached
Buka /opt/php-5.3.24/lib/php.ini...
vi /opt/php-5.3.24/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.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
vi /opt/php-5.3.24/ lib/php.ini
Tambahkan baris zend_extension =/opt/php-5.3.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so tepat di awal file (sebelum baris [PHP]):
zend_extension = /opt/php-5.3.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so [PHP] [...] |
Muat ulang PHP-FPM setelahnya:
/etc/init.d/php-5.3.24-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 (mis. PHP 5.3.24) - 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 (Ubuntu 13.04) - Halaman 2
3 Membangun PHP 5.3.24 (FastCGI)
Unduh dan ekstrak 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/
Instal prasyarat untuk membangun 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
(Perintah terakhir diperlukan jika Anda membuat PHP dengan --with-imap, karena jika tidak ./configure akan berhenti dengan kesalahan berikut:
memeriksa crypt di -lcrypt... yes
configure:error:Cannot find imap library (libc-client.a). Silakan periksa instalasi c-client Anda.
[email protected]:/usr/local/src/php5-build/php-5.3.24#
)
Konfigurasi dan build PHP 5.3.24 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.24 \
--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=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 -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.24/php.ini-production /opt/phpfcgi-5.3.24/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:
apt-get -y install php-pear
cd /opt/phpfcgi-5.3.24/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.24/lib/php.ini...
vi /opt/phpfcgi-5.3.24/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.24/lib/php.ini...
vi /opt/phpfcgi-5.3.24/lib/php.ini
... dan tambahkan baris extension=memcache.so di akhir file:
[...] extension=memcache.so |
Ekstensi memcached dapat diinstal sebagai berikut:
apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached
Buka /opt/phpfcgi-5.3.24/lib/php.ini...
vi /opt/phpfcgi-5.3.24/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.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
vi /opt/phpfcgi-5.3.24/ lib/php.ini
Tambahkan baris zend_extension =/opt/phpfcgi-5.3.24/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so tepat di awal file (sebelum baris [PHP]):
zend_extension = /opt/phpfcgi-5.3.24/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 (mis. PHP 5.3.24) - 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 (Ubuntu 13.04) - Halaman 3
4 Membangun PHP 5.4.14 (PHP-FPM)
Unduh dan ekstrak 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/
Instal prasyarat untuk membangun 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
(Perintah terakhir diperlukan jika Anda membuat PHP dengan --with-imap, karena jika tidak ./configure akan berhenti dengan kesalahan berikut:
memeriksa crypt di -lcrypt... yes
configure:error:Cannot find imap library (libc-client.a). Silakan periksa instalasi c-client Anda.
[email protected]:/usr/local/src/php5-build/php-5.4.14#
)
Konfigurasi dan build PHP 5.4.14 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.14 \
--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=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
Sakelar terakhir (--enable-fpm) memastikan versi PHP ini akan bekerja dengan PHP-FPM.
buat
buat pasang
Salin php.ini dan php-fpm.conf ke lokasi yang benar:
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
Buka /opt/php-5.4.14/etc/php-fpm.conf dan sesuaikan pengaturan berikut - di baris listen Anda harus menggunakan port yang tidak digunakan (mis. 8998; port 9000 mungkin sudah digunakan oleh PHP-FPM default Ubuntu ), dan Anda harus menambahkan baris include=/opt/php-5.4.14/etc/pool.d/*.conf di akhir:
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 |
Buat direktori kumpulan untuk PHP-FPM:
mkdir /opt/php-5.4.14/etc/pool.d
Selanjutnya buat skrip init untuk 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 |
Jadikan skrip init dapat dieksekusi dan buat tautan startup sistem:
chmod 755 /etc/init.d/php-5.4.14-fpm
update-rc.d php-5.4.14-fpm default
Akhirnya mulai PHP-FPM:
/etc/init.d/php-5.4.14-fpm start
Selama tidak ada kumpulan di /opt/php-5.4.14/etc/pool.d, Anda akan mendapatkan peringatan ini yang dapat Anda abaikan:
[email protected]:/usr/local/src/php5-build/php-5.4.14# /etc/init.d/php-5.4.14-fpm start
Memulai php-fpm [04-Mar -2013 16:03:35] PERINGATAN:Tidak ada yang cocok dengan pola include '/opt/php-5.4.14/etc/pool.d/*.conf' dari /opt/php-5.4.14/etc/php-fpm .conf pada baris 512.
selesai
[email protected]:/usr/local/src/php5-build/php-5.4.14#
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:
apt-get -y install php-pear
cd /opt/php-5.4.14/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.14/lib/php.ini...
vi /opt/php-5.4.14/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.14/lib/php.ini...
vi /opt/php-5.4.14/lib/php.ini
... dan tambahkan baris extension=memcache.so di akhir file:
[...] extension=memcache.so |
Ekstensi memcached dapat diinstal sebagai berikut:
apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached
Buka /opt/php-5.4.14/lib/php.ini...
vi /opt/php-5.4.14/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.14/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/php-5.4.14/ lib/php.ini
Tambahkan baris zend_extension =/opt/php-5.4.14/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so tepat di awal file (sebelum baris [PHP]):
zend_extension = /opt/php-5.4.14/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so [PHP] [...] |
Muat ulang PHP-FPM setelahnya:
/etc/init.d/php-5.4.14-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.14) - 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 (Ubuntu 13.04) - Halaman 4
5 Membangun PHP 5.4.14 (FastCGI)
Unduh dan ekstrak 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/
Instal prasyarat untuk membangun 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
(Perintah terakhir diperlukan jika Anda membuat PHP dengan --with-imap, karena jika tidak ./configure akan berhenti dengan kesalahan berikut:
memeriksa crypt di -lcrypt... yes
configure:error:Cannot find imap library (libc-client.a). Silakan periksa instalasi c-client Anda.
[email protected]:/usr/local/src/php5-build/php-5.4.14#
)
Konfigurasi dan build PHP 5.4.14 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.14 \
--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=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 -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.14/php.ini-production /opt/phpfcgi-5.4.14/lib/php.ini
Itu saja - jika Anda mau, Anda sekarang dapat menginstal beberapa modul tambahan seperti APC, memcache, memcached, dan 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:
6 Tautan
- 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".