Cara Install WordPress di Debian 10 Menggunakan Nginx MariadB PHP7.4-FPM

WordPress adalah salah satu CMS (Content Management System) yang paling populer. Ada banyak pilihan CMS untuk membangun sebuah web berbasis PHP, namun sebelum mencoba CMS yang lain pemilihan wordpress adalah sangat tepat karena memiliki banyak keunggulan dukungan ribuan tema dan plugin yang siap menjandikan website kita lebih powerfull.

Berikut ini saya sajikan urutan langkah-langkah bagaimana Cara Install WordPress di Debian 10 Menggunakan Nginx MariadB PHP7.4-FPM. Panduan ini setidaknya sebagai bahan referensi bagi kita yang selama ini mungkin hanya memakai wordpress melalui paket aplikasi yang sudah disediakan oleh hosting berbayar. Boleh jadi dengan pertimbangan tertentu pula kita ingin memanfaatkan komputer server/vps yang dimiliki untuk menjalankan wordpress sebagai aplikasi pembuat konten yang diinginkan.

1. Install Debian 10

Pada tutorial ini Install Debian 10 sengaja dilewati karena kalau dijelaskan dari awal tentunya kan panjang dan lama. Anda bisa mencari tutorial cara Install Debian Server 10 di Mbah Gugel jumlahnya sangat banyak. Rekomendasi saya silahkan cari tutorial di howtoforge.com dengan keyword howto install Debian 10 minimal server. Namun jika Anda ingin praktis dan melewati langkah ini tapi tetap melanjutkan ke langkah berikutnya saya sudah menyediakan VHD Debian 10 minimal server. Anda tinggal memasangnya pada virtual box dan menjalankannya. VHD ini hanya berisi kelengkapan dasar bawaan ubuntu server seperti nano dan openssh yang nantinya sangat diperlukan untuk kebutuhan instalasi komponen lainnya. Untuk mendapatkan VHD Debian kosongan ini silahkan download melalui link berikut ini :VHD Debian 10 (Buster) Minimal Server

VHD Debian 10 Minimal server ini sudah dilakukan pengubahan dari mode IP DHCP ke IP Statis 192.168.0.200. Openssh juga sudah terpasang agar nantinya server ini bisa diremote menggunakan Putty, winscp atau aplikasi remote server lainnya. Akses ssh juga sudah saya aktifkan Root Login Akses agar bisa akses melalui SSH. Sebelum melangkah lebih jauh dalam menjalankan perintah-perintah instalasi komponen server, perlu diketahui bahwa pada tutorial ini, saya menggunakan hak akses sebagai root.

Sebelum melakukan instalasi paket-paket yang dibutuhkan, ketikkan perintah berikut ini untuk update Debian di console linux :

apt-get update
apt-get upgrade

2. Install Web Server Nginx

Masuk ke console linux dengan mengetikkan perintah :

apt-get install nginx

Setelah proses install webserver selesai, untuk memastikan bahwa apache sudah terinstall dengan baik, buka browser dengan mengetikkan IP server pada URL address, maka akan muncul halaman default Nginx seperti ini :

 

setelah Nginx terpasang, berikut ini perintah yang dapat dijalankan untuk mematikan, menghidupkan dan mengaktifkan Nginx saat server mulai dijalankan :

systemctl stop nginx.service
systemctl start nginx.service
systemctl enable nginx.service

3. Install Database MariadB

WordPress juga memerlukan database server. MariadB merupakan pilihan yang sangat tepat untuk dipakai pada database server. Untuk Install database MariadB jalankan perintah berikut ini :

apt-get install mariadb-server mariadb-client

setelah mariadb terpasang, berikut ini perintah yang dapat dilankan untuk mematikan, menghidupkan dan mengaktifkan MariadB saat server mulai dijalankan :

systemctl stop mysql.service
systemctl start mysql.service
systemctl enable mariadb.service

Selanjutnya silahkan jalankan perintah berikut ini untuk mengamankan MariadB server :

mysql_secure_installation

akan muncul baris pertanyaan untuk dikonfirmasi y (yes) atau n (no), berikut pertanyaan dan panduan menjawabnya :

  • Enter current password for root (enter for none): Tekan Enter Saja
  • Set root password? [Y/n]: Y
  • New password: Masukkan Password
  • Re-enter new password: Ulangi Password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

4. Install PHP 7.4-FPM dan Module Yang Dibutuhkan

Repository bawaan Debian tidak menyediakan PHP7.4, maka kita membutuhkan repository pihak ketiga untuk mendapatkannya.

Jalankan perintah berikut ini untuk menambahkan repositori pihak ketiga

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo deb https://packages.sury.org/php/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/php7.4.list
apt-get update
apt-get upgrade
apt-get install php7.4-fpm

