Pengantar
Repositori paket stabil Debian saat ini mungkin tidak selalu berisi perangkat lunak terbaru yang sejalan dengan
harapan kami. Ada alasan yang sangat bagus untuk hal ini, seperti sistem yang stabil sebagai pertukaran untuk menjalankan perangkat lunak yang mutakhir.
Bahasa skrip sisi server PHP bukan pengecualian! Pada
saat penulisan, versi PHP Debian saat ini adalah 5.6.29
sedangkan rilis sumber PHP terbaru adalah 7.1.0
( mengingat tidak ada PHP 6 sama sekali ).
Klaim pengembang PHP saat ini menempatkan PHP 7 di depan PHP 5.6 dalam hal kecepatan, di mana PHP 7 seharusnya dua kali lebih cepat dari pendahulunya:
Berkat Zend Engine 3.0 yang baru, aplikasi Anda melihat kinerja hingga 2x lebih cepat dan konsumsi memori 50% lebih baik daripada PHP 5.6, memungkinkan Anda untuk melayani lebih banyak pengguna secara bersamaan tanpa menambahkan
perangkat keras apa pun. Dirancang dan difaktorkan ulang untuk beban kerja saat ini, PHP 7 adalah pilihan utama bagi pengembang web saat ini.
Referensi:zend.com/en/resources/php-7
Tujuan
Membandingkan kecepatan antara PHP 5.6 dan PHP 7.1.0 terbaru bukanlah tujuan dari artikel ini. Namun, tujuannya adalah agar rilis PHP 7 terbaru diinstal pada sistem Debian 8. Selain itu kami
akan menginstal PHP-FPM (FastCGI Process Manager). Panduan ini akan menawarkan dua kemungkinan penginstalan.
Pertama, panduan ini akan menggunakan compile-php-debian
skrip tersedia di github.com/linuxconfig/compile-php-debian
untuk mengotomatisasi instalasi PHP 7 dan nanti akan muncul, cara menginstal PHP 7 secara manual.
Persyaratan
- Akses istimewa ke Sistem Linux Debian Anda sebagai root atau melalui
sudo
perintah diperlukan
Kesulitan
SEDANG
Konvensi
- # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan
sudo
perintah - $ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa
Petunjuk
Hapus Paket PHP5
Jika Anda sudah menginstal PHP5 di sistem Anda, Anda harus menghapusnya sebelum menginstal PHP 7 yang baru. Untuk melakukannya untuk daftar semua php
paket terkait di sistem Anda:
# dpkg -l | grep -E "^ii.*php" | cut -d " " -f3 libapache2-mod-php5 php5 php5-cli php5-common php5-json php5-readline
Perintah linux berikut akan menghapus semua paket yang terdaftar dengan output perintah di atas:
# REMOVE=$(dpkg -l | grep -E "^ii.*php" | cut -d " " -f3) # dpkg -P $REMOVE
Instalasi Otomatis Berskrip
Instalasi otomatis skrip berikut melakukan semua langkah yang diperlukan untuk mengkompilasi dan menginstal versi PHP 7 yang dipilih pengguna serta juga akan menginstal daemon PHP-FPM. Mulailah dengan mengkloning compile-php-debian
naskah:
$ git clone https://github.com/linuxconfig/compile-php-debian.git
Selanjutnya, navigasikan ke compile-php-debian
direktori:
$ cd compile-php-debian
Sekarang putuskan saja versi PHP 7 yang ingin Anda instal dan masukkan nomor versi yang Anda pilih sebagai argumen untuk install_php.sh
naskah. Misalnya untuk menginstal PHP versi 7.0.8 masukkan:
# ./install_php.sh 7.0.8 FOR PHP VERSION 7.1.0 RUN # ./install_php.sh 7.1.0
Instalasi mungkin memakan waktu. Setelah selesai, jalankan Daemon PHP-FPM dengan menjalankan service
perintah:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Daemon PHP-FPM sekarang mendengarkan di localhost
nomor port 9000
. Anda juga dapat mencoba menghubungkan ke daemon PHP-FPM secara langsung menggunakan cgi-fcgi
perintah ditemukan di dalam libfcgi0ldbl
paket:
# cgi-fcgi -bind -connect 127.0.0.1:9000 X-Powered-By: PHP/7.1.0 Content-type: text/html; charset=UTF-8
Ini menyelesaikan instalasi PHP 7 Anda di sistem Linux Debain 8 Anda.
Instalasi Manual
Penginstalan Prasyarat
Mari kita mulai dengan menginstal semua prasyarat agar sesuai dengan opsi kompilasi PHP yang paling umum:
# apt-get install autoconf bison build-essential git-core libbz2-dev libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg-dev libmcrypt-dev libpng-dev libpspell-dev libreadline-dev libssl-dev libxml2-dev pkg-config
Unduh Kode Sumber PHP
Mungkin cara termudah untuk mendapatkan kode sumber PHP untuk mengkloning repositori PHP di GitHub. Jalankan perintah linux berikut untuk mengkloning direktori sumber PHP:
$ git clone https://github.com/php/php-src.git
Setelah git clone
operasi selesai Anda akan ditinggalkan dengan nama direktori baru php-src
.
Alternatif lain adalah mendapatkan tarball dari versi PHP tertentu yang
ingin Anda instal dengan mengunduhnya langsung dari http://php.net/downloads.php
. Keuntungan dalam hal ini adalah persyaratan ukuran unduhan yang minimal. Namun, Anda tidak akan dapat memilih
versi yang berbeda secara selektif untuk beberapa penerapan.
Kompilasi Kode Sumber PHP
Pada tahap ini kita sudah siap untuk melakukan kompilasi source code PHP. Arahkan ke php-src
yang diunduh sebelumnya direktori:
$ cd php-src
Selanjutnya, putuskan versi PHP yang ingin Anda kompilasi dan instal. Jalankan git
berikut ini perintah untuk mendaftar semua versi PHP 7 yang tersedia:
$ git branch -a | grep PHP-7 remotes/origin/PHP-7.0 remotes/origin/PHP-7.0.0 remotes/origin/PHP-7.0.1 remotes/origin/PHP-7.0.10 remotes/origin/PHP-7.0.11 remotes/origin/PHP-7.0.12 remotes/origin/PHP-7.0.13 remotes/origin/PHP-7.0.14 remotes/origin/PHP-7.0.2 remotes/origin/PHP-7.0.3 remotes/origin/PHP-7.0.4 remotes/origin/PHP-7.0.5 remotes/origin/PHP-7.0.6 remotes/origin/PHP-7.0.7 remotes/origin/PHP-7.0.8 remotes/origin/PHP-7.0.9 remotes/origin/PHP-7.1 remotes/origin/PHP-7.1.0 remotes/origin/PHP-7.1.0RC1 remotes/origin/PHP-7.1.0RC2 remotes/origin/PHP-7.1.0RC3 remotes/origin/PHP-7.1.0beta1 remotes/origin/PHP-7.1.0beta2 remotes/origin/PHP-7.1.0beta3
Gunakan git checkout
perintah untuk beralih ke cabang versi PHP yang Anda inginkan yang ingin Anda gunakan untuk kompilasi. Contoh:
$ git checkout PHP-7.1.0 Branch PHP-7.1.0 set up to track remote branch PHP-7.1.0 from origin. Switched to a new branch 'PHP-7.1.0'
Selanjutnya, buat direktori untuk dijadikan target instalasi. Dalam kasus kami ini akan menjadi /usr/local/php-7.1.0
:
# mkdir /usr/local/php-7.1.0
dan tentukan semua string kompilasi. Perhatikan secara khusus --prefix
dan --with-config-file-scan-dir
string konfigurasi yang mendefinisikan instalasi dan konfigurasi
setelan. Berikut ini adalah daftar opsi kompilasi PHP yang paling umum.
Jangan ragu untuk memperbarui daftar agar sesuai dengan kebutuhan Anda. Tergantung pada pilihan Anda, Anda mungkin diminta untuk menginstal
prasyarat tambahan. Salin dan tempel teks di bawah ini ke terminal Anda diikuti dengan ENTER:
CONFIGURE_STRINGS="--enable-bcmath \ --enable-calendar \ --enable-dba \ --enable-exif \ --enable-filter \ --enable-fpm \ --enable-ftp \ --enable-gd-native-ttf \ --enable-intl \ --enable-mbstring \ --enable-mysqlnd \ --enable-pcntl \ --enable-shmop \ --enable-simplexml \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --enable-xmlreader \ --enable-xmlwriter \ --enable-zip \ --prefix=/usr/local/php-7.1.0 \ --with-bz2 \ --with-config-file-scan-dir=/usr/local/php-7.1.0/etc/conf.d \ --with-curl \ --with-fpm-group=www-data \ --with-fpm-user=www-data \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-jpeg-dir \ --with-mcrypt \ --with-mhash \ --with-mysqli=mysqlnd \ --with-mysql-sock=/var/run/mysqld/mysqld.sock \ --with-openssl \ --without-pear \ --with-pdo-mysql=mysqlnd \ --with-pdo-sqlite \ --with-png-dir \ --with-pspell \ --with-readline \ --with-sqlite3 \ --with-zlib"
Di atas akan mengatur CONFIGURE_STRINGS
variabel shell untuk memuat semua opsi kompilasi PHP Anda. Selanjutnya, kita perlu membangun konfigurasi dan Makefile. Untuk melakukannya, jalankan:
$ ./buildconf --force Forcing buildconf Removing configure caches rebuilding aclocal.m4 rebuilding configure rebuilding main/php_config.h.in
Selanjutnya, lakukan konfigurasi kompilasi:
$ ./configure $CONFIGURE_STRINGS
Jika tidak ada kesalahan yang dihasilkan oleh configure
di atas perintah, maka saatnya untuk melakukan kompilasi dengan menjalankan make
perintah:
$ make .... Build complete. Don't forget to run 'make test'.
Setelah kompilasi jika kode sumber PHP selesai, secara opsional jalankan make test
perintah atau jalankan make install
perintah untuk menginstal semua binari yang telah dikompilasi sebelumnya ke dalam
direktori yang relevan:
# make install Installing shared extensions: /usr/local/php-7.1.0/lib/php/extensions/no-debug-non-zts-20160303/ Installing PHP CLI binary: /usr/local/php-7.1.0/bin/ Installing PHP CLI man page: /usr/local/php-7.1.0/php/man/man1/ Installing PHP FPM binary: /usr/local/php-7.1.0/sbin/ Installing PHP FPM config: /usr/local/php-7.1.0/etc/ Installing PHP FPM man page: /usr/local/php-7.1.0/php/man/man8/ Installing PHP FPM status page: /usr/local/php-7.1.0/php/php/fpm/ Installing phpdbg binary: /usr/local/php-7.1.0/bin/ Installing phpdbg man page: /usr/local/php-7.1.0/php/man/man1/ Installing PHP CGI binary: /usr/local/php-7.1.0/bin/ Installing PHP CGI man page: /usr/local/php-7.1.0/php/man/man1/ Installing build environment: /usr/local/php-7.1.0/lib/php/build/ Installing header files: /usr/local/php-7.1.0/include/php/ Installing helper programs: /usr/local/php-7.1.0/bin/ program: phpize program: php-config Installing man pages: /usr/local/php-7.1.0/php/man/man1/ page: phpize.1 page: php-config.1 /php-src/build/shtool install -c ext/phar/phar.phar /usr/local/php-7.1.0/bin ln -s -f phar.phar /usr/local/php-7.1.0/bin/phar Installing PDO headers: /usr/local/php-7.1.0/include/php/ext/pdo/
Semua selesai. PHP 7.1.0 sekarang diinstal. Untuk mengonfirmasi eksekusi:
$ /usr/local/php-7.1.0/bin/php -v PHP 7.1.0 (cli) (built: Jan 2 2017 09:09:59) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
Penginstalan Pengelola Proses FastCGI
Pada bagian ini kita akan menginstal PHP-FPM untuk digunakan sebagai front untuk instalasi dengan webserver seperti Nginx atau Apache. Pertama, buat tautan simbolis dari yang baru dikompilasi/usr/local/php-$version/sbin/php-fpm
biner untuk membuat instalasi kita rapi:
# ln -s /usr/local/php-7.1.0/sbin/php-fpm /usr/local/php-7.1.0/sbin/php-7.1.0-fpm
Masih di php-src
direktori, atur default php.ini
konfigurasi:
# cp php.ini-production /usr/local/php-7.1.0/lib/php.ini
Aktifkan file konfigurasi daemon PHP-FPM:
# mv /usr/local/php-7.1.0/etc/php-fpm.d/www.conf.default /usr/local/php-7.1.0/etc/php-fpm.d/www.conf
Gunakan editor teks dan buat /usr/local/php-7.1.0/etc/php-fpm.conf
baru config file dengan konten berikut:
[global] pid = /var/run/php7-fpm.pid error_log = /var/log/php7-fpm.log include=/usr/local/php-7.1.0/etc/php-fpm.d/*.conf
Aktifkan modul PHP Ekstra
Masukkan arahan modul apa pun yang ingin Anda aktifkan ke php.ini
. Anda berkas konfigurasi. Misalnya untuk mengaktifkan modul Zend's OpCache PHP jalankan:
# echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini
Konfigurasi Skrip init.d PHP7-FPM
Pertama, masukkan php7-fpm.init
yang telah dimodifikasi berikut ini script ke /etc/init.d/
direktori:
# wget -qO /etc/init.d/php7-fpm https://linuxconfig.org/images/php7-fpm.init
Jika Anda telah menginstal versi PHP yang berbeda selain 7.1.0
gunakan editor teks Anda dan ubah variabel skrip berikut agar sesuai dengan VERSION
PHP yang Anda instal :
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/php-VERSION/sbin NAME=php-VERSION-fpm DAEMON=/usr/local/php-VERSION/sbin/$NAME CONFFILE=/usr/local/php-VERSION/etc/php-fpm.conf
Terakhir, buat /etc/init.d/php7-fpm
dapat dieksekusi dan menjalankan udpate-rc.d
perintah:
# chmod +x /etc/init.d/php7-fpm # update-rc.d php7-fpm defaults
Mulai Daemon PHP-FPM
Sekarang Anda seharusnya dapat memulai Daemon PHP-FPM dengan menjalankan service
perintah:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Daemon PHP-FPM sekarang mendengarkan di localhost
nomor port 9000
.