Versi beta pertama dari PHP 7 tersedia untuk diunduh sekarang, PHP 7 2 kali lebih cepat dari php 5.6 dan 14 kali lebih cepat dari php 5.0 menurut catatan rilis. Versi PHP yang baru tidak 100% kompatibel dengan PHP 5.x karena beberapa API yang tidak digunakan lagi telah dihapus, jadi sebaiknya Anda mulai menguji kompatibilitas situs web Anda dengan rilis baru ini. Ini dapat dilakukan dengan mudah dan tanpa mempengaruhi semua situs di server Anda dengan menggunakan fitur versi multi PHP di ISPConfig 3. Versi PHP dapat dipilih di pengaturan situs web ISPConfig 3 untuk setiap situs satu per satu. Fitur ini bekerja dengan PHP-FPM dan FastCGI. Tutorial ini menunjukkan cara membuat PHP 7 (Beta) baru sebagai versi PHP-FPM dan FastCGI di server Debian Jessie. Build PHP 7 ini termasuk Zend OPcache.
Catatan Awal
Saya akan menginstal PHP 7 yang saat ini dalam versi Beta pada saat penulisan ini. Harap diperhatikan bahwa PHP-FPM dapat digunakan pada server Apache dan nginx, sedangkan FastCGI hanya tersedia untuk server Apache.
Dengan versi PHP yang lebih lama, PHP-FPM dan FastCGI telah saling eksklusif sehingga biner fpm dan FastCGI telah dibuat secara terpisah. Dengan PHP 7, kedua binari dapat dibangun bersama-sama, jadi kita hanya perlu membuat satu PHP saja sekarang.
Kompilasi PHP 7 dengan PHP-FPM dan Fastcgi
Unduh dan ekstrak PHP 7:
mkdir -p /opt/php-7.0.0
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget https ://downloads.php.net/~ab/php-7.0.0beta1.tar.bz2 -O php-7.0.0.tar.bz2
tar jxf php-7.0.0.tar.bz2
cd php-7.0.0beta1/
Instal prasyarat untuk membangun PHP 7 dan editor nano yang akan saya gunakan untuk mengedit file konfigurasi:
apt-get install build-essential nano
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeng6-dev libjpeng6-dev libjpeng libkrb5-dev libpq-dev libxml2-dev libxslt1-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). Harap periksa penginstalan c-client Anda.
[email protected]:/usr/local/src/php5-build/php-7.0.0#
)
Konfigurasi dan build PHP 7.0.0 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-7.0.0 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml- dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline- optimasi --with-bz2 --with-zlib --enable-socket --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with- mhash --enable-zip --with-pcre-regex --with-mysqli --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 --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
Sakelar terakhir (--enable-fpm) memastikan versi PHP ini akan bekerja dengan PHP-FPM.
make
make install
Salin php.ini dan php-fpm.conf ke lokasi yang benar:
cp /usr/local/src/php5-build/php-7.0.0beta1/php.ini-production /opt/php-7.0.0/lib/php.ini
cp /opt/php-7.0.0/etc/php-fpm.conf.default /opt/php-7.0.0/etc/php-fpm.conf
cp /opt/php-7.0. 0/etc/php-fpm.d/www.conf.default /opt/php-7.0.0/etc/php-fpm.d/www.conf
Buka /opt/php-7.0.0/etc/php-fpm.conf dan sesuaikan pengaturan berikut (hapus # di depan baris pid):
nano /opt/php-7.0.0/etc/php-fpm.conf
[...]pid =run/php-fpm.pid[...]
Kemudian buka /opt/php-7.0.0/etc/php-fpm.conf dan sesuaikan baris pendengar, Anda harus menggunakan port yang tidak digunakan (mis. 8999; port 9000 mungkin sudah digunakan oleh PHP-FPM default Debian):
nano /opt/php-7.0.0/etc/php-fpm.d/www.conf
[...]dengarkan =127.0.0.1:8999[...]
Debian mendukung Systemd serta skrip init tradisional. Pertama saya akan membuat skrip init untuk layanan php-fpm dan kemudian saya akan membuat unit systemd.
Pertama buat skrip init untuk PHP-FPM:
nano /etc/init.d/php-7.0.0-fpm
#! /bin/sh### BEGIN INIT INFO# Menyediakan:php-7.0.0-fpm# Required-Start:$all# Required-Stop:$all# Default-Start:2 3 4 5# Default-Stop:0 1 6# Deskripsi Singkat:memulai php-7.0.0-fpm# Deskripsi:memulai daemon Pengelola Proses FastCGI PHP### END INIT INFOphp_fpm_BIN=/opt/php-7.0.0/sbin/php-fpmphp_fpm_CONF=/opt/php -7.0.0/etc/php-fpm.confphp_fpm_PID=/opt/php-7.0.0/var/run/php-fpm.pidphp_opts="--fpm-config $php_fpm_CONF"wait_for_pid () { coba=0 saat pengujian $coba -lt 35; lakukan case "$1" di 'created') if [ -f "$2" ]; lalu coba='' break fi;; 'dihapus') jika [ ! -f "$2" ]; lalu coba='' break fi;; esac echo -n . try=`expr $try + 1` sleep 1 done}case "$1" di awal) echo -n "Memulai php-fpm " $php_fpm_BIN $php_opts if [ "$?" !=0 ]; lalu echo "gagal" exit 1 fi wait_for_pid dibuat $php_fpm_PID if [ -n "$try" ]; lalu echo "gagal" exit 1 else echo "selesai" fi;; stop) echo -n "Dengan anggun mematikan php-fpm " if [ ! -r $php_fpm_PID ]; lalu echo "peringatan, tidak ada file pid yang ditemukan - php-fpm tidak berjalan?" exit 1 fi kill -QUIT `cat $php_fpm_PID` wait_for_pid dihapus $php_fpm_PID if [ -n "$try" ]; lalu echo " gagal. Gunakan force-exit" exit 1 else echo " selesai" echo " selesai" fi;; force-quit) echo -n "Mengakhiri php-fpm " jika [ ! -r $php_fpm_PID ]; lalu echo "peringatan, tidak ada file pid yang ditemukan - php-fpm tidak berjalan?" exit 1 fi kill -TERM `cat $php_fpm_PID` wait_for_pid dihapus $php_fpm_PID if [ -n "$try" ]; lalu echo "gagal" exit 1 else echo "selesai" fi;; restart) $0 stop $0 start;; reload) echo -n "Muat ulang layanan php-fpm " jika [ ! -r $php_fpm_PID ]; lalu echo "peringatan, tidak ada file pid yang ditemukan - php-fpm tidak berjalan?" exit 1 fi kill -USR2 `cat $php_fpm_PID` echo " done";; *) echo "Penggunaan:$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-7.0.0-fpm
insserv php-7.0.0-fpm
Dan sekarang buat file unit systemd
nano /lib/systemd/system/php-7.0.0-fpm.service
dengan konten berikut:
[Unit]
Description=Pengelola Proses FastCGI PHP 7
After=network.target
[Layanan]
Type=simple
PIDFile =/opt/php-7.0.0/var/run/php-fpm.pid
ExecStart=/opt/php-7.0.0/sbin/php-fpm --nodaemonize --fpm-config /opt/ php-7.0.0/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Instal]
WantedBy=multi-pengguna.targetDan muat ulang systemd:
systemctl daemon-reloadAkhirnya mulai PHP-FPM.
Untuk sistem dengan sistem init tradisional, jalankan:
/etc/init.d/php-7.0.0-fpm startHasilnya seharusnya:
/etc/init.d/php-7.0.0-fpm start
Memulai php-fpm selesaiDi server yang menggunakan systemd, gunakan perintah ini sebagai gantinya:
systemctl start php-7.0.0-fpm.serviceUntuk mengaktifkan Zend OPcache, buka /opt/php-7.0.0/lib/php.ini...
nano /opt/php-7.0.0/lib/php.ini... dan tambahkan baris berikut di akhir:
[...]zend_extension=opcache.soEkstensi memcache dan APCu belum dapat diinstal pada PHP 7, jadi saya akan melewatkan instalasinya untuk saat ini. Nanti saya update tutorialnya kalau ekstensi pecl sudah compatible dengan PHP 7.
Aktifkan PHP 7 di ISPConfig
Di ISPConfig 3, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 7.0.0) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:
Buka tab FastCGI Settings dan isi kolom sebagai berikut:
Jalur ke biner PHP FastCGI: /opt/php-7.0.0/bin/php-cgi
Jalur ke direktori php.ini: /opt/php-7.0.0/lib
Lalu, buka tab Setelan PHP-FPM dan isi kolom sebagai berikut:
Jalur ke skrip init PHP-FPM: /etc/init.d/php-7.0.0-fpm
Jalur ke direktori php.ini: /opt/php-7.0.0/lib
Jalur ke direktori kumpulan PHP-FPM: /opt/php-7.0.0/etc/php-fpm.d
4 Tautan
- PHP:http://www.php.net/
- ISPConfig:http://www.ispconfig.org/
- Debian:http://www.debian.org/