Lompat ke konten
Home » Instalasi Subdirektori WordPress menggunakan Docker dan Nginx

Instalasi Subdirektori WordPress menggunakan Docker dan Nginx

​Wordpress merupakan Open Source CMS yang sangat populer. Penggunaanya sangat beragam untuk segala macam kebutuhan. Namun, pada umum WordPress digunakan untuk blog. Oleh karena itu kita akan mencoba melakukan konfigurasi WordPress dengan Docker Container untuk mempermudah instalasi dan penggunaanya pada Webserver anda. Sehingga anda tidak perlu melakukan konfigurasi yang major ketika melakukan instalasi WordPress.

Kita akan memanfaatkan Docker sebagai container. Pastikan anda telah memahami konsep dasar Docker Container. Selain itu kita akan menggunakan template Docker Container yang telah rancang sebelumnya pada repository geronimo794/docker-alphine-nginx-php. Untuk langkah-langkahnya adalah sebagai berikut : Pertama-tama menyiapkan repository WordPress dan Docker. Kedua, konfigurasi subdirectories WordPress pada Nginx. Ketiga, konfigurasi WordPress dan direktori unggah.

1. Menyiapkan repository WordPress dan Docker

Jika anda telah memiliki rancangan direktori Docker yang telah anda gunakan sebelumnya anda dapat melewati tahap ini.
Pertama-tama, unduh WordPress  dan repository yang telah saya siapkan geronimo794/docker-alphine-nginx-php. Setelah mengunduh struktur direktori dan rancangan Docker, masukkan WordPress yang telah anda extract pada folder “application”.

Menyimpan aplikasi pada folder “Application”

Pastikan isi folder WordPress anda berada pada folder application secara langsung.

Isi folder “Application” dengan berkas WordPress

Isi dari folder application yang merupakan file WordPress anda.
Selanjutnya, anda dapat melakukan konfigurasi untuk database anda pada Docker Compose YML yang telah saya sediakan. Pertama-tama tentukan port yang akan anda gunakan untuk container WordPress ini.

Kemudian, konfigurasi database
. Jika anda ingin database menggunakan Docker Container, anda dapat membacanya pada artikel Membuat Docker Container MySQL dengan Docker Volume. Namun, jika anda ingin menggunakan MySQL pada Host, anda dapat membaca pada artikel Menghubungkan Aplikasi Pada Docker Container dengan MySQL yang berada pada host.

Pastikan anda telah menentukan lokasi database dan telah melakukan konfigurasi Docker Compose file seperti yang anda inginkan. Jika sudah melakukan konfigurasi diatas, kita akan menjalankan rancangan kontainer kita dengan.

docker compose -f development.yml up --build -d

Setelah service atau kontainer anda berjalan, langkah selanjutnya adalah konfigurasi Nginx

2. Konfigurasi subdirectories WordPress pada Nginx

Konfigurasi subdirectories ini sebenarnya cukup sederhana, namun pastikan anda telah mencatat apa saja yang perlu anda tambahkan pada konfigurasi Nginx anda. Untuk menambahkan konfigurasi pada Nginx, buka konfigurasi domain anda.

nano /etc/nginx/sites-available/nama-website-anda

Kemudian tambahkan konfigurasi ini pada block server anda

server {

...
        location ^~ /blog/ {
                proxy_ssl_server_name on;

                proxy_set_header Host $host;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:PORT-ANDA/;
        }
...
}

Ubah “PORT-ANDA” sesuai dengan konfigurasi port Docker Container yang telah anda sesuaikan sebelumnya. Kemudian cek konfigurasi Nginx anda dengan,

nginx -t

Jika output dari perintah di atas adalah

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

Artinya konfigurasi anda sudah benar, dan lakukan langkah selanjutnya dengan merestart Nginx dengan

systemctl restart nginx

Setelah berhasil melakukan restart nginx, langkah selanjutnya adalah melakukan instalasi WordPress anda.

3. Instalasi, Konfigurasi dan pengaturan direktori unggah WordPress

Setelah melakukan konfigurasi Docker dan Nginx, langkah selanjutnya adalah instalasi WordPress. Untuk melanjutkan langkah ini, masuk pada domain dan subdirectories anda,

https://nama-domain-anda/blog/wp-admin/setup-config.php

