Instalasi PHP 8 Pada Web Server (Nginx)
Pada dokumen sebelumnya, kita telah belajar tahapan menyiapkan produk aplikasi berbasis web, mulai dari menyiapkan server dengan OS Linux Ubuntu Server 20.04 LTS, web server yang melayani request dari browser client, hingga mengamankannya dengan HTTPS. Selanjutnya, mari memahami lebih dalam, bagaimana menyiapkan interpreter/compiler bahasa pemrograman untuk mengembangkan aplikasi-nya, pada server yang akan kita bangun untuk produk inovasi di Program Digital Amoeba, dalam hal ini, secara khusus yaitu PHP.
PHP adalah bahasa pemrograman yang sangat populer digunakan untuk mengembangkan aplikasi berbasis web. Dibuat oleh programmer berkebangsaan Denmark – Kanada Rasmus Lerdorf pada tahun 1994. Referensi implementasi PHP saat ini dikelola oleh PHP Group. PHP awal nya merupakan singkatan dari Personal Home Page, namun disepakati oleh komunitas menjadi Hypertext Preprocessor.
Sumber: Wikipedia
Prerequisites
Sebelum dimulai, kita wajib mempersiapkan hal-hal berikut:
- Domain teregistrasi yang di pointing ke server yang akan kita garap, petunjuk singkatnya menggunakan Cloudflare disini. Namun sebagai contoh, pada dokumen ini kita akan menggunakan
domain.com
. - Server yang telah terinstalasi OS Ubuntu 20.04 dengan akun selain root dengan akses sudo.
- Nginx yang telah di install pada server. Petunjuk instalasi (untuk OS Ubuntu 20.04) dapat merujuk pada dokumen ini, dan lanjutannya disini.
Langkah 1 – Instalasi PHP
Masuk ke command line interface server melalui ssh dengan user root, menggunakan Terminal, atau Putty untuk pengguna Windows. Perintah login ssh via Terminal:
ssh user@ip_server
Untuk Putty, silahkan mengisi parameter server sesuai form yang disediakan oleh putty, lalu masukan password ketika diminta, atau dapat menggunakan private key (biasanya berupa ppk).
Pertama, kita siapkan dulu repository guna mengambil source code dari interpreter PHP:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade
Selanjutnya install PHP 8, kita akan menggunakan versi PHP FPM, yang cocok dengan Nginx:
sudo apt install php8.0-fpm
Cek apakah instalasi berhasil dengan perintah:
php -v
Contoh output jika berhasil:
PHP 8.0.14 (fpm-fcgi) (built: Dec 20 2021 21:22:57)
Copyright (c) The PHP Group
Zend Engine v4.0.14, Copyright (c) Zend Technologies
with Zend OPcache v8.0.14, Copyright (c), by Zend Technologies
Langkah 2 – Instalasi Extension PHP
Pada praktek-nya, biasanya kita akan membutuhkan extension PHP tertentu, pada kode program kita untuk beberapa kasus. Untuk melakukan instalasinya cukup mudah, jalankan perintah berikut:
sudo apt install php8.0-nama_extension
Kemudian secara otomatis akan melakukan update pada konfigurasi php.ini, jadi kita tidak perlu lagi mengubah php.ini.
Contoh melakukan instalasi extension yang paling sering digunakan:
sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip -y
Langkah 3 – Mengubah Konfigurasi Nginx
Langkah selanjutnya adalah mengkonfigurasi web server (Nginx), agar PHP dapat diproses oleh web server ketika melayani request dari browser client.
Buka kembali server block
yang telah dibuat, berdasarkan pembelajaran di dokumen sebelumnya. Lalu tambahkan block berikut:/etc/nginx/sites-available/domain.com
server {
...
index index.html index.htm index.php;
...
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}
...
}
Contoh lengkapnya (dengan SSL certificate yang di generate oleh certbot):
server {
root /var/www/domain.com;
index index.php index.html index.htm index.php;
server_name domain.com www.domain.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
}
# managed by Certbot
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = www.domain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = domain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name domain.com www.domain.com;
return 404; # managed by Certbot
}
Langkah 4 – Validasi Instalasi
Langkah terakhir adalah, memastikan apakah instalasi dan konfigurasi yang telah kita lakukan sudah benar. Caranya, buat file index.php
pada folder /var/www/domain.com
dengan perintah:
sudo nano /var/www/domain.com/index.php
Lalu isi file tersebut dengan kode PHP berikut ini:
<?php
phpinfo();
?>
Jika tidak ada error, akan menampilkan informasi lengkap tentang PHP yang telah diinstall di server. Seperti pada gambar berikut:
Kesimpulan
Sampai disini kita telah belajar dan melakukan instalasi PHP dan instalasi extension-nya. Serta bagaimana menghubungkannya dengan web server, agar aplikasi yang ditulis dengan PHP, dapat diakses oleh browser client.