Tutorial Cara Install WordPress di LEMP Stack Server Debian 10

WordPress adalah salah satu CMS yang sering digunakan oleh pengelola website, dapat digunakan di hampir semua platform. Namun, selain meng-install di cPanel, WordPress juga bisa kamu install melalui LEMP Stack yang berbasis CLI (Command Line Interface). Di artikel ini, kamu akan mempelajari cara install WordPress di LEMP Stack untuk server dengan OS Debian 10.

Apa itu WordPress?

Sedikit penjelasan mengenai WordPress, WordPress adalah CMS (Content Management System) yang digunakan untuk mengelola konten pada website. Tak hanya digunakan untuk membuat artikel, tapi kamu juga bisa menggunakan WordPress sebagai forum, toko online, portfolio, dan lain-lain.

Tidak heran, karena WordPress merupakan CMS yang bersifat open-source sehingga semua orang dapat mengunduh, melakukan modifikasi, menciptakan dan memperjual-belikan tema hingga program sesuai kebutuhan pengelola website. Sederhananya, WordPress adalah CMS yang sangat multifungsi.

Baca Juga: Cara Install WordPress dengan LEMP Stack di CentOS 7

Cara Install WordPress di LEMP Stack Debian 10

Sebelum melakukan instalasi WordPress di LEMP Stack, setidaknya kamu perlu mempersiapkan dua hal berikut:

  1. Memiliki VPS dan domain yang aktif.
  2. Memiliki akses root.

Jika sudah disiapkan, perhatikan beberapa langkah utama yang akan dilakukan saat meng-install WordPress di LEMP Stack Debian 10 di bawah ini:

  • Update Server
  • Install Packages
  • Install Firewall
  • Install Nginx Web Server
  • Install MariaDB Database Server
  • Install PHP 7.2
  • Configure PHP.ini
  • Create Database
  • Setting Virtual Host Nginx
  • Download WordPress
  • Testing

Kemudian simak penjelasan tentang cara instalasinya di bawah ini.

Update Server

Login sebagai root ke server dan perbarui versi server dengan perintah berikut:

$ apt-get update -y
$ reboot

 

Install Packages

Install beberapa packages yang dibutuhkan Debian 10.

$ apt-get install wget nano perl zip unzip gnupg2 -y

 

Install Firewall

Sebelum memulai instalasi WordPress di Debian 10, kamu perlu meng-install firewall agar lebih aman. Gunakan perintah berikut untuk menginstal CSF (ConfigServer Security & Firewall) yang digunakan pada tutorial kali ini:

$ cd /usr/src
$ wget https://download.configserver.com/csf.tgz
$ tar -xzf csf.tgz
$ cd csf/
$ sh install.sh

 

Ada sedikit perbedaan instalasi pada Debian 10, ikuti perintah di bawah ini.

Install packages libwww:

$ apt-get install libwww-perl -y

 

$ perl /usr/local/csf/bin/csftest.pl

 

Lalu akan muncul output di bawah ini.

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server


Nonaktifkan firewalld dengan:

$ systemctl stop firewalld
$ systemctl disable firewalld

 

Ubah “make TESTING=’1’ menjadi 0” di konfigurasi CSF.

$ nano /etc/csf/csf.conf

 

Restart dan tes CSF:

$ systemctl restart {csf,lfd}
$ systemctl enable {csf,lfd}
$ systemctl is-active {csf,lfd}

 

Kemudian restart CSF agar dapat me-reload hasil konfigurasi yang sudah diperbarui.

$ csf -r 

 

Baca Juga: Cara Install SSL Let’s Encrypt pada Nginx di Ubuntu 18.04

Install Nginx Web Server

Mengingat kita menggunakan LEMP Stack untuk meng-install WordPress di Debian 10, maka kamu perlu meng-install web server Nginx agar nantinya bisa melakukan instalasi WordPress.

$ apt-get install nginx -y

 

Jika instalasinya sudah selesai, start dan aktifkan Nginx on-boot.

$ systemctl enable nginx
$ systemctl start nginx

 

Cek apakah Nginx sudah running atau belum.

