Resep Setting Server WordPress + IonCube Gak Pake Pusing

Ceritanya saya mau menduplikasi 30 situs WordPress. Situs — situs ini akan disebarkan dalam beberapa vps dengan syarat harus beda ip address, beda location, beda spesifikasi dan lain — lain. Dan dalam case ini saya harus membuat 3 situs dalam 1 server atau bisa dibilang 3 domain dalam 1 server. Sehingga saya harus menduplikasi 10 server. Sedikit banget! ^_^

Saya menggunakan DigitalOcean sebagai vps saya, disini timbul masalahnya adalah untuk MWP plugin dibutuhkan IonCube Extension pada PHP nya jadi saya harus install dengan menggunakan command line.

Kemudian saya harus menduplikasi situs saya menggunakan WP Duplicator, kembali lagi saya menemukan masalah MySQL ketika menduplikasi sehingga mengharuskan saya untuk mengedit manual mysql.ini

Tapi saya termasuk orang yang malas untuk membuat rutinitas membuat server dengan menginstall ulang keperluan server dengan command line, sebuah kegiatan yang begitu melulu.

Kebutuhan yang diperlukan untuk server ini :

  • PHP 5.6
  • WordPress
  • IonCube Extension
  • Duplicator Plugin

Persiapan dan Tools yang harus disiapkan untuk server :

  • OpenSSH Keypair ( install puttygen )
  • Akun DigitalOcean ( cloud server provider ) mulai dari $5/bulan
  • Akun Laravel Forge ( server management ) mulai dari $19/bulan
  • Install Client Bitvise ( ssh client )
  • Install HeidiSQL ( database management )— opsional

Saya menggunakan cloud server di DigitalOcean dengan perbulannya mulai dari $5/bulan cukup untuk 1 atau 2 situs kecil. Sedangkan yang membuat segalanya memudahkan yaitu menggunakan Laravel Forge (LF), simple server control, sebut saya.

Perbedaan perbandingan menggunakan cPanel atau server control panel lainnya letaknya pada penggunaan resource server. LF hanya web based dan mengontrol server via ssh. Intinya gak makan memory server karena tidak menginstall banyak aplikasi pada server.

Urusan keamanan juga sudah diatur oleh LF. Karena LF dasarnya adalah untuk aplikasi Laravel PHP Framework, namun dapat digunakan untuk framework apapun juga termasuk WordPress. Jadi saya juga gak pusing soal install web server, install database apalagi untuk server yang berbasis Ubuntu.


Yuklah mulai setting server, kelamaan nulis ceritanya. Sebelumnya pastikan dulu sudah punya semua yang diatas, karena saya ga mau bahas masalah instalasi. Semua instalasi normal. >.<

#1 Siapkan OpenSSH KeyPair

Jalankan PuttyGen untuk men-generate key baru untuk Laravel Forge. Copy OpenSSH Public Key pada notepad terlebih dahulu, lihat gambar dibawah untuk bagian yang perlu di copas.

Isi Key Passphrase ( password ) dan ulangi setelah itu simpan private key-nya ( contoh: myforgekey.ppk ) di dalam folder yang kamu inginkan dan nama filenya bisa berupa nama laptop kamu atau pc kamu yang biasa kamu gunakan untuk mengontrol server kamu.

Perhatian! Public Key dan Private Key ini Tidak boleh disebarkan hanya digunakan untuk pribadi. Anggap saja ini sebagai Kunci kamar kamu yang cuma kamu yang pake dan tidak dibagikan kepada orang lain.

#2 Mulai Setting pada Laravel Forge

Login pada situs Laravel Forge ( pastikan sudah subscribe juga ) dan sambungkan ( beri otorisasi ) dengan akun Digital Ocean kamu.

Klik My Account > Server Providers ( ada di pilihan sebelah kiri )

Masukkan profile name dan klik “Redirect To DigitalOcean” dan berikan otorisasi.

Laravel Forge telah diotorisasi.

Dan kamu sudah bisa membuat server pada Laravel Forge untuk saat ini.

Sekarang kita mempersiapkan koneksi antara server kamu dengan pc kamu. Masuk pada akun Laravel Forge kamu pilih

My Account > SSH Keys ( pilihan ada di sebelah kiri )

Beri nama dan masukkan OpenSSH Public Key yang telah dicopas tadi ke dalam kotak Public Key dan klik “Add Key”.

Setelah ini dipasang maka setiap kamu membuat server baru pada LF, maka server tersebut dipastikan akan dikoneksikan dengan pc kamu yang mempunyai key yang sama dengan server itu.

Dan saya akan bahas bagaimana menghubungkan pc kamu dengan server setelah mempersiapkan server baru.

#3 Persiapan Resep Ioncube Extension

Inilah kekuatan Laravel Forge yang bisa menyimpan script instalasi keperluan aplikasi tanpa harus kita masuk ke dalam command line. Dan saya telah mempersiapkan script ini untuk kamu yang memerlukan.

echo "Check your PHP version, extension_dir, .ini directory first and change."
mkdir download
cd download
echo "Download and Extract IonCUBE"
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xvfz ioncube_loaders_lin_x86-64.tar.gz
echo "Change the version and extension dir"
cp ioncube/ioncube_loader_lin_5.6.so /usr/lib/php/20131226
echo "Change /etc/php/5.6/fpm/conf.d/ to your .ini directory"
cat > /etc/php/5.6/fpm/conf.d/00-ioncube.ini <<EOT
zend_extension = "/usr/lib/php/20131226/ioncube_loader_lin_5.6.so";
EOT
systemctl restart nginx
systemctl restart php5.6-fpm.service
mv /etc/mysql/my.cnf /etc/mysql/my_old.cnf
cat > /etc/mysql/my.cnf <<EOT
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
## For Duplicator Wordpress
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
EOT
service mysql restart

Pada Laravel Forge kamu pilih Recipes dan copas script diatas ke dalam kotak script.

Untuk mengecek extension_dir dan lokasi directory php.ini, kamu harus membuat file phpinfo.ini didalam server kamu. LF sudah membuatnya ketika membuat server baru.

Saatnya membuat server melalui Laravel Forge.

Kembali ke Laravel Forge, https://forge.laravel.com/servers pilih DigitalOcean dan masukkan nama server pada kolom Name, pilih server size yang diinginkan, pilih region yang diinginkan, pastikan PHP versionnya 5.6 dan klik Create Server.

Simpan server credentials ke dalam secure note kamu seperti lastpass atau notepad yang aman. Jangan sampai hilang.

UPDATE:
Pada Post-Provision Recipe pilih Ioncube Extension. Sehingga server yang akan dibuat langsung di-install Ioncube.

Simpan baik — baik
SERVER BARU TELAH AKTIF

#4 Install Resep Ioncube Extension

UPDATE:
Step 4 tidak perlu dilakukan apabila telah memasukkan Post-Provision Recipe.

Server baru telah dibuat dan kamu bisa akses dan mencari informasi mengenai extension_dir dan lokasi folder php.ini dengan mengakses ip yang terpasang. Kemudian kembali edit Recipe yang telah dibuat tadi, ganti yang perlu diganti.

Setelah diganti jalankan (run) recipe tersebut pada server baru dan selesai.

#5 Install Remote Server and File Manager

Untuk mengakses FTP dan Remote Server, kita gunakan Bitvise SSH Client, Pilih Client Key Manager dan Import File myforgekey.ppk.

Kemudian bagian Authentication,

Username: forge, 
Initial method: publickey
Client Key: Global 1 (cek location myforgekey.ppk tadi)
Passphrase: masukkan password Key Passphrase myforgekey.ppk

…… dan login.

Selamat anda telah membuat 1 server baru dalam kurang lebih 10 menit. Saya bisa menaruh file hasil dari WP Duplicator ke dalam folder /home/forge/default.

#6 Cara Menambah Domain pada Server yang Sama

Tambah domain baru
  • Pilih server yang telah kamu buat.
  • Masukkan nama domain ke dalam Root Domain
  • Project type : General PHP / Laravel
  • Web Directory : /
  • Allow Wildcard Sub-Domains : di centang (ini berfungsi untuk domain kamu dapat menggunakan www atau subdomain lainnya.
  • Klik tombol Add Site, tunggu dan selesai.

Persiapkan Database baru untuk domain baru.

Buat database baru

Pilih MySQL pada list menu di kiri, dan masukkan sesuai yang diinginkan. Ini nanti digunakan untuk site WordPress baru kamu. Klik tombol Add Database, tunggu dan selesai.

Untuk upload file duplicator, kamu bisa gunakan kembali Bitvise, dan upload menggunakan file manager Bitvise ke lokasi /home/forge/namadomainbaru.com

#7 Tambah SSL untuk Site Baru (OPSIONAL)

Sebelum kamu melakukan instalasi WordPress baru pada server, kamu harus menjalankan ini terlebih dahulu agar tidak terjadi Loop Redirect.

Pastikan domain baru tersebut sudah dipointing pada server.

Pilih LetsEncrypt (Beta), klik tombol Obtain Certificate, tunggu jika sudah selesai, klik Activate pada kolom Current Certificate, selesai. Domain anda dapat diakses melalui HTTPS.

#8 Settingan Tambahan

Meningkatkan MAX_UPLOAD_SIZE cukup di Forge, tanpa harus mengutak — atik php.ini

Bisa juga untuk CRONJOB cukup di Forge saja masukkan settingannya di Scheduler.

curl https://namadomain.com/wp-json/gembloong/runpost/honbyk --connect-timeout 75 --max-time 75

KONKLUSI

Alasan kenapa saya menggunakan Laravel Forge sebagai Server Control Panel, karena penggunaan memory dalam server sangat efektif dan efisien, karena tidak ada software yang lain yang diinstall ke dalam server.

Laravel Forge mahal! Iya, kalau kamu hanya mengatur 1 Server saja. Tapi dengan LF ini kamu bisa mengatur Unlimited Server. Bayangkan kamu mengatur 10 server.

Tambahan biaya per-server menjadi $2/bulan, dibandingkan kamu harus membeli 1 license cPanel atau server control panel lainnya hanya untuk 1 server.

UPDATE : Saya menggunakan server $5 untuk menjalan 5 domain dengan masing — masing domain memiliki 20–50 images per post nya.

Mohon maaf apabila masih ada kekurangan, jika ada yang perlu ditanyakan silahkan dan bangun komentar yang positif.

Kamu akan mendapatkan $10 credit untuk digunakan. Semoga berguna. :)