Iseng aja lagi di ajarin ame temen ngoprek Wordpress (WP) di Nginx, pengen ditambahin HTTP Authentication biar orang gak asal "nyelonong" ke halaman loginnya.
ini ane share ilmunya, semoga bermanfaat :)
Note:
>> Nama domain : domainkamu.com
>> WP directory : /var/www/domainkamu.com/public_html/
>> URL/Directory yang mau di protect:
- url: domainkamu.com/wp-admin/* --> directory: /var/www/domainkamu.com/public_html/wp-admin/*
- url: domainkamu.com/wp-login.php* --> file: /var/www/domainkamu.com/public_html/wp-login.php
===> Maksudnya tanda bintang (*) adalah sebagai wildcard aja..
>> Tanda pagar (#) : Perintah yang diketikkan
dan langkah yg selanjutnya:
1. Install htpasswd utility dari Apache. Lho ?
Tenang, menginstall paket ini gak mengambil full dependency dari server Apache. Cuma dipake buat generate password aja koq.
# sudo apt-get install apache2-utils
2. Kemudian kita buat folder aja dulu, biar lebih rapi strukturnya.
# sudo mkdir ~/.terserah_nama_foldernya
Folder .terserah_nama_foldernya (emang terserah kamu aja sih mau kasih apa nama foldernya, itu hanya contoh :D ), fungsinya untuk menyimpan file ".terserah_nama_filenya", yang nantinya akan kita generate untuk membuat password yang terenkripsi.
Di sini penamaan file dan folder kita gunakan tanda titik (.) di awal, you know laahh.. "hidden files".
3. Sekarang kita generate password pake htpasswd utility dari Apache yang udah kita install tadi. Di sini untuk pembuatan username saya pake "terserah_nama_usernya".
Lagi-lagi, emang terserah kamu aja namanya, fleksibel aja kok.
Kalau untuk "nama_direktori_user_kamu" ya tergantung username kamu yang dipakai di linux itu sendiri.
# sudo htpasswd -c /home/nama_direktori_user_kamu/.terserah_nama_foldernya/.terserah_nama_filenya terserah_nama_usernya
New password: <-- masukkan password untuk username kamu
Re-type new password: <-- masukkan kembali password untuk username kamu
Adding password for user terserah_nama_usernya
===> Lihat baik-baik, bahwa sekarang sudah ada folder ".terserah_nama_foldernya" dan berisi file ".terserah_nama_filenya".
Cek aja:
# ls -la .terserah_nama_foldernya
4. Selanjutnya kita akan setting hak milik dan akses folder dan file tersebut, agar bisa diakses oleh group www-data, dimana merupakan web server Nginx itu sendiri.
# sudo chown -R root:www-data /home/nama_direktori_user_kamu/.terserah_nama_foldernya
# sudo chmod -R 650 /home/nama_direktori_user_kamu/.terserah_nama_foldernya
5. Oke.. sekarang kita buka konfigurasi Nginx dari website kita itu.
# sudo nano /etc/nginx/sites-available/domainkamu.com
Nahh, tambahkan kira-kira di antara bagian berikut ini (yg cetak tebal).
server {
listen 80;
server_name www.domainkamu.com;
root /var/www/domainkamu.com/public_html/;
index index.php index.html;
[.....]
# Perlindungan aman url halaman login
location ~* ^/wp-login.php$ {
auth_basic "Restricted";
auth_basic_user_file /home/nama_direktori_user_kamu/.terserah_nama_foldernya/.terserah_nama_filenya;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Perlindungan aman folder wp-admin, termasuk halaman login
location ^/wp-admin/(.*)\..*$ {
auth_basic "Restricted";
auth_basic_user_file /home/nama_direktori_user_kamu/.terserah_nama_foldernya/.terserah_nama_filenya;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[.....]
}
===> Lihat baik-baik di baris ini:
fastcgi_pass 127.0.0.1:9000;
===> Sekedar catatan aja, di server saya PHP-FPM listening pake UNIX socket (biar gak overhead di TCP), jadinya kalau settingan PHP-FPM saya sama dengan kamu, maka di baris tersebut diganti menjadi seperti ini:
fastcgi_pass unix:/var/run/php5-fpm.sock;
Silahkan disesuaikan saja.. :-)
6. Finally, silahkan reload Nginx.
# sudo /etc/init.d/nginx reload
Yaaa... selesai.
Sekarang buka url halaman login wp kamu, dalam contoh ini:
domainkamu.com/wp-admin atau domainkamu.com/wp-login.php
Seharusnya sekarang kamu sudah diminta untuk mengisikan username dan passwordnya. ;-)
- Username dalam contoh ini adalah: terserah_nama_usernya
- Passwordnya?? jangan bilang lupa. Itu lho, yang tadi kamu ketik di langkah nomor 3 tadi.
sekian dan semoga bermanfaat :)
ini ane share ilmunya, semoga bermanfaat :)
Note:
>> Nama domain : domainkamu.com
>> WP directory : /var/www/domainkamu.com/public_html/
>> URL/Directory yang mau di protect:
- url: domainkamu.com/wp-admin/* --> directory: /var/www/domainkamu.com/public_html/wp-admin/*
- url: domainkamu.com/wp-login.php* --> file: /var/www/domainkamu.com/public_html/wp-login.php
===> Maksudnya tanda bintang (*) adalah sebagai wildcard aja..
>> Tanda pagar (#) : Perintah yang diketikkan
dan langkah yg selanjutnya:
1. Install htpasswd utility dari Apache. Lho ?
Tenang, menginstall paket ini gak mengambil full dependency dari server Apache. Cuma dipake buat generate password aja koq.
# sudo apt-get install apache2-utils
2. Kemudian kita buat folder aja dulu, biar lebih rapi strukturnya.
# sudo mkdir ~/.terserah_nama_foldernya
Folder .terserah_nama_foldernya (emang terserah kamu aja sih mau kasih apa nama foldernya, itu hanya contoh :D ), fungsinya untuk menyimpan file ".terserah_nama_filenya", yang nantinya akan kita generate untuk membuat password yang terenkripsi.
Di sini penamaan file dan folder kita gunakan tanda titik (.) di awal, you know laahh.. "hidden files".
3. Sekarang kita generate password pake htpasswd utility dari Apache yang udah kita install tadi. Di sini untuk pembuatan username saya pake "terserah_nama_usernya".
Lagi-lagi, emang terserah kamu aja namanya, fleksibel aja kok.
Kalau untuk "nama_direktori_user_kamu" ya tergantung username kamu yang dipakai di linux itu sendiri.
# sudo htpasswd -c /home/nama_direktori_user_kamu/.terserah_nama_foldernya/.terserah_nama_filenya terserah_nama_usernya
New password: <-- masukkan password untuk username kamu
Re-type new password: <-- masukkan kembali password untuk username kamu
Adding password for user terserah_nama_usernya
===> Lihat baik-baik, bahwa sekarang sudah ada folder ".terserah_nama_foldernya" dan berisi file ".terserah_nama_filenya".
Cek aja:
# ls -la .terserah_nama_foldernya
4. Selanjutnya kita akan setting hak milik dan akses folder dan file tersebut, agar bisa diakses oleh group www-data, dimana merupakan web server Nginx itu sendiri.
# sudo chown -R root:www-data /home/nama_direktori_user_kamu/.terserah_nama_foldernya
# sudo chmod -R 650 /home/nama_direktori_user_kamu/.terserah_nama_foldernya
5. Oke.. sekarang kita buka konfigurasi Nginx dari website kita itu.
# sudo nano /etc/nginx/sites-available/domainkamu.com
Nahh, tambahkan kira-kira di antara bagian berikut ini (yg cetak tebal).
server {
listen 80;
server_name www.domainkamu.com;
root /var/www/domainkamu.com/public_html/;
index index.php index.html;
[.....]
# Perlindungan aman url halaman login
location ~* ^/wp-login.php$ {
auth_basic "Restricted";
auth_basic_user_file /home/nama_direktori_user_kamu/.terserah_nama_foldernya/.terserah_nama_filenya;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Perlindungan aman folder wp-admin, termasuk halaman login
location ^/wp-admin/(.*)\..*$ {
auth_basic "Restricted";
auth_basic_user_file /home/nama_direktori_user_kamu/.terserah_nama_foldernya/.terserah_nama_filenya;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[.....]
}
===> Lihat baik-baik di baris ini:
fastcgi_pass 127.0.0.1:9000;
===> Sekedar catatan aja, di server saya PHP-FPM listening pake UNIX socket (biar gak overhead di TCP), jadinya kalau settingan PHP-FPM saya sama dengan kamu, maka di baris tersebut diganti menjadi seperti ini:
fastcgi_pass unix:/var/run/php5-fpm.sock;
Silahkan disesuaikan saja.. :-)
6. Finally, silahkan reload Nginx.
# sudo /etc/init.d/nginx reload
Yaaa... selesai.
Sekarang buka url halaman login wp kamu, dalam contoh ini:
domainkamu.com/wp-admin atau domainkamu.com/wp-login.php
Seharusnya sekarang kamu sudah diminta untuk mengisikan username dan passwordnya. ;-)
- Username dalam contoh ini adalah: terserah_nama_usernya
- Passwordnya?? jangan bilang lupa. Itu lho, yang tadi kamu ketik di langkah nomor 3 tadi.
sekian dan semoga bermanfaat :)
0 komentar:
Posting Komentar