$ systemctl status nginx

 

  • nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Wed 2021-02-24 09:31:54 UTC; 19h ago
     Docs: man:nginx(8)
  Process: 14998 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process
  Process: 14999 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (cod
 Main PID: 15000 (nginx)
    Tasks: 2 (limit: 1149)
   Memory: 3.2M
   CGroup: /system.slice/nginx.service
           ├─15000 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─15002 nginx: worker process


Gunakan perintah di bawah ini untuk mengecek versi Nginx yang kamu gunakan.

$ nginx -v
nginx version: nginx/1.14.2

 

Install MariaDB Database Server

Kami menggunakan MariaDB sebagai server database untuk menggantikan MySQL, karena MySQL sudah deprecated dan tidak up-to-date lagi. Gunakan perintah berikut:

$ apt-get install mariadb-server -y

 

Jika instalasinya sudah selesai, start dan enable MariaDB on-boot.

$ systemctl enable mariadb
$ systemctl start mariadb

 

Jangan lupa untuk mengecek status MariaDB, apakah sudah running atau belum.

$ systemctl status mariadb

 

  • mariadb.service - MariaDB 10.3.27 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: 
   Active: active (running) since Wed 2021-02-24 08:34:08 UTC; 20h ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 3854 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 1149)
   Memory: 73.6M
   CGroup: /system.slice/mariadb.service
           └─3854 /usr/sbin/mysqld

 

Gunakan command di bawah ini untuk memulai inisialisasi setup MariaDB.

$ mysql_secure_installation


Enter current password for root (enter for none):
OK, successfully used password, moving on...

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
 ... Success!

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!


Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

 

Baca Juga: Cara Install WordPress di cPanel

Install PHP 7.2

Di artikel ini, kami menggunakan PHP 7.2, ikuti instruksi di bawah ini untuk menjalankan instalasinya.

Import dan tambahkan repositori SURY.

$ wget https://packages.sury.org/php/apt.gpg
$ apt-key add apt.gpg
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.list

 

Update repositori indeks:

$ apt-get update -y 

 

Kemudian install PHP dengan:

$ apt-get install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl -y

 

Start dan enable PHP 7.2-FPM on-boot:

$ systemctl enable php7.2-fpm
$ systemctl start php7.2-fpm

 

Cek status php7.2-fpm, apakah sudah aktif atau belum:

$ systemctl status php7.2-fpm
  • php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese
   Active: active (running) since Wed 2021-02-24 09:31:02 UTC; 19h ago
     Docs: man:php-fpm7.2(8)
  Process: 14964 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/p
 Main PID: 14960 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 4, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 1149)
   Memory: 13.4M
   CGroup: /system.slice/php7.2-fpm.service
           ├─14960 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
           ├─14962 php-fpm: pool www
           └─14963 php-fpm: pool www

 

Configure PHP.ini

Buka file php.ini dan PHP-FPM configuration. Ubah config sesuai di bawah ini.

$ nano /etc/php/7.2/fpm/php.ini

;cgi.fix_pathinfo=1 menjadi cgi.fix_pathinfo=0

 

$ nano /etc/php/7.2/cli/php.ini

;cgi.fix_pathinfo=1 menjadi cgi.fix_pathinfo=0

 

Kemudian simpan dan keluar.

Create Database

Agar dapat meng-install WordPress, kamu perlu membuat database dan user database-nya terlebih dulu.

$ mysql -u root -p
$ CREATE DATABASE wp DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
$ GRANT ALL ON wp.* TO 'wpuser'@'localhost' IDENTIFIED BY 'p4ssw0rd123';
$ FLUSH PRIVILEGES;
$ EXIT;

 

Konfigurasi Virtual Host Nginx

Atur virtual host Nginx hingga dapat menghubungkan domain ke server. Caranya, buat file sesuai dengan nama domain kamu, di sini kami menggunakan vps188.dewiweb.net.

$ nano /etc/nginx/sites-enabled/vps188.dewiweb.net

 

Kemudian tambahkan script di bawah ini:

server {
  listen 80;
  listen [::]:80;
  server_name wplemp.dewiweb.net;
  root /var/www/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}


Arahkan hasil config tersebut ke sites-available.