Hal yang harus anda perhatikan dalam instalasi ini adalah URL domain anda. Pastikan protokol yang anda pilih sudah tepat, “http” atau “https“. Subdirektori anda juga sesuai dengan yang anda tentukan pada konfigurasi Nginx. Untuk contoh kali ini saya menggunakan subdirektori “blog“.
Jika anda berhasil mengakses WordPress, akan muncul tampilan sebagai berikut.

Prose Instalasi WordPress

Jangan khawatir, jika tampilan blog anda masih berantakan. Karena setelah proses instalasi kita akan memperbaikinya. Setelah itu, klik link “Let’s Go“.

Konfigurasi Database pada instalasi WordPress

Masukkan konfigurasi Database yang telah anda tentukan sebelumnya(Artikel terkait Membuat Docker Container MySQL dengan Docker Volume, Menghubungkan Aplikasi Pada Docker Container dengan MySQL yang berada pada host.). Setelah itu tekan tombol “Submit“.

Menambahkan “wp-config.php” secara manual

Jika muncul halaman error seperti ini, artinya anda butuh menambahkan file “wp-config.php” secara manual. Masukkan teks yang ada dalam text area tersebuat, kemudian buat file baru pada folder WordPress anda dengan nama file “wp-config.php“.

Isi file “wp-config.php”

Kemudian simpan dan unggah pada server anda. Kemudian klik tombol “Run the instalation“.
Jika tidak ada problem seperti di atas, anda akan di arahkan ke halaman ini.

Berhasil menghubungkan WordPress dengan Database

Jika, tampilan setelah menekan tombol “Submit” seperti di atas, artinya konfigurasi database anda berhasil. Kemudian jalankan instalasi dengan klik link “Run the installation“.

Konfigurasi WordPress

Langkah selanjutnya isi konfigurasi WordPress anda sesuai dengan keinginan. Jika sudah selesai, tekan tombol “Install WordPress“.

Proses instalasi WordPress berhasil

Setelah tahap ini selesai, langkah selanjutnya ubah konfigurasi “wp-config.php” anda. Tambahkan baris kode berikut,

...

/**#@-*/
define('WP_HOME','https://NAMA-DOMAIN-ANDA/NAMA-SUBDIREKTORI-ANDA');
define('WP_SITEURL','https://NAMA-DOMAIN-ANDA/NAMA-SUBDIREKTORI-ANDA');
define('FORCE_SSL', true);
define('FORCE_SSL_ADMIN', true);

// Aktifkan juga anda menggunakan HTTPS
$_SERVER['HTTPS'] = 'on';
$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/NAMA-SUBDIREKTORI-ANDA/wp-admin/",  $_SERVER['REQUEST_URI']);

/**
 * 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!
 */

...

Sesuaikan konfigurasi “NAMA-DOMAIN-ANDA” dan “NAMA-SUBDIREKTORI-ANDA“. Kemudian simpan. Setelah menyimpan perubahan pada “wp-config.php“, masuk ke “wp-admin” anda pada URL

https://nama-domain-anda/blog/wp-admin/

Setelah anda berhasil masuk ke “wp-admin“, cobalah login dengan kredensial yang telah anda buat sebelumnya.

“wp-admin” sudah berhasil diakses

Selamat, WordPress anda telah berhasil di install pada Subdirektori menggunakan Docker Container. Namun jangan senang dulu, cobalah mengunggah media pada WordPress anda.

Error proses unggah media

Jika muncul error seperti di atas, artinya anda butuh menambahkan konfigurasi tambahan pada direktori anda.
Pertama-tama buatlah folder “uploads” pada folder “wp-content” anda.

mkdir wp-content/uploads

Kemudian ganti hak akses folder tersebut menjadi,

chmod 755 wp-content/uploads/

Setelah menambah konfigurasi pada folder “uploads“, cobalah mengunggah berkas pada WordPress media anda.

Berhasil mengunggah gambar pada WordPress

Selamat… WordPress anda siap untuk digunakan.

Ada beberapa hal yang harus anda perhatikan dalam tutorial ini. Anda tidak dapat menambahkan theme dan plugin secara langsung dari WordPress. Anda harus menambahkan secara manual, unduh dan tempatkan folder plugins dan theme.

Hal ini saya terapkan agar saya tidak sembarangan menginstall plugin atau theme. Karena theme atau plugin yang salah dapat merusak WordPress saya.
Sekian dan terimakasih… ​

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *