Banyak CMS PHP yang membutuhkan LEMP (LINUX,NGINX, MYSQL, PHP), untuk contoh kasus ini kita akan menginstall LEMP yang bisa digunakan untuk WordPress, Laravel 6,CodeIgniter, Drupal dan lain sebagainya.
Kebutuhan server untuk LEMP sendiri tidak terlalu besar, disini yang digunakan adalah 1 GB memory dari Linode
Update Debian
Pertama kali update repository dan package di Debian.
apt-get update; apt-get upgrade -y
Install dependency
apt-get install curl gnupg2 ca-certificates lsb-release -y
Install PHP 7.3
Di repository Debian 10, PHP 7.3 merupakan versi default, jadi kita tidak perlu menambah repository baru. Install dengan
apt-get install php7.3 php7.3-cli php7.3-common php7.3-gd php7.3-xmlrpc php7.3-fpm \ php7.3-curl php7.3-intl php-imagick php7.3-mysql php7.3-zip php7.3-xml \ php7.3-mbstring -y
ganti user/group yang digunakan untuk menjalankan PHP-FPM
sed -i "s/www-data/nginx/g" /etc/php/7.3/fpm/pool.d/www.conf
Install MariaDB
apt-get install mariadb-server -y
Buat database baru untuk testing, akses terminal mysql/mariadb dengan menjalankan mysql
create database dbtest; GRANT ALL PRIVILEGES ON dbtest.* TO "jaranguda"@"localhost" IDENTIFIED BY "KcXtYtiYy7TfeEWWHU9c";
Install Nginx
Install nginx stable terbaru dari repository nginx.org. Download konfigurasi repository nginx
wget -qO - http://nginx.org/keys/nginx_signing.key | apt-key add - echo "deb http://nginx.org/packages/debian/ $(lsb_release -sc) nginx" >> /etc/apt/sources.list
Install nginx
apt-get update apt-get install nginx -y
Hapus server block (vhost) yang ada di rm -f /etc/nginx/conf.d/default.conf
rm -f /etc/nginx/conf.d/default.conf
lalu buat baru yang isinya
server { listen 80; server_name debian default_server; root /var/www/; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php(?:$|/) { fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_intercept_errors on; } }
Di debian folder /var/www
tidak langsung dibuat, maka buat manual dengan
mkdir -p /var/www
buat file /var/www/index.php
yang isinya
<?php phpinfo();
satu lagi buat file /var/www/mysql.php
<?php $DB_SERVER = "localhost"; $DB_USER = "jaranguda"; $DB_PASSWORD = "KcXtYtiYy7TfeEWWHU9c"; $DB_NAME = "dbtest"; $mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME"); echo "<pre>"; var_dump($mysqli); die;
sesuaikan dengan credential yang dibuat diatas.
Services LEMP
Jalankan services PHP FPM NGINX dan MARIADB
systemctl restart php7.3-fpm.service systemctl restart mariadb systemctl restart nginx
aktifkan services tersebut waktu boot
systemctl enable php7.3-fpm.service systemctl enable mariadb systemctl enable nginx
Testing
sekarang buka http://IP/index.php
satu lagi buka http://IP/mysql.php
php berhasil mengakses database MySQL yang dibuat sebelumnya.