Secara keseluruhan, disini kita akan menyajikan satu tutorial yang secara pokok adalah bagaimana cara menginstall wordpress di VPS unmanaged. Dengan menggunakan VPS unmanaged, maka kita bisa menghemat banyak biaya untuk hosting wordrpess dan tentunya. Secara umum dengan VPS kita akan mendapat banyak kelebihan lain termasuk space, bandwidth, serta akses lebih cepat dan dengan alamat IP yang kita pakai sendirian. VPS unmanaged adalah cara untuk berhemat, namun kelemahan satu-satunya adalah kita harus bisa mempersiapkan segala kebutuhan dalam mempersiapkan webserver linux kita. Namun dengan sedikit belajar, sebenarnya hal ini tidaklah begitu sulit meskipun kita harus lebih bersabar dan mencoba.
Menggunakan OS linux Debian 9 sebagai sistem operasi VPS server Linux
Saya lebih prefer menggunakan OS Debian daripada distro linux yang lain, dan karena saat ini di Digital Ocean hanya menyediakan paket VPS (Droplet) hanya untuk versi debian 9.7 dan debian 10 saja, maka pada tutorial ini saya menggunakan OS debian 9 yang lebih saya suka. Tak ada perbedaaan dari sisi instalasi worpdress dari versi debian versi sebelumnya, hanya saja secara default dalam repository debian kira-kira kita akan mendapatkan versi nginx 1.10.3, versi MariaDB 10.1.38, Versi 7.0 PHP, dan versi PHP Myadmin 4:4.6.6-4 . Untuk debian 10 saya belum tahu karena belum pernah nyoba, masih baru sih saat ini 😀
Jika Anda belum memiliki VPS terutama debian 9, saya sarankan untuk mencoba digitalocean. Mengapa digitalocen? Karena terbukti memiliki banyak user setia, akses cepat, uptime, menyediakan server singapura, DNS gratis dll. Saya sudah membuat tutorial digital ocean dan sedikit ulasannya disini ==> Cara Membangun VPS Unmanaged Untuk WordPress: Membuat Droplet Digitalocean
Mengapa saya harus memilih OS Linux Debian, bukannya memilih Ubuntu, Fedora, atau Centos, dll?
Alasan umum memilih debian yang paling populer adalah karena debian masih tetap konsisten dijalurnya yaitu sebagai “software gratis”, dan terbukti sudah berjalan selama 20 tahun kurleb – dan berkomitmen sebagai software gratis selama-lamanya sementara yang lainnya mulai pada berubah ke komersial. Debian juga didukung banyak kotributor dan komunitas yang terhubung dengan baik, kompatibel dengan berbagai script/software lainnya yang termasuk gratis seperti php, mariaDB, nginx, phyton, dst. Sementara ada juga pendapat lain yang mengatakan bahwa debian lebih hemat resource, dan ini juga yang paling saya suka :).
Apakah LEMP Stack?
Sebelum mulai menginstal WordPress di VPS Unmanaged, alangkah pentingnya kita memahami apa itu LEMP stack. LEMP adalah paket wajib linux untuk membangun sebuah webserver yang merupakan kependekan dari Linux, Engine X(NGINX), MYSQL, dan PHP. Dengan catatan kita tak hanya bisa juga menggunakan Nginx, bisa juga Apache sebagai aplikasi webserver atau MariaDB sebagai aplikasi database. Jika Anda menggunakan Apache sebagai webserver maka, istilahnya akan disebut LAMP yaitu Linux, Apache, MYSQL, dan PHP.
Namun dalam turorial ini saya akan menggunakan LAMP dengan MariaDB sebagai aplikasi database. Alasan saya karena saya salah satunya lebih familier dengan NGINX untuk webserver, dan saya menggunakan MariaDB sebagai aplikasi databasenya. MariaDB masih turunan dari MYSQL yang merupakan versi yang akan dipisahkan dari komersial yaitu opensource. Karena MariaDB adalah turunan dari MYSQL, jadi pada dasarnya sama namun dalam perkembangannya MYSQL kedepan yaitu versi ke-8 akan berbeda. Banyak pendapat yang mengatakan Nginx lebih stabil untuk trafik website yang tinggi, sementara apache akan membutuhkan upgrade hardware/setup Apache yang sangat rumit ketika trafik menjadi besar. Sementara MariaDB akan tetap opensource, maka itu semua adalah alasan yang lebih masuk akal.
Kok tidak termasuk PHPmyAdmin dalam paket LAMP/LEMP? Tidak karena PHPmyAdmin hanyalah apliaksi User interface untuk memudahkan kita dalam mengelola MYSQL sehingga tak perlu menggunakan command line untuk mengelola database melalui konsol linux.
Sebenarnya tak perlu PHPmyAdmin pun kita sudah bisa menginstall worpdress di server linux khususnya debian 9 stretch dalam hal ini. Tapi menurut saya PHPmyadmin harus ada, terutama jika kita suka import dan eksport database dengan cara yang mudah. Terutama untuk pemula ya.
Apakah harus menginstall LEMP Stack satu persatu untuk VPS Unmanaged sebelum menginstal wordpress?
Tak harus, karena kita bisa saja menggunakan easy engine untuk wordpress, atau aplikasi control panel macam cpanel, webmin, webuzo, serverpilot(digitalocean), vestaCP dll. Diantaranya ada yang berbayar dan free. Menggunakan control panel memang akan sangat memudahkan, kita hanya perlu menginstallnya di VPS dengan mudah mengikuti panduan yang disediakan, namun untuk VPS paket yang murah misalnya $5 yang sangat terbatas, maka aplikasi control panel akan cukup memberatkan.
Kalau alasan saya yang lain menggunakan vps unmanaged tanpa panel adalah untuk sambil belajar , sebab mau tak mau kita harus familier dengan command linux agar jika suatu saat ada error kita tidak terlalu bingung karena sudah berpengalaman dengan perintah dan direktori linux sebelumnya.
Secara mendasar kita akan berbagai tentang cara menginstall kebutuhan pokok tersebut, secara lebih sederhana dan lebih mudah dipahami sampai website wordpress kita bisa online dan diakses oleh banyak pengunjung. Untuk settingan advancednya, misalnya cache, security, dsb kita bisa mempelajarinya lagi sambil berjalan, oke?.. Karena jika kita telan semuanya secara keseluruhan, dijamin Anda akan mumet duluan 🙂 Baiklah mari kita mulai!
Tutorial Cara Install WordPress Tahap 1: Menginstal LEMP Stack, Nginx, MariaDB, PHP plus PHPMyAdmin
Jumplink :
- Cara Install Nginx Debian 9
- Cara Install php-fpm Debian 9
- Cara Install MariaDB Debian 9
- Cara Install phpMyadmin Debian 9
Menginstall SSH Client PuTTY di Komputer Windows Kita
Setelah order VPS pada penyedia, umumnya kita akan diberikan user dan password untuk mengakses VPS dan melakukan pekerjaan kita dalam memanajemen server. Hal pertama yang harus kita lakukan adalah menginstall SSH Client dikomputer kita supaya kita bisa masuk sebagai user dan menggunakan password yang telah diberikan penyedia, kemudian melakukan semua yang kita perlukan untuk membangun VPS sebagai webserver kita.
Putty Adalah adalah SSH dan Telnet Client untuk komputer windows. Yaitu software “kecil” yang sangat dibutuhkan oleh komputer windows Anda untuk mengakses VPS/Server Linux Anda; dimana yang nantinya Anda akan membuat perintah Linux melalui konsol puTTY untuk memanajemen VPS Anda seperti menginstal LEMP hingga WordPress. Untuk melakukan itu semua Anda harus masuk konsol VPS melalui puTTY sebagai user root, karena asumsi saya buat pemula janganlah mikir yang sulit-sulit dulu misalnya menggunakan user sudo dll. Gunakan root
user dan password yang sudah diberikan oleh pihak digital ocean atau provider yang lain untuk lebih mudahnya.
Karena PuTTy opensource alias gratis dan yang paling banyak penggunanya, maka saya menyarankan Anda untuk menggunakan puTTy. Disamping juga saya belum pernah menggunakan yang lain 🙂 .
Bagaimana cara menginstall puTTY dan cara mengonfigurasinya, baca artikel ini ==> Cara Menggunakan SSH Client puTTY Untuk Mengelola VPS Linux
Sebelum Anda memulai menginstal wordpress di VPS unmanaged , langkah paling awal adalah mengerti bagaimana cara menggunakan SSH client seperti puTTY ini untuk memanajemen VPS Anda.
Baiklah jika Anda sudah siap dengan puTTY, silakan untuk memulai menginstal LEMP Stack di debian 9.8, dimulai dengan menginstall web server NGINX.
Cara Install Nginx 1.10.3 debian 9
Nginx adalah hal pertama yang harus kita install setelah kita memiliki akses server/droplet dalam digital ocean dengan sistem operasi Debian 9.7. Masuk konsol linux VPS Anda melalui puTTY, lalu mulai gunakan command berikut secara berurutan perbaris:
apt update && apt upgrade apt install nginx
Jika ada pertanyaan konfirmasi intalasi untuk memakai space [Y/N] Maka ketik asaja y.
Setelah itu restart mesin linux Anda dengan command :
systemctl start nginx.service systemctl enable nginx.service
Dari sini kita sudah berhasil menginstal Nginx diserver linux debian 9 kita.
Cara Install PHP-FPM Debian 9
PHP adalah bahasa pemrograman yang digunakan oleh wordpress, jadi jelas bahwa kita harus menginstal aplikasi PHP; dan kita disini menggunakan php-fpm (FastCGI Process Manager), dimana yang lebih maksimal untuk web bertrafik tinggi jika dibandingkan dengan PHP biasanya.
Untuk menginstall PHP-fpm kita cukup memasukan baris perintah berikut sekaligus di konsol linux, dimana disini sudah termasuk modul-modul PHP yang akan dibutuhkan untuk situs wordpress kita termasuk mysql dan phpmyadmin.
apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl
Karena secara otomatis kita mendapatkan php versi 7.0 dengan cara instalasi standard diatas, maka kita selanjutnya men-start dan enable php-fpm dengan command line berikut secara berurutan:
systemctl start php7.0-fpm systemctl enable php7.0-fpm
Sampai disini kita sudah berhasil menginstall php7.0-fpm diserver linux debian 9 kita 🙂
Modifikasi cgi.fix_pathinfo
Modifikasi cgi.fix_pathinfo
sangat penting Anda lakukan. Hal ini untuk mencegah PHP mengeksekusi file dengan nama yang paling mirip jika tidak menemukan file dengan nama yang sama persis. Pada kasusnya, biasanya website yang kita install tidak bisa diakses melalui browser. File cgi.fix_pathinfo
adalah satu baris code yang terletak di file php.ini
, langkah pertama buka file php.ini
dengan nano editor seperti biasa dengan perintah :
nano /etc/php/7.0/fpm/php.ini
Kemudian temukan code cgi.fix_pathinfo dengan menggunakan fitur search pada nano, dengan kombinasi tombol keyboard CTRL+W
. Cari code tersebut, dan Anda akan menemukan yang aslinya seperti ini :
;cgi.fix_pathinfo=1
Jangan lupa simpan dengan perintah CTRL+X Y
dan enter seperti biasa, kemudian modifikasi/ubah menjadi seperti berikut :
cgi.fix_pathinfo=0
Lalu restart PHP-FPM dengan perintah :
systemctl restart php7.0-fpm.service
Sekarang proses modifikasi penting php.ini
sudah selesai.
Menguji PHP Apakah sudah bekerja
Lantas marilah kita uji PHP kita apakah sudah bisa bekerja atau belum. Langkah pertama pengujian kita adalah mengedit konfigurasi file default yang berada dilokasi /etc/nginx/sites-available/default
menggunakan nano editor seperti biasa dengan perintah :
nano /etc/nginx/sites-available/default
Lihat dan fokus pada baris code berikut:
root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name _; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # pass PHP scripts to FastCGI server # #location ~ \.php$ { # include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): # fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
Kemudian edit, atau hapus semuanya lalu ubahlah dengan teliti menjadi :
root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } # pass PHP scripts to FastCGI server location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } }
Seperti biasa jika sudah selesai, simpan dengan Ctrl+X Y
lalu enter. Kemudian restart Nginx dengan perintah
systemctl restart nginx.service
Pastikan tidak ada error, jika ternyata ditemukan error berarti Anda melakukian kesalahan saat mengedit file default tadi. Periksa dan ulangi jika ternyata masih error.
Oke sekarang marilah kita cek apakah intalasi PHP-FPM dan konfigurasi diatas berhasil? Buatlah sebuah file berekstensi .php di direktori /var/www/html
, kita buat file contoh yaitu info.php
melalui perintah linux di konsol puTTY:
cd /var/www/html touch info.php
Kemudian buka file info.php
dengan nano editor masukkan perintah nano info.php
, lalu kita isi/masukkan baris code php berikut :
<?php phpinfo(); ?>
Nah, jika sudah selesai jangan lupa simpan seperti biasanya. Sekarang buka web browser Anda, kemudian akses melalui bar yaitu http://ALAMAT_IP_VPS/info.php
maka akan tampil seperti ini :
Lihat tabel Server API, jika terisi FPM/FastCGI maka instalasi PHP-FPM telah berhasil. Sampai disini Anda telah bekerja dengan baik tanpa error, selamat!.
Cara Install MariaDB 10 Debian 9.
WordPress adalah CMS(Content Management System) untuk web dinamis, jadi tentunya menggunakan database untuk menyimpan data baik itu postingan, user, dll. Untuk itu kita perlu menginstall MariaDB sebagai aplikasi databasenya, seperti yang sudah kita jelaskan sebelumnya diartikel ini.
Baiklah, cukup kita masukkan command line berikut :
apt install mariadb-server mariadb-client
Pada saat proses instalasi berjalan, MariaDB akan meminta Anda untuk memasukkan password yang nantinya akan dipakai sebagai root
user. Buatlah notepad dikomputer Anda, lalu buatlah password yang kuat dinotepad tersebut, simpan. Lalu gunakan password itu untuk mengisi permintaan membuat password tersebut. Jangan dikosongkan meskipun itu bisa.
Setelah instalasi selesai, lalu kemudian kita perlu start dan MariaDB akan mulai setelah sistem boot. Gunakan perintah berikut ;
systemctl start mariadb.service systemctl enable mariadb.service
Untuk membuat MariaDB lebih aman, kita perlu melakukan command linux lagi seperti berikut :
mysql_secure_installation
Nanti akan muncul beberapa pertanyaan, dan Anda cukup menjawab dengan:
- Remove anonymous users? Y,
- Disallow root login remotely? Y,
- Remove test database and access to it? Y,
- Reload privilege tables now? Y.
Selamat, sampai di sini Anda sudah berhasil menginstall MariaDB. Sebenarnya jika Anda sudah terbiasa dengan baris perintah MYSQl, Anda bisa login ke database melalui konsol putty dengan menggunakan user root
dan password MYSQL yang sudah Anda buat dinotepad sebelumnya dan membuat database untuk wordpress yang diinstall nantinya. Tetapi jika Anda malas menggunakan command line untuk membuat/mengelola databse dengan command line MySQL, maka Anda bisa menginstall phpMyAdmin.
Cara Install phpMyAdmin Debian 9
Masukkan command :
apt-get install phpmyadmin
Kemudian akan muncul jendela berwarna biru yang menanyakan berupa pilihan akan diinstall untuk webserver apa? Ada 2 pilihan yang ada yaitu apache2 dan lighttpd. Kok tidak ada pilihan Nginx? Tenang, Anda silakan pilih Apache2, gunakan tombol TAB pada keyboard untuk menavigasi pilihan. Tekan enter untuk apache2, jangan salah 🙂
Berikutnya akan muncul beberapa pertanyaan yang harus dijawab yaitu :
Configure database for phpmyadmin with dbconfig-common? Yes.
Selanjutnya Anda akan disuruh membuat password untuk phpMyAdmin. Buatlah passwor baru yang kuat untuk phpMyAdmin, jangan samakan dengan password untuk root. Alangkah baiknya password ini juga telah Anda catat/simpan di file TXT di komputer Anda supaya mudah nanti jika dibutuhkan.
Karena PHP MyAdmin bekerja pada web browser, maka langkah selanjutnya adalah Anda harus membuat phpMyAdmin agar dapat diakses melalui web browser. Caranya adalah dengan membuat virtual host. Virtual host adalah catatan kecil di Nginx agar alamat web bisa diakses melalui web browser. Berikut cara membuat virtual host:
cd /etc/nginx/sites-available/ touch phpmyadmin
Keterangan: Perintah cd adalah untuk mengakses folder dalam linux, dalam kasus ini kita mengakses folder sites-available yang secara default sudah ada. Kemudian perintah touch
adalah untuk membuat file baru di linux yaitu di folder sites-available.
Sekarang pastikan apakah file phpmyadmin sudah ada? Untuk memeriksa masukkan perintahls -a
dikonsol. Jika file phpmyadmin sudah tercreate, lalu kemudian edit file phpMyAdmin tersebut dengan perintah :
nano phpmyadmin
Kemudian masukkan script berikut(yang sudah saya adaptasi/edit dari file /etc/nginx/sites-available/default) agar sesuai dengan tujuan kita :
server { listen 7777; server_name 127.220.240.221; access_log /var/log/nginx/localhost.access.log; root /usr/share/phpmyadmin; index index.php; location / { try_files $uri $uri/ @phpmyadmin; } location @phpmyadmin { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; #fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/index.php; fastcgi_param SCRIPT_NAME /index.php; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Keterangan script :
- Edit sesuai dengan keinginan Anda untuk listen 7777, adalah port boleh pilih sesuka hati Anda asalkan jangan pakai 80, 443, 21, dan 22.
- Edit server_name dengan IP VPS Anda, atau Anda juga bisa menggunakan nama domain Anda jika DNS sudah pointing ke server Anda. Tapi menurut saya gunakan alamat IP saja agar kita tak perlu menyiapkan nama domain / subdomain khusus untuk PHP MyAdmin 🙂 .
Setelah selesai, simpan script tersebut dengan menekan tombol keyboard Ctrl+X Y
, lalu tekan enter untuk mengonfirmasi.
Langkah berikutnya adalah, kita harus membuat symbolic link untuk script virtual host tersebut agar script kita dieksekusi oleh nginx, caranya masukkan perintah konsol :
ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin
systemctl restart nginx.service
Sekarang instalasi PHPMyAdmin Sudah selesai, saatnya untuk kita uji. Caranya buka firefox atau chrome, masukkan alamat IP VPS Anda dan port yang sudah Anda edit di dalam script virtual host tadi. Sebagai contoh yaitu : http://127.220.240.221:777
Dan taraaaa….
Coba login dengan user root dan dengan password MYSQL yang sudah Anda buat tadi. Lho kok muncul error #1698 – Access denied for user ‘root’@’localhost’”???
Tenang jangan panik, karena untuk versi MYSQL dan MariaDB ini sudah menggunakan metode auth_socket. Adalah plugin yang mengautentifikasi user yang terhubung dari localhost melalui unix socket, dimana yang menghalangi pengguna terhubung dengan password.
Cara mengatasinya kita bisa membuat user baru untuk mengakses / login melalui PHPMyAdmin, dengan menggunakan perintah mysql.
Masukkan command line berikut untuk masuk ke mysql :
mysql -u root -p
Kemudian masukkan perintah berikut berurutan perbaris:
CREATE USER 'namaadmin'@'localhost' IDENTIFIED BY 'ganti-dg-password-anda'; GRANT ALL PRIVILEGES ON *.* TO 'namaadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; QUIT
Catatan : Ganti “namaadmin” dengan user Anda sesuka Anda, dan buat passwordnya, jangan lupa simpan di TXT ya supaya tidak lupa.
Sekarang refress PHP MyAdmin yang tadi yaitu http://127.220.240.221:777
di web browser, lalu cobalah untuk login kembali menggunakan user dan password yang sudah Anda buat barusan melalui perintah mysql. Sekarang Anda sudah berhasil login, dan siap untuk membuat database, user, dan passwordnya untuk wordpress yang akan Anda install nantinya.
Jika langkah diatas sudah betul Anda lakukan, maka saya yakin sampai disini Anda sudah berhasil mempersiapkan VPS Debian 9 plus phpMyAdmin yang sudah siap untuk diinstall wordpress.
Untuk bagaimana cara menginstall wordpressnya, Anda bisa mengikuti artikel berikutnya yaitu “Install WordPress di VPS Unmanaged Tahap Final – Nginx, MariaDB, PHP7-FPM dan PHPmyAdmin.” Tunggu sebentar lagi saya akan membuat turorial nya sampai tuntas. Jangan sekaligus install semuanya dulu, sekarang istirahatlah ambil seruput kopinya 🙂
Jika Anda tidak capek monggo silakan dilanjut sampai finish menginstal wordpressnya. Sampai disini jika Anda belum melakukan setup DNS, maka lakukanlah sekarang juga. Tutorial setup DNS server sudah saya buat yaitu ==> Cara Setting DNS Server Untuk VPS Unmanaged Digital Ocean
Jika Anda sudah melakukan setup DNS dengan benar, maka silakan untuk melanjutkan install WordPress di VPS tanpa panel tahap 2 final, turorialnya disini ==> Cara Install WordPress di VPS Tanpa Panel Dengan NGINX Debian 9 – Final
Catatan: Jika ada error selama proses instalasi, dan Anda tidak pernah sampai pada tahap selesai ini, jangan panik. Untuk mencegah terjadi error, lakukan proses instalasi LEMP diatas satu persatu berurutan, jangan sampai ada yang terlewat pada tutorial diatas. Jika memang harus gagal/error, solving problemnya bisa bermacam-macam dan sangat merepotkan bahkan bisa bikin frustasi.
Langkah pamungkas dalam mengatasi kebuntuan jika terjadi error adalah uninstall dan reinstall masing-masing entah itu NGINX, MariaDB, atau PHP dan PHPmyAdmin. Jika problem tidak bisa diatasi, jalan terakhir adalah install ulang VPS atau droplet(digital ocean). Tapi maaf saya belum membuat tutorial uninstall/reinstall maupun install ulang, tapi Anda bisa browsing untuk mencari tutorialnya. Makanya usahakan lakukan dengan teliti betul ya 🙂
Artikel di Update pada Juli 18, 2019 2:05 pm