andrypein.net : Mengawali blogging berasal dari platformnya gogel yakni blogspot, lalu vakum menulis, karena langsung bekerja terjun di IT Server nya salah satu media online di Jawa Barat dimana engine nya menggunakan wordpress, akhirnya saya menggeluti bidang ini.
Dulu masih CPanel, karena cPanel TIDAK KEREN sama sekali bagi saya, doi terlalu EZ, saya suka tantangan, akhirya saya migrasikan ke VPS.
Juga berbekal otodidak walau tidak mastering pun akhirnya saya bisa membuat ramuan konfigurasi wordpress nginx yang benar dan cepat.
Serta banyak portofolio projek website yang wordpress based, dari mulai migrasi cpanel ke vps, performance tuning, optimasi dll, serta migrasi dari traditional stack ke docker alhamdulillah sudah bisa diluar kepala.
Btw tulisan ini akan memiliki series dan akan bersambung di tulisan selanjutnya, baiklah begini ceritanya.
Mengapa Nginx
Sudah ada di postingan Konfig Nginx Jadul dan kombinasi nginx HHVM
Alasan lainnya karena apache super mega ultimate berat serta tidak rekomen sama sekali dan nginx berwarna hijau, thats it, i love green dude.
FYI juga, situs wordpress sendirinya langsung memang menggunakan nginx.
Di artikel ini akan dijelaskan bertahap tentang cara nge-admin linux + wordpress.
Menyiapkan Infrastruktur
Ok, Step pertama adalah mau itu dev langsung di vm sendiri dengan virtualbox atau di VPS publik itu terserah karena yang dibutuhkan adalah OS Ubuntu nya terlebih dahulu.
Dalam sample kali ini, ane pakai vm Ubuntu server 18 karena termasuk distro linux yang paling mudah dan akan di dev secara lokal, jadi akan ane terangkan setup lokal dev nya bagaimana.
FYI sekali lagi ini tidak di publik VPS jadi tidak akan dijelaskan tentang setup pointing Domain, DNS dsb.
Dalam arti di post kali ini kita siapkan setup infrastruktur nya terlebih dahulu, mulai dari OS dan aplikasi pendukungnya.
Btw ane sendiri sudah menyiapkan vm ubuntu 18 lokal dengan IP 10.234.69.12 sebagai contoh.
Install Nginx Stack
Ane nyebutnya stack karena sudah menjadi standar bagi diri sendiri bahwa inilah kumpulan aplikasi-server yang dibutuhkan untuk membuat situs berbasis wordpress.
Yang menjadi bahan stack disini adalah :
- Webserver : Sesuai judul, pake nginx lah, apache apaan
- DB Server : MariaDB / MySQL , contoh kali ini memakai MySQL
- PHP 7.4 : Untuk nginx sendiri PHP nya bernama FPM
- PHP Module : Tidak banyak
- Redis Cache (Optional) : up to u
Nginx Webserver
Karena ubuntu itu mudah, jadi tinggal begini saja :
apt install nginx apt-get install nginx aptitude install nginx
whatever command nya terserah bebas.
Done, sekarang kita cek di browser apakah webserver nya berjalan dengan cara mengakses nya melalui IP di ubuntu masing-masing.
Malas Pakai IP?
Karena acaranya lokal dev, kita pakai domain bohongan saja, caranya tinggal ganti hosts nya, untuk linux ada di /etc/hosts sedangkan untuk windows ada di C:\Windows\System32\drivers\etc.
Nama domainnya pun bebas, ya namanya juga dev.
Lalu coba akses kembali memakai nama domain dari IP yang file hosts nya tadi sudah diedit.
NB : Jika sudah pointing domain di VPS, hosting, dsb secara publik, jangan lakukan edit hosts.
Install DB Server
Sesuai bahan stack diatas, kita install db server yang sudah famous dan mendukung engine wordpress adalah MySQL, memakai mariadb pun bisa.
tinggal apt install mysql-server
Untuk Ubuntu 18 sendiri, versi mysql yang dipakai adalah Mysql 5.7.33, bisa dicek saat login mysqlnya langsung.
Sayang sekali setelah instalasi selesai si mysql masih berupa login tanpa password, maka langkah selanjutnya adalah.
Setting Root Password MySQL
Login terlebih dahulu dengan tanpa password dengan command “mysql -u root”, lalu masukan query seperti dibawah ini.
Ganti string PASSWORD sesuai yang terserah diinginkan.
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> UPDATE user SET authentication_string=PASSWORD("Passwordmysql") WHERE User='root'; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
Jika dicoba login lagi maka akan error, dan selamat, login mysqlnya sudah bisa pakai password.
root@vm-andrypein:/home/andrypein# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) root@vm-andrypein:/home/andrypein#
Next coba login mysql -u root -p seperti ini gan :
Install PHP-FPM
Karena ini nginx, maka php nya terpisah, dia bernama FPM (FastCGI Proccess Manager), berbeda dengan apache yang sudah PHP built-in.
Plus karena banyak juga Ekstensi/modul PHP yang tersedia, maka tidak usah diinstall semua, dan inilah beberapa modul penting dalam PHP yang dibutuhkan untuk installasi wordpress.
Tambah Repository PHP
Untuk langkah awal instalasi, tambahkan terlebih dahulu repository php mamang ondrej nya itu sendiri gan.
sudo apt -y install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update
karena akan pasti gagal kalau langsung apt install php7.4-fpm mah.
Install PHP Extension
Setelah update repo linux dengan menambahkan repo php diatas, lanjut kita install php-fpm beserta ekstensi-ekstensi yang diperlukan untuk wordpress antara lain.
php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php7.4-mcrypt php-redis
Install Redis Server (Optional)
Redis server ini berfungsi sebagai cache, cache ini akan mengurangi permintaan/ request pada database secara berlebihan alias tidak akan ada query berulang yang sama karena sudah disimpan dalam cache, dan yang pasti akan mempercepat loading website mu.
Karena untuk cache ini bersifat opsional jadi bisa diinstall bisa tidak, dan per CACHE an sendiri pada wordpress akan berbeda topik pembahasannya. EZ
root@vm-andrypein:/home/andrypein# apt install redis Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libdumbnet1 Use 'sudo apt autoremove' to remove it. The following additional packages will be installed: libjemalloc1 redis-server redis-tools Suggested packages: ruby-redis The following NEW packages will be installed: libjemalloc1 redis redis-server redis-tools 0 upgraded, 4 newly installed, 0 to remove and 7 not upgraded. Need to get 637 kB of archives. After this operation, 3,083 kB of additional disk space will be used.
Persiapan Infra Selesai
Begitulah kurang lebih gambaran pada setup awal banget dalam mendesain infrastruktur pada wordpress nginx dengan menggunakan nginx stack.
Bersambung dahulu karena di post selanjutnya akan beneran setup bahan-bahan disini untuk menjadi running website yang sebeneranya.
Meanwhile nanti juga akan ane jelaskan bagaimana migrasi wordpress nginx stack ini kedalam sebuah container docker, seperti si andrypein ini yang sudah full docker.