Pada artikel sebelumnya kamu telah berhasil menginstall WordPress di Server VPS. Masalah setelah install WordPress adalah kamu belum bisa mengupload theme dan plugin. Tidak perlu kuatir, kita akan memperbaiki hal itu di artikel ini
Artikel ini adalah lanjutan dari artikel sebelumnya tentang cara menginstall WordPress di server VPS. Masalah tidak bisa upload theme atau plugin disebabkan oleh hak akses file wordpress.
Berdasarkan rekomendasi dari WordPress, hak akses untuk folder adalah 755 dan hak akses untuk file adalah 644. Saya akan membahas tentang arti angka-angka itu di artikel lain. Untuk saat ini, terima saja angka itu apa adanya 🙂 . Baiklah, kita akan mengikuti rekomendasi dari WordPress tentang hak akses. Caranya sebagai berikut.
- Login ke server VPS dengan user anggota
- Buat user baru dengan nama wp-user
$ sudo adduser wp-user
saat akan di tanya password, jangan isi password apapun langsung tekan Enter. Karena kita tidak ingin wp-user mempunyai password.
wp-user adalah user yang akan kita berikan hak akses terhadap semua file wordpress. Kamu bisa menggantinya dengan nama lain. - Pindah ke direktori root wordpress
$ cd /usr/share/nginx/html
Kemudian tampilkan semua file dalam direktori itu
$ ls -l - Rubah semua kepemilikan file wordpress ke wp-user
$ sudo chown -R wp-user:wp-user /usr/share/nginx/html
Kemudian tampilkan kembali file dengan perintah ls -l. Hasilnya akan seperti gambar di bawah ini.
- Rubah permission file menjadi 644 dan folder 755. File wp-config.php menjadi 660
$ sudo find . -type f -exec chmod 644 {} +
$ sudo find . -type d -exec chmod 755 {} +
$ sudo chmod 600 wp-config.php
- Pindah ke member anggota ke member wp-user
$ sudo su - wp-user
- Buatlah key ssh
$ ssh-keygen -t rsa -b 4096
akan muncul pertanyaan, dimana akan menyimpan key tesebut. Simpanlah di /home/wp-user/wp_rsa
akan muncul pertanyaan, untuk memasukkan passphrase. Langsung tekan Enter yang artinya tanpa passphrase - Keluar dari member wp-user ke member anggota
$ exit
- Pastikan kamu masih di folder /usr/share/nginx/html
$ pwd
hasilnya adalah /usr/share/nginx/html
- SSH key telah di simpan di folder /home/wp-user/. Rubahlah semua grup file dalam folder itu menjadi grup wp-user.
$ sudo chown wp-user:wp-user /home/wp-user/wp_rsa*
kemudian rubah akses file agar hanya pemilik file dan member dalam grup www-data bisa mengakses file tersebut
$ sudo chmod 0600 /home/wp-user/wp_rsa*
- Buatlah folder .ssh di direktori /home/wp-user
$ sudo mkdir /home/wp-user/.ssh
Rubah kepemilikan folder .ssh menjadi milik wp-user
$ sudo chown wp-user:wp-user /home/wp-user/.ssh
Rubah akses terhadap folder .ssh yaitu hanya wp-user saja yang mendapatkan akses penuh folder tersebut
$ sudo chmod 0700 /home/wp-user/.ssh/
- Copy public key wp_rsa.pub dari folder /home/wp-user ke folder /home/wp-user/.ssh
$ sudo cp /home/wp-user/wp_rsa.pub /home/wp-user/.ssh/authorized_keys
- Rubah kepemilikan public key tersebut menjadi milik wp-user
$ sudo chown wp-user:wp-user /home/wp-user/.ssh/authorized_keys
Install PHP SSH Extention
Agar wordpress bisa menggunakan SSH key di atas, maka kita perlu menginstall PHP extention
- Install PHP SSH extention
$ sudo apt-get update
$ sudo apt-get install php5-dev libssh2-1-dev libssh2-php php5-gd
- Edit file wp-config.php
$ sudo nano /usr/share/nginx/html/wp-config.php
Pada bagian aling akhir file, tambahkan kode berikut
define('FTP_PUBKEY','/home/wp-user/wp_rsa.pub'); define('FTP_PRIKEY','/home/wp-user/wp_rsa'); define('FTP_USER','wp-user'); define('FTP_PASS',''); define('FTP_HOST','127.0.0.1:22');
Keluar dan simpan file tersebut.
- Restart nginx
$ sudo service nginx restart
Mencoba Koneksi SSH Pada WordPress
Sekarang saatnya mencoba koneksi SSH yang telah di buat di atas. Caranya sederhana, kita coba untuk menginstall plugin dan theme
- Masuk ke dashboard > Plugins > Add New
- Pilih plugin yang akan di install. Misalnya All in One SEO Pack. Klik tombol install
- Akan muncul tambahan koneksi ssh seperti gambar di bawah ini
- Scroll ke bawah dan klik procedd maka proses instalasi akan berjalan
- Plugin All in One SEO pack berhasil di install
- Sekarang cobalah install theme melalui Dashboard > Themes > Add New. Pilih theme, kemudian install. Seharusnya berjalan mulus tanpa hambatan.
Mengganti User dan Grup PHP
Jika kamu mencoba mengedit theme melalui Dashboard > Appearance > Editor maka tidak akan muncul tombol update untuk menyimpan perubahan. Terdapat informasi dari wordpress seperti gambar di bawah

Di situ disebutkan, bahwa kamu perlu hak akses untuk menyimpan perubahan. Cara untuk memperbaikinya adalah sebagai berikut
- Buatlah file kosong dengan nama info.php
$ sudo nano /usr/share/nginx/html/info.php
Ketiklah kode dibawah ini
<?php phpinfo(); ?>
Simpan file tersebut
- Buka file tersebut dengan browser http://nama-domain-atau-ip-address/info.php
- Pada bagian environment terlihat user yang menjalankan PHP adalah www-data
- Rubah user tersebut menjadi wp-user
$ sudo nano /etc/php5/fpm/pool.d/www.conf
Untuk PHP 7.2 dan Ubuntu 18, file http://www.conf terletak di
/etc/php/7.2/fpm/pool.d/www.conf
Cari
user = www-data group = www-data
Rubah menjadi
user = wp-user group = wp-user
simpan file tersebut
- Restart kembali PHP
$ sudo service php5-fpm restart
- Reload kembali info.php di browser dan lihat di bagian environment, user php telah berubah menjadi wp-user
- Cek kembali apakah theme file bisa di edit melalui Dashboard > Appearance > Editor
- Hapus file info.php
$ sudo rm /usr/share/nginx/html/info.php
Sekarang, wordpress milikmu telah memiliki pembagian hak akses yang sesuai denga rekomendasi WordPress. Tapi, mengatur hak akses adalah langkah awal untuk meningkatkan keamanan blog. Cara untuk lebih meningkatkan keamanan Wordrpress akan dibahas pada artikel terpisah.