$ ln -s /etc/nginx/sites-enabled/vps188.dewiweb.net /etc/nginx/sites-available/vps188.dewiweb.net

 

Cek konfigurasi yang sudah dilakukan, apakah ada syntax error atau tidak:

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

Reload dan restart Nginx:

$ systemctl reload nginx
$ systemctl restart nginx

 

Download WordPress

Setelah server berhasil terkonfigurasi, langkah selanjutnya adalah unduh file WordPress ke direktori /tmp kemudian pindahkan ke direktori yang sudah diatur sebagai document root di virtual host domain.

$ cd /tmp
$ curl -LO https://wordpress.org/latest.tar.gz
$ tar -xzf latest.tar.gz
$ cp -a /tmp/wordpress/. /var/www/html/
$ cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

 

Grab WordPress Secret Key Generator dengan:

$ curl -s https://api.wordpress.org/secret-key/1.1/salt/

 

Maka akan keluar output seperti di bawah ini.

define('AUTH_KEY',         '2j5F@hR;--,4SN^q+sK0U<`BQ3x(gyx>A})8`sB)t-vXBx}rl/(Y,7aN&|3oUZ|3');
define('SECURE_AUTH_KEY',  'y|;lz4I>7T6-|AckUy2Gpbx.j9mv,6R~`-t,MCBAoWxegJ t9l|*|Ht+:>D736t-');
define('LOGGED_IN_KEY',    '~LmVf`(.Yu)<yR0^+{DJvgDXlUU)Yu;DQ<do@>H&z2dZoCF-fG*|he6C&y+D+q+F');
define('NONCE_KEY',        'HEKq-Cgzo071a;G_,7NJ}+6I/z;Znc$w}1$mIilWvc!A.]N&=df8G^.yxmHw}(M9');
define('AUTH_SALT',        'd7=T|-:T^xM|8l:qSUoN.;h1v_h[Hb@o?#O-mq-}-G=&2^YN$Dk1~Y^p&pb!jt~s');
define('SECURE_AUTH_SALT', '!OhWQ{J,||b0T4JFfEbxp+SmyTmeD(P&.)i6L%T#,V#~b^jQ$hH:&S#&x)sqfJ`[');
define('LOGGED_IN_SALT',   'N`D+t@+4w|<_&-E_>z%,79C.~CAHWcE#e+JX:sJ-S+jOuq7fB3~!{q<:;$6-RA[C');
define('NONCE_SALT',       '8FK[G1%R~eP+q+<[/k/6H?HWYt:ooDsFT7@1CD+%fXVnX7cE2AB!)/k-Zk!Z|BQ3');

 

Simpan secret key tersebut ke Notepad karena nantinya akan disalin dan tempel (copypaste) ke wp-config.php.

$ nano /var/www/html/wp-config.php
/** The name of the database for WordPress */

 

Ubah konfigurasi database-nya:

define( 'DB_NAME', 'wp' );

/** MySQL database username */
define( 'DB_USER', 'wpuser' );


/** MySQL database password */
define( 'DB_PASSWORD', 'p4ssw0rd123' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

 

Kemudian tempelkan hasil salinan kode key di atas pada “key”. Jika sudah, simpan dan keluar.

Testing

Cara install WordPress di LEMP Stack untuk Debian 10 hampir selesai. Langkah terakhir adalah akses website-mu untuk melakukan setup WordPress.

install setup wordpress lamp stack debian 10

Baca Juga: 7 Plugin WordPress yang Wajib Kamu Instal

Simpulan

Demikian artikel cara install WordPress di LEMP Stack untuk Debian 10 ini. Sekarang kamu sudah bisa mulai melakukan konfigurasi pengaturan WordPress sesuai keinginanmu. Kamu juga bisa mengoptimasi performa website-mu dengan menggunakan plugin, tapi gunakan plugin secukupnya, ya! Selain itu, pastikan juga kamu menggunakan server VPS atau cloud hosting terbaik, agar website-mu tak hanya cepat dan aman, tapi juga bisa diandalkan!

Jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb, ya. Semoga artikel ini membantu, Sahabat Dewaweb, salam sukses online!