[TUTORIAL] Debian 8 - Install PHP7

How to install PHP7 & PHP-FPM on VPS Debian 8 Jessie

Catatan ini adalah lanjutan dari Install Web Server Nginx di Debian Jessie, secara default ketika ketika menginstall Nginx, masih belum bisa menangani script PHP, sedangkan saya membutuhkan PHP untuk membangun situs dengan CMS WordPress di Web Server Nginx.

Kenapa PHP7?

PHP7 yang dirilis pada Desember 2015, dibangun diatas Zend Engine dan dikembangkan oleh komunitas pengembang PHP. PHP7 juga dikenal memilik peningkatan kinerja sampai 2x lipat dari PHP5 serta dapat mengurangi resource memory.

Install PHP7 beserta PHP-FPM (PHP FastCGI Process Manager) di Debian Jessie


1. Add Repository Nginx

Karena PHP7 tidak tersedia di repository Debian 8, maka kita tambahkan repo dari dotdeb.org. Edit file sources.list yang berada di direktori /etc/apt/

root@whydnet:~# cd /etc/apt/
root@whydnet:/etc/apt# vi sources.list
Ketik i untuk mengubah file tersebut, lalu tambahkan 2 baris repo ini.

# dotdeb.repo
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
Jika sudah ditambahkan, silahkan keluar dan save dari editor vi dengan menekan tombol esc dan :wq untuk menyimpannya.

2. Fetch and Install the GnuPG key

Langkah selanjutnya adalah download, install GnuPG key dan update sistem.

root@whydnet:/etc/apt# wget https://www.dotdeb.org/dotdeb.gpg
root@whydnet:/etc/apt# apt-key add dotdeb.gpg
root@whydnet:/etc/apt# apt-get update

3. Install PHP7 & PHP-FPM

Setelah itu, install PHP7 dan PHP-FPM.

root@whydnet:/etc/apt# apt-get install php7.0-fpm php7.0-cli php7.0-curl php7.0-dev php7.0-zip php7.0-xml php7.0-mysql php7.0-opcache -y

4. Configure PHP-FPM on Nginx

Tambahkan listen = /run/php/php7.0-fpm.sock dan listen = 127.0.0.1:9000 baris 36-37.

root@whydnet:/etc/apt# vi /etc/php/7.0/fpm/pool.d/www.conf

The address on which to accept FastCGI requests.
Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on a specific port;
; 'port' - to listen on a TCP socket to all addresses;
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
 
# Tambahkan dibaris 36 dan 37
listen = /run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
Jika sudah ditambahkan, silahkan keluar dan save dari editor vi dengan menekan tombol esc dan :wq untuk menyimpannya.

Lalu tambahkan script PHP kedalam server block/virtual host Nginx, di directory /etc/nginx/ dan server block/virtual host berada di /etc/nginx/sites-available/

root@whydnet:/etc/apt# vi /etc/nginx/sites-available/default

# Tambahkan kedalam bagian server block
# Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	location ~ \.php$ {
# Include snippets/fastcgi-php.conf;
	try_files $uri =404;
# With php7-cgi standalone:
	# fastcgi_pass 127.0.0.1:9000;
# With php7-fpm:
	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
	include fastcgi_params;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param PATH_INFO $fastcgi_path_info;
	fastcgi_hide_header X-Powered-By;
}
Jika sudah, silahkan keluar dan save dari editor vi dengan menekan tombol esc dan :wq untuk menyimpannya.

5. Start & Testing

Langkah selanjutnya adalah menjalankan service PHP7 dan membuat halaman info.php untuk menguji dan memastikan script PHP7 dan PHP-FPM di web server Nginx berjalan. Secara default penempatan file web di Nginx berada di directory /var/www/html

root@whydnet:/etc/apt# /etc/init.d/php7.0-fpm start
root@whydnet:/etc/apt# /etc/init.d/nginx restart

root@whydnet:/etc/apt# cd /var/www/html
root@whydnet:/var/www/html# vi info.php
Jika sudah, silahkan keluar dan save dari editor vi dengan menekan tombol esc dan :wq untuk menyimpannya.

Buka browser, lalu ketikan IP Address web server Nginx dengan /info.php, maka akan muncul gambar seperti dibawah ini.

PHP Info - ITSTAFF.web.id

Itu saja yang saya lakukan untuk install PHP7 & PHP-FPM di Debian 8 Jessie, mudah dan sederhana bukan?