dan Install modul-modul yang dibutuhkan oleh WordPress :

apt-get install php7.4-curl php7.4-gd php7.4-intl php7.4-mbstring php7.4-soap php7.4-xml php7.4-xmlrpc php7.4-zip php7.4-mysql
Setelah php7.4 dan modul-modul pendukungnya terinstall selanjutnya reboot server dan selanjutnya silahkan edit konfigurasi php.ini agar kinerja server lebih powefull. Untuk melakukannya melalui perintah :
nano /etc/php/7.4/fpm/php.ini
Edit nilai/value-nya sesuaikan dengan kemampuan server
file_uploads = On
allow_url_fopen = On
memory_limit = 128M
upload_max_filesize = 8M
max_execution_time = 60
post_max_size = 8M
cgi.fix_pathinfo = 0
Selanjutnya simpan dan keluar dari editor.

5. Membuat Database WordPress

Berikut ini adalah langkah-langkah Membuat database WordPress, bila ada pertanyaan tentang password masukkan password yang telah dibuat saat Instalasi MariadB pada langkah 3.

mariadb -u root -p

Berikutnya buat nama database, buat misalnya dengan nama wordpress, dan jalankan dengan perintah :

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Buat Nama User database misalnya wordpressuser dan gunakan password baru user :

CREATE USER ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘new_password_here’;

Berikutnya ketikkan perintah berikut ini :

GRANT ALL ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘user_password_here’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

6. Install WordPress

Langkah berikutnya adalah melakukan pemasangan WordPress di server. Saat tulisan ini dibuat, WordPress terbaru memiliki versi 5.3.2. Jalankan perintah berikut ini untuk mendownload WordPress release terbaru.

cd /tmp
wget https://wordpress.org/latest.tar.gz

Jalankan perintah berikut untuk mengekstrak file download wordpress, dan memindahkannya ke folder wordpress  ke /var/www/html/wordpress

tar -zxvf latest.tar.gz
mv wordpress /var/www/html/wordpress

Berikutnya adalah membuat folder moodledata sebagai tempat database moodle

cd

berikutnya adalah change modify the directory permission folder wordpress

chown -R www-data /var/www/html/wordpress

Lakukan instalasi curl pada server, dengan menjalankan perintah :

apt-get install curl

Berikutnya ketik perintah berikut ini untuk mendapatkan kode API dari wordpress untuk digunakan sebagai kelengkapan file konfigurasi wordpress

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

Sehingga mendapatkan output seperti ini.

define(‘AUTH_KEY’, ‘YVeHd u}_=T^)a]/@7RC_6>gC/+6;^bpv@nq{TY0E_P g7+LaXT0 MGY&*B)/i6]v’);
define(‘SECURE_AUTH_KEY’, ‘]6v.q9E*x@S+Az_9|-[hlpt,rx+lz@oa+%l.EI=:m6Ia~POdAq|E WSIi@^$93j(#’);
define(‘LOGGED_IN_KEY’, ‘1w4.q?72XOh[-X^sa @|N]p!:I-]a?<K9AO7VQ-kYjYzRLoY;Tzn $BRtFlo+4>~n’);
define(‘NONCE_KEY’, ‘cUB$u1H9fu2T#YQ]M)-.*Y4UMK2Tl1zM/-3dI%IT%Mnu!7Cw/XJJ #4[jR:WvtE3_’);
define(‘AUTH_SALT’, ‘3f.6E&]}m$B/<2$<7}r1tB YFAO-LcWsD–ZCFB!(mq7Quk%SoWF FSDFK%$)muW>’);
define(‘SECURE_AUTH_SALT’, ‘AR(:#tD|x.J}hK8rY^H:Go<qx8owyv1YGj=U6SMm,^JJKY}Actd- 7ynI(F%E=#-h’);
define(‘LOGGED_IN_SALT’, ‘x:,jXt*vpXHu)W~/oYF4Nxl@7Tg(3w-sj(E+;.rv-DI-dSB.O-!L Dyz-s*->45pR’);
define(‘NONCE_SALT’, ‘)+];+~jza]il/D;mc>g(eUe+A0.lV2i4gQsjM281.J%1Cl 3d<Y2 +ZnL#nfkda0#’);
kode API ini sifatnya unik dan beda server beda pula kode API wordpress yang didapatkan. Jadi pastikan kode di atas jangan dipakai untuk server Anda. Selanjutnya buat file konfigurasi wordpress dengan mengacu pada script wp-config-sample.php. Buat file wp-config.php dengan perintah :
cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
Edit file wp-config dengan perintah :
nano /var/www/html/wordpress/wp-config.php
Setelah terbuka silahkan sesuaikan pengaturan wordpress

<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don’t have to use the web site, you can
* copy this file to “wp-config.php” and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/

// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define( ‘DB_NAME’, ‘database_name_here’ );

/** MySQL database username */
define( ‘DB_USER’, ‘username_here’ );

/** MySQL database password */
define( ‘DB_PASSWORD’, ‘password_here’ );

/** MySQL hostname */
define( ‘DB_HOST’, ‘localhost’ );

/** Database Charset to use in creating database tables. */
define( ‘DB_CHARSET’, ‘utf8’ );

/** The Database Collate type. Don’t change this if in doubt. */
define( ‘DB_COLLATE’, ” );

/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define( ‘AUTH_KEY’, ‘put your unique phrase here’ );
define( ‘SECURE_AUTH_KEY’, ‘put your unique phrase here’ );
define( ‘LOGGED_IN_KEY’, ‘put your unique phrase here’ );
define( ‘NONCE_KEY’, ‘put your unique phrase here’ );
define( ‘AUTH_SALT’, ‘put your unique phrase here’ );
define( ‘SECURE_AUTH_SALT’, ‘put your unique phrase here’ );
define( ‘LOGGED_IN_SALT’, ‘put your unique phrase here’ );
define( ‘NONCE_SALT’, ‘put your unique phrase here’ );

/**#@-*/

/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = ‘wp_’;

/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define( ‘WP_DEBUG’, false );

/* That’s all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( ‘ABSPATH’ ) ) {
define( ‘ABSPATH’, dirname( __FILE__ ) . ‘/’ );
}

/** Sets up WordPress vars and included files. */
require_once( ABSPATH . ‘wp-settings.php’ );

untuk bagian script text yang berwarna merah silahkan isi sesuaikan dengan langkah 5 dan untuk bagian script yang berwarna biru, silahkan isi sesuai dengan kode API wordpress yang kita dapatkan di atas. Sehingga script-nya menjadi seperti ini :

<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don’t have to use the web site, you can
* copy this file to “wp-config.php” and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/

// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define( ‘DB_NAME’, ‘wordpress’ );

/** MySQL database username */
define( ‘DB_USER’, ‘wordpressuser’ );

/** MySQL database password */
define( ‘DB_PASSWORD’, ‘sudutbaca’ );

/** MySQL hostname */
define( ‘DB_HOST’, ‘localhost’ );

/** Database Charset to use in creating database tables. */
define( ‘DB_CHARSET’, ‘utf8’ );

/** The Database Collate type. Don’t change this if in doubt. */
define( ‘DB_COLLATE’, ” );

/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define(‘AUTH_KEY’, ‘YVeHd u}_=T^)a]/@7RC_6>gC/+6;^bpv@nq{TY0E_P g7+LaXT0MGY&*B)/i6]v’);
define(‘SECURE_AUTH_KEY’, ‘]6v.q9E*x@S+Az_9|-[hlpt,rx+lz@oa+%l.EI=:m6Ia~POdAq|EWSIi@^$93j(#’);
define(‘LOGGED_IN_KEY’, ‘1w4.q?72XOh[-X^sa @|N]p!:I-]a?<K9AO7VQ-kYjYzRLoY;Tzn$BRtFlo+4>~n’);
define(‘NONCE_KEY’, ‘cUB$u1H9fu2T#YQ]M)-.*Y4UMK2Tl1zM/-3dI%IT%Mnu!7Cw/XJJ#4[jR:WvtE3_’);
define(‘AUTH_SALT’, ‘3f.6E&]}m$B/<2$<7}r1tB YFAO-LcWsD–ZCFB!(mq7Quk%SoWFFSDFK%$)muW>’);
define(‘SECURE_AUTH_SALT’, ‘AR(:#tD|x.J}hK8rY^H:Go<qx8owyv1YGj=U6SMm,^JJKY}Actd-7ynI(F%E=#-h’);
define(‘LOGGED_IN_SALT’, ‘x:,jXt*vpXHu)W~/oYF4Nxl@7Tg(3w-sj(E+;.rv-DI-dSB.O-!LDyz-s*->45pR’);
define(‘NONCE_SALT’, ‘)+];+~jza]il/D;mc>g(eUe+A0.lV2i4gQsjM281.J%1Cl 3d<Y2+ZnL#nfkda0#’);
/**#@-*/

/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = ‘wp_’;

/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define( ‘WP_DEBUG’, false );

/* That’s all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( ‘ABSPATH’ ) ) {
define( ‘ABSPATH’, dirname( __FILE__ ) . ‘/’ );
}

/** Sets up WordPress vars and included files. */
require_once( ABSPATH . ‘wp-settings.php’ );

Simpan perubahan.

 

7. Konfigurasi Situs WordPress di Nginx

Langkah awal melakukan konfigurasi pada nginx, lakukan sedikit pengeditan letaknya pada direktori /etc/nginx/nginx.conf, silahkan buka dengan mengetikkan perintah :
nano /etc/nginx/nginx.conf

Lakukan sedikit pengatuaran pada keepalive_timeout berikan nilai yang wajar misalnya 2 seconds

[…]
keepalive_timeout 2;
[…]

Langkah berikutnya adalah mengkonfigurasi pengaturan file di Nginx untuk Moodle. Pada file inilah akan dikontrol bagaimana user bisa mengakses konten Moodle. Jalankan perintah berikut ini untuk membuat file konfigurasi dan namakan saja filenya dengan moodle :

nano /etc/nginx/sites-available/wordpress

Selanjutnya, copy dan paste script berikut dan sesuaikan dengan domain yang kita pakai, setelah itu simpan dan tutup :

server {
listen 80;
listen [::]:80;
root /var/www/html/wordpress;
index index.php index.html index.htm;
server_name 192.168.0.200;

client_max_body_size 100M;

location / {
try_files $uri $uri/ =404;
}

location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

}

Berikutnya aktifkan moodle di nginx dengan mengkopi/menduplikat /etc/nginx/sites-available/wordpress ke /etc/nginx/sites-enabled, melalui perintah :

ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

Untuk memastikan konfigurasi yang kita lakukan benar ketikkan perintah berikut ini :

nginx -t

dan apabila konfigurasi benar, maka outputnya adalah seperti tampilan ini :

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

Untuk memastikan bahwa PHP yang dipasang sudah PHP7.4-FPM, maka buatlah file php.info di dokumen root var/www/html/wordpress, dengan perintah :

nano /var/www/html/moodle/info.php

dan isi kan :

<?php
phpinfo();

simpan dan tutup editor.
Selanjutnya, restart nginx dengan mengetikkan perintah :

systemctl restart nginx.service

Sekarang kita cek info php, dengan mengetikkan http://192.168.0.200/info.php

Jika ketarangan pada baris Server API menunjukkan FPM/FastCGI maka instalasi PHP7.4-FPM sudah benar dan berjalan dengan baik.

8. Jalankan WordPress

Langkah terakhir adalah memeriksa keberhasilan Install WordPress di Debian 10 Menggunakan Nginx, MariadB, PHP7.4-FPM. Untuk memanggil moodle, buka browser dan ketikkan alamat http://alamatIPServer/. Karena pada server yang telah kita bangun memakai IP Server 192.168.0.200 maka alamat IP yang kita ketikkan di url address browser adalah http://192.168.0.200/ , dan hasilnya adalah seperti ini, dan tekan next :

Selanjutnya pilih Bahasa yang digunakan dalam pengaturan wordpress, di sini saya pilih bahasa Indonesia, selanjutnya klik lanjutkan.

Selanjutnya buat judul/nama situs, user/password untuk akses web dll sesuai selera kita. Klik Install wordpress, sehingga muncul tampilan seperti ini :

Klik log masuk, sehingga mendapatkan tampilan seperti ini :

Selanjutnya masukkan username dan password akses wordpress yang telah dibuat sebelumnya. Klik login

Nah tampilan di atas adalah dasboard tempat kita melakukan pengisian konten, pengaturan tampilan, pemasangan plugin dan lain-lain.

Untuk mengakses website cukup kita ketikkan alamat ip yang sudah kita tentukan sebelumnya yaitu 192.168.0.200 dan untuk akses dasbord pengaturan website, ketik alamat : 192.168.0.200/wp-admin

Nah selesai sudah pekerjaan kita untuk Install WordPress di Debian 10 (Buster). Akan sangat senang dan bangga apabila kita dapat melakukannya sendiri seperti awal mula saya belajar melakukan ini. Langkah berikutnya adalah memaksimalkan dan mengoptimalkan penggunaan WordPress untuk pembelajaran. Terima kasih sudah berkunjung dan membaca tulisan tentang Cara Install WordPress di Debian 10 Menggunakan Nginx MariadB PHP7.4-FPM ini. Jika Anda menginginkan VHD WordPress On Debian 10 With Nginx MariadB PHP7.4-FPM hasil dari tutorial di atas, silahkan download melalui link berikut ini :

Baca Juga :

Cara Install Moodle di Ubuntu 16.04 LTS Menggunakan Apache2, MariadB, PHP7.2

semoga bermanfaat.

 

One Response

Add a Comment