Eror Install WordPress di Subdirectory Menggunakan CloudPanel – Ini Solusinya!

Eror Install WordPress di Subdirectory Menggunakan CloudPanel – Ini Solusinya!

Instalasi WordPress di subdirectory (misalnya /blog/) menjadi solusi untuk memisahkan konten khusus atau blog dari situs utama.

Karena melakukan cara ini dalam tujuan optimasi SEO adalah praktik terbaik ketimbang install website blog di sub-domain.

Namun, untuk kamu pengguna CloudPanel, sampai artikel ini saya terbitkan, CloudPanel tidak mendukung praktik ini secara bawaan, mereka berdali, itu bisa dilakukan dengan install multisite WordPress.

CloudPanel: Control Panel VPS Gratis Terbaik

CloudPanel adalah salah satu panel manajemen server yang populer karena kemudahan konfigurasi dan antarmuka yang ramah pengguna.

Sejauh saya menggunakan control panel ini untuk kebutuhan install dan manajemen website yang dibangun dengan WordPress, belum menemukan kekurangannya.

Walaupun demikian, banyak penggunannya saat menginstall WordPress di subdirectory menemui kendala akibat konfigurasi Nginx yang belum optimal untuk menangani request ke subdirectory.

Dalam artikel ini, kita akan fokus pada penyesuaian konfigurasi Nginx untuk memastikan:

  • Permintaan ke subdirectory diproses dengan benar.
  • Rewrite URL WordPress bekerja optimal, sehingga permalink %postname% bisa digunakan tanpa error.
  • Fitur-fitur seperti publish artikel dan add media dapat berjalan normal.

Daftar Masalah Yang Terjadi

1. Tidak Bisa Publish Artikel

Kamu mengalami ini juga? Tidak bisa publish artikel jika permalink diatur sebagai %postname%? Tentu untuk seorang SEO Optimize, struktur permalink yang rapi dan mudah adalah kunci.

2. Tidak Bisa Upload Media

Saya gak kebayang bagaimana jadinya webite tanpa media, gambar di atas ada eror yang saya alami saat install WordPress di subdirectory.

Penyebab Error

Penyebab eror dari sejauh pengamatan saya antara lain:

  • Rewrite URL yang salah
    Tanpa konfigurasi khusus untuk subdirectory, Nginx tidak akan mengarahkan request ke file index.php di dalam subdirectory dengan benar, sehingga menyebabkan error 404 atau masalah permalink.
  • FastCGI timeout dan parameter yang tidak sesuai
    Pengaturan default Cloudpanel tidak optimal yang menyebabkan backend PHP gagal merespon dalam waktu yang diharapkan.

Penanganan Eror

Di bawah, saya akan melampirkan kode tambahan yang bisa kamu copy, lalu paste di Vhost. Karena masalahnya ada di sini, di konfigurasi Nginx yang tidak mendukung instalasi WordPress di Subdirectory.

Server Block untuk Port 80/443 (HTTP/HTTPS)

Setelah bagian di mana domain (server_name) sudah ditentukan dan sebelum bagian aturan umum location untuk penanganan permintaan (misalnya sebelum blok location / atau sebelum pengecekan file dengan if (-f $request_filename)), tambahkan blok berikut:

Baris Tempat Kamu Tempel Kode Pertama

Mungkin kamu tidak perlu fokus pada barisnya, tapi setelah perintah apa dan sebelum perintah apa kode yang terlampir di bawah kamu tempel.

Kode Pertama Pada Block 1 Yang Harus Kamu Salin

location /blog/ {
    try_files $uri $uri/ /blog/index.php?$args;
    index index.php;
    include fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 3600;
    fastcgi_send_timeout 3600;
    fastcgi_param HTTPS "on";
    fastcgi_param SERVER_PORT 443;
    fastcgi_pass 127.0.0.1:{{php_fpm_port}};
    fastcgi_param PHP_VALUE "{{php_settings}}";

    location ~* \.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
        add_header Access-Control-Allow-Origin "*";
        expires max;
        access_log off;
    }
}
Catatan:
Mungkin kamu melihat ada kata blog pada baris satu dan dua, itu karena saya melakukan instalasi WordPress di subdirectory /blog. Maka pada prakteknya, kamu harus menyesuaikannya sesuai dengan kebutuhan.

Server Block untuk Port 8080 (Penanganan PHP)

Di file konfigurasi yang mendengarkan di port 8080 (biasanya untuk proses PHP), letakkan blok berikut sebelum aturan default yang menangani file PHP:

Baris Tempat Kamu Tempel Kode Kedua

Kode Kedua Pada Block 2 Yang Harus Kamu Salin

location /blog/ {
    try_files $uri $uri/ /blog/index.php?$args;
    index index.php;
    include fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 3600;
    fastcgi_send_timeout 3600;
    fastcgi_param HTTPS "on";
    fastcgi_param SERVER_PORT 443;
    fastcgi_pass 127.0.0.1:{{php_fpm_port}};
    fastcgi_param PHP_VALUE "{{php_settings}}";
}

Catatan:

  • Pastikan untuk mengganti /blog/ dengan nama subdirectory yang kamu gunakan jika berbeda (misalnya /wordpress/).
  • Variabel {{php_fpm_port}} dan {{php_settings}} harus disesuaikan dengan konfigurasi server kamu.
  • Jika file konfigurasi kamu memiliki penomoran baris, blok tersebut biasanya berada di sekitar baris ke-30 hingga 50 untuk server block HTTPS, dan baris ke-136 hingga 149 untuk server block PHP (nomor ini hanya perkiraan dan dapat berbeda sesuai dengan struktur file kamu).

Langkah-langkah Implementasi Secara Lengkap

  1. Akses CloudPanel
    • Setaleh berada di dalam panel, pilih domain tempat kamu melakukan instalasi WordPress di subdirectory
    • Pergi ke menu Vhost tempat konfigurasi Nginx berada
    • Tempel kode di atas di baris yang tepat
  2. Simpan Perubahan
    • Setelah melakukan penyesuaian, simpan file konfigurasinya
  3. Uji Coba
    • Silakan coba kembali dengan publis artikel, buat halaman baru dan upload media
  4. Restart Nginx
    • Lakukan ini ketika kamu sudah melakukan uji coba namun belum ada perubahan.
    • Restart Nginx bisa kamu lakukan dengan pergi ke menu Admin Area, lalu ke tab Instances di sebelah kirim, kemudia klik restart pada Nginx

Kesimpulan

Konfigurasi Nginx bawaan CloudPanel belum bisa di andalkan untuk keperluan instalasi WordPress di subdirectory, maka kita perlu melakukan penyesuaikan sedikit.

Namun untuk urusan instalasi di subdomain hingga multisite, ini ada control panel gratis yang powerful.

Dengan menambahkan blok location /blog/ pada posisi yang benar di file konfigurasi, setelah penetapan server_name dan sebelum aturan location global, kamu dapat memastikan bahwa:

  • Permintaan ke subdirectory diproses dengan benar.
  • Fitur permalink (termasuk %postname%) berjalan optimal.
  • Fitur add media dan publish artikel tidak terganggu.

Semoga panduan ini membantu kamu dan banyak pengguna CloudPanel lain yang mengalami kendala serupa. Selamat mencoba dan semoga sukses!

Copyright © 2025 Yudhavro