Sekitar awal bulan Juni 2020 saya mendapatkan kesempatan credit AWS selama 2 tahun dari program AWS Startups (https://aws.amazon.com/startups/), iseng-iseng ikut, ternyata mendapatkan credit yang cukup banyak selama 2 tahun plus premium support selama 1 tahun.

Setelah dapat credit, langsung saya coba migrasi aplikasi wordpress dari shared hosting ke AWS, proses instalasi cepat, dan aksesnya juga cepat, tapi yang menjadi kendala lagi adalah, saat saya menggunakan WordPress Multisite sub Direktori terjadi error TOO_MANY_REDIRECT saat mencoba akses ke subdirektori admin console, padahal step-stepnya sudah sesuai dengan step-step yang dilakukan pada shared hosting.

Setelah mencoba beberapa hari, akhirnya sudah ketemu solusinya, berikut ini saya mencoba berbagi step-step menggunakan Bitnami WordPress Multisite sub direktori pada AWS EC2.

Berikut ini langkah-langkahnya:

  1. Jika sudah running, copy IP public instance yang baru saja dibuat

    Buka Putty, cari menu Connection -> SSH -> Auth, klik tombol Browse, ambil file extensi .PPK dari hasil save private key PuttyGen sebelumnya

    Masukkan hostname, dan klik YES untuk menyetujui certificate server

    Masukkan username bitnami

    Untuk melihat password adminsitrator dari WordPress, ketik cat bitnami_credentials

  2. Jika sudah masuk ke dalam linux, selanjutnya adalah merubah multisite subdomain ke multisite subdirektori.

    Buka file wp-config.php yang ada di /opt/bitnami/apps/wordpress/htdocs/

Ada 2 baris yang perlu di ubah

define( ‘SUBDOMAIN_INSTALL’, false );

define( ‘DOMAIN_CURRENT_SITE’, ‘example.com’ );

Ubah DOMAIN_CURRENT_SITE dengan domain anda sendiri, sehingga nantinya URL nya akan menjadi example.com/site1, example.com/site2

  1. Edit http-app.conf

    Nah di sini ini yang sedikit berbeda dengang shared hosting, jika pada shared hosting kita bisa ubah rewrite rule pada .HTTACCESS, pada bitnami ini sedikit berbeda, yaitu ada di /opt/bitnami/apps/wordpress/conf/httpd-app.conf

    Edit file itu, masukkan rewrite rule yang didapat dari wordpress network setup atau copy paste baris dibawah ini, sebelum copy paste, hapus dulu rewrite rule yang lama

    RewriteEngine On

    RewriteBase /

    RewriteRule ^index\.php$ – [L]

    # add a trailing slash to /wp-admin

    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]

    RewriteCond %{REQUEST_FILENAME} -d

    RewriteRule ^ – [L]

    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]

    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

    RewriteRule . index.php [L]

  2. Update mysql

    Langkah berikutnya adalah mengubah link wordpress dari standard instalasi EC2 ke nama domain kita

    1. Update untuk blog id

      Masuk ke mysql (username dan password ada pada wp-config.php)

      Pilih bitnami_wordpress database

      Ketik syntax berikut ini

      update wp_blogs set domain=’example.com’ where blog_id=1

    2. update semua link standard bitnami ke domain

      Untuk memastikan bahwa semua URL yang ada di database mengarah ke domain kita, gunakan query berikut untuk mengupdatenya

  • UPDATE wp_options SET option_value = replace(option_value, ‘http://1.2.3.4.xip.io ‘, ‘http://example.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
  • UPDATE wp_posts SET guid = replace(guid, ‘http://1.2.3.4.xip.io ‘,’http://example.com’);
  • UPDATE wp_posts SET post_content = replace(post_content, ‘http://1.2.3.4.xip.io ‘, ‘http://example.com’);
  • UPDATE wp_postmeta SET meta_value = replace(meta_value,’http://1.2.3.4.xip.io ‘,’http://example.com’);
  1. Disable bitnami banner

    Langkah terakhir… matikan bitname page banner, setiap halaman wordpress post akan selalu muncul logo bitnami pada pojok kanan bawah, untuk mematikan fitur itu, login ke server dengan menggunakan PUTTY, jalankan command berikut ini

    sudo /opt/bitnami/apps/wordpress/bnconfig –disable_banner 1

    sudo /opt/bitnami/ctlscript.sh restart apache

Dan silahkan login ke wordpress anda dan coba buat site baru dan coba akses.

Semoga berguna