≡ Menu

Membangun Situs Web Berbasis WordPress dengan CentminMod

Sebelumnya anda sudah membaca tutorial saya, cara membangun web server Nginx dengan CentminMod. Nah, di kesempatan ini saya akan berbagi tutorial bagaimana meng-install WordPress di server yang baru saja anda buat. Sengaja saya memilih WordPress terlebih dahulu walaupun banyak CMS (Content Management System) lainnya yang juga powerful seperti Drupal, Joomla dan lainnya mengingat WordPress adalah CMS terpopuler saat ini. Di tutorial ini saya asumsikan anda sudah menyiapkan web server menggunakan CentminMod.

Pengaturan Database MySQL

Aktifkan fitur InnoDB MySQL Engine and Table terlebih dahulu. Buka my.cnf dengan editor ‘nano’. Biasanya lokasinya di /etc/my.cnf. Periksa terlebih dahulu apakah InnoDB sudah aktif apa belum. Jika belum, maka ubah dan aktifkan dengan baris berikut:

innodb=ON
default-storage-engine = InnoDB

Untuk mengubah jenis set karakter dan kolasi database anda secara otomatis setiap membuat database baru anda bisa menambahkan baris berikut di bawah [mysqld] :

character-set-server=utf8_unicode_ci

Restart server MYSQL anda dengan perintah berikut:

service mysql restart

Atau dengan shortcut perintah bawaan CentminMod:

mysqlrestart

Mengelola Database

Untuk mengelola database anda, ada beberapa tool  gratis yang bisa anda gunakan seperti phpMyAdminHeidiSQL atau Adminer. Saya sendiri merekomendasikan untuk menggunakan Adminer. Kenapa Adminer? Berikut beberapa alasannya:

  1. Memiliki fungsi yang sama seperti phpMyAdmin.
  2. Lebih cepat dan ringan.
  3. Simpel dan sederhana. Anda dapat mengelola database hanya dengan mengunggah satu berkas PHP saja.
  4. Tampilan mudah dimengerti.

Adminer
Yang perlu anda lakukan adalah mengunjungi Adminer dan unduh versi terbaru. Untuk keamanan, berkas adminer yang anda unduh tadi di-rename terlebih dahulu contohnya 4dm1n3r.php. Langkah selanjutnya adalah mengunggah berkas tersebut ke direktori utama server nginx anda. Secara default, lokasinya adalah:

/usr/local/nginx/html

Setelah berkas berhasil diunggah, buka browser anda dan ketikkan IP server diikuti nama berkas adminer tadi, contohnya http://172.78.233.23/4adm1n3r.php. Maka akan muncul tampilan halaman depan seperti ini:

Adminer Login Page
Masukkan pengguna ‘root’ dan sandi yang sudah anda simpan ketika selesai instalasi CentminMod. Jika anda lupa, anda bisa mengetikkan perintah berikut di PuTTY atau SSH Client:

cat ~/.my.cnf

Maka akan tampil sandi atau password user ‘root’ MySQL anda. Setelah anda memasukkan detil yang dibutuhkan selanjutnya akan tampil halaman administrasi adminer. Silahkan anda buat database baru, misalnya ‘wordpress’.

Saya juga menyarankan untuk membuat user baru MySQL anda.

Instalasi WordPress

wordpress logo

Unduh berkas instalasi WordPress terbaru di https://wordpress.org/, kemudian unggah berkasnya di path domain anda menggunakan WinSCP atau FileZilla. Saya sendiri lebih suka menggunakan WinSCP. Misalnya domain anda: domainsaya.com, maka path-nya adalah:

/home/nginx/domains/domainsaya.com/public/

Biasanya setiap membuat domain baru, ada beberapa file HTML yang otomatis di-generate oleh CentminMod. Anda hapus semua file HTML tersebut lalu anda ekstrak wordpress.zip dengan mengetikkan perintah berikut:

unzip /home/nginx/domains/domainsaya.com/public/wordpress.zip

Maka akan muncul folder wordpress. Yang harus anda lakukan adalah mengeluarkan seluruh isi folder wordpress dan memindahkannya ke root situs web anda yang dalam hal ini adalah /home/nginx/domains/domainsaya.com/public/. Untuk memulai proses pemindahan, anda bisa mengetikkan perintah berikut:

mv /home/nginx/domains/domainsaya.com/public/wordpress/{.,}* /home/nginx/domains/domainsaya.com/public/

Selesai memindahkan berkas, akses situs anda di domainsaya.com. Akan muncul tampilan instalasi WordPress. Proses instalasi tidak perlu dilanjutkan karena kita akan melakukan pengaturan server Nginx untuk domain anda.

Oh ya, jika anda mengakses situs web anda dan mendapatkan error 403 forbidden, maka direktori situs web anda perlu diganti ownership-nya ke Nginx. Anda bisa mengetikkan perintah berikut:

chown -R nginx:nginx /home/nginx/domains/domainsaya.com/public/

Pengaturan Nginx

Untuk konfigurasi Nginx domain, anda harus mengubah konfigurasi default anda. Berkas ini bisa anda edit dengan masuk ke direktorinya dengan perintah berikut:

cd /usr/local/nginx/conf/conf.d/

Kemudian untuk melihat isi folder conf.d, anda bisa mengetikkan perintah berikut:

ls -a

maka akan muncul seluruh berkas konfigurasi Nginx untuk domain anda. Untuk mengedit, gunakan editor ‘nano’ yang sudah ter-install sebelumnya.

  1. Di sini kita akan membuat konfigurasi Nginx agar bisa menjalankan fitur WordPress Permalinks. Maka tambahkan baris berikut di berkas domain config anda.
    location / {
            try_files $uri $uri/ /wordpress/index.php?q=$request_uri;
            }

    Konfigurasi di atas berlaku jika meng-install WordPress di ‘root’ direktori situs web anda. Jika anda meng-install di dalam subfolder, contohnya: wordpress, maka menjadi location /wordpress.

  2. Selanjutnya kita akan membuat berkas konfigurasi untuk mengamankan WordPress. Buat sebuah berkas dengan nama wpsecure.conf dengan path seperti ini:  /usr/local/nginx/conf/wpsecure.conf dan masukkan entri berikut:
    # Deny access to any files with a .php extension in the uploads directory
    # Works in sub-directory installs and also in multisite network
    location ~* /(?:uploads|files)/.*\.php$ {
            deny all;
    }
    
    # Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
    location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_
    {
            return 444;
    }
    
    #nocgi
    location ~* \.(pl|cgi|py|sh|lua)\$ {
            return 444;
    }
    
    #disallow
        location ~* (roundcube|webdav|smtp|http\:|soap|w00tw00t) {
            return 444;
    }
    
    location ~ /(\.|wp-config\.php|readme\.html|license\.txt) { deny all; }

    Untuk membuat berkas seperti di atas, anda bisa menggunakan ‘nano’ dengan perintah berikut:

    nano /usr/local/nginx/conf/conf.d/wpsecure.conf

    Kemudian tinggal anda copy paste entri di atas.

  3. Buat berkas konfigurasi untuk wp-admin Wordpress di /usr/local/nginx/conf/wpnocache.conf. Masukkan entri berikut:
    # Add trailing slash to */wp-admin requests.
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
  4. Kemudian tambahkan baris berikut dan try_files sehingga konfigurasi yang sudah kita buat tadi bisa dibaca oleh Nginx:
    include /usr/local/nginx/conf/wpsecure.conf;
    include /usr/local/nginx/conf/wpnocache.conf;
  5. Secara keseluruhan, bentuk konfigurasi Nginx untuk domain anda akan seperti ini:
    server {
                listen   80;
                server_name localhost;
                root   html;
    
    # limit_conn limit_per_ip 16;
    # ssi  on;
    
                location / {
    
    #       Enables directory listings when index file not found
    #       autoindex  on;
    
    #       Shows file listing times as local time
    #       autoindex_localtime on;
    
    #       Enable for vBulletin usage WITHOUT vbSEO installed
    #       try_files       $uri $uri/ /index.php;
                
                }
    
            location / {
    include /usr/local/nginx/conf/wpsecure.conf;
    include /usr/local/nginx/conf/wpnocache.conf;
    
            try_files $uri $uri/ /index.php?q=$request_uri;
            }
    
    include /usr/local/nginx/conf/staticfiles.conf;
    include /usr/local/nginx/conf/php.conf;
    include /usr/local/nginx/conf/drop.conf;
    #include /usr/local/nginx/conf/errorpage.conf;
    
           }
  6. Simpan konfigurasi anda.
  7. Restart Nginx dengan perintah:
    ngxrestart

    atau

    service nginx restart

Selesai konfigurasi Nginx, anda bisa mengakses situs web kembali dan melanjutkan proses instalasi WordPress tadi yang tertunda. Semoga tutorial ini bermanfaat, selamat mencoba!

{ 0 komentar… tambah }

Beri Komentar