Kenapa “Pihak WordPress” masih belum memperbaiki error code bahkan hanya sekedar menutupi error code yang muncul username cPanel kita ? Jawabannya mungkin karena pihak wordpress sengaja tidak memperbaiki kesalahan tersebut agar kita “Selaku Pengguna CMS Open Source” dapat belajar sedikit demi sedikit isi dari source codenya & menambal bugs pada CMS tersebut bahkan klo kita sanggup, Kita juga disarankan agar dapat mengembangkannya.
Lalu apa yang harus kita lakukan pertama kalinya setelah selesai menginstall WordPress ? Oke, ini akan saya tulis sebagai catatan saya supaya kelak saya lupa & membutuhkannya, Saya dapat melihat & membacanya di catatan sendiri tanpa harus Gugling dulu mencari artikel yang sesuai dengan kebutuhan saya sekarang.
Step Pertama “Mengamankan Direktori WordPress”
Pertama-tama, masuk ke direktori WordPress sesuai dengan hosting yang anda pakai. Bisa menggunakan Webdisk, cPanel File Manager, VistaPanel File Manager, PleskPanel File Manager, Bahkan Bisa juga dengan menggunakan FTP. Setelah masuk ke direktori WordPress yang anda install, Silahkan cari file yang bernama wp-settings.php. Masukkan error_reporting(0); setelah kode <?php & simpan perubahan.
<?php
error_reporting(0);
Kemudian amankan juga direktori WordPress pada folder wp-admin. Caranya masih sama seperti cara di atas hanya dengan menambahkan error_reporting(0); setelah kode <?php. File yang harus di tambahkan kode tersebut adalah admin-functions.php, menu.php, menu-header.php, options-head.php, & upgrade-functions.php.
Lanjut ke Direktori WordPress pada folder wp-admin/includes. Di direktori ini banyak sekali bugs yang harus di tambal dengan cara di atas. Namun, saya punya alternatif lain untuk menambal bugs pada folder ini yang lebih cepat tanpa mengedit satu persatu file yang mengandung pesan kesalahan. Cara alternatif itu adalah membuat file .htaccess pada direktori tersebut, Lalu isikan file .htaccess itu dengan beberapa baris kode di bawah ini…
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_reporting -1
php_value log_errors_max_len 0
Setelah melakukan cara di atas, berarti secara tidak langsung anda menambal satu persatu bugs yang ada pada direktori wp-admin/includes. Jika anda ingin memastikan ini bekerja atau tidak, silahkan test dulu dengan mengetikkan alamat blog wordpress anda di address bar browser anda. Contohnya http://www.nurulimam.com/wp-admin/includes/nama-file.php. Nama file yang mengandung kesalahan bisa di lihat di bawah ini …
admin.php
class-ftp-pure.php
class-ftp-sockets.php
class-ftp.php
class-wp-filesystem-direct.php
class-wp-filesystem-ftpext.php
class-wp-filesystem-ftpsockets.php
class-wp-filesystem-ssh2.php
comment.php
continents-cities.php
file.php
media.php
misc.php
plugin-install.php
plugin.php
template.php
theme-install.php
update.php
upgrade.php
user.php
Langkah selanjutnya adalah mengamankan direktori WordPress pada folder wp-includes. Di folder ini juga banyak sekali file yang mengandung pesan kesalahan yang harus di tambal. Pesan kesalahan itu bisa di temui jika anda mengakses file di bawah ini …
canonical.php
class-feed.php
class.wp-scripts.php
class.wp-styles.php
comment-template.php
default-embeds.php
default-filters.php
default-widgets.php
feed-atom-comments.php
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php
general-template.php
kses.php
media.php
post.php
registration-functions.php
rss-functions.php
rss.php
script-loader.php
shortcodes.php
taxonomy.php
template-loader.php
theme.php
update.php
vars.php
wp-db.php
user.php
Dari pada anda menambal satu persatu file yang cukup banyak, Lebih baik jika anda menggunakan trick redirect dengan .htaccess. Caranya mudah sekali, tinggal anda buat satu file bernama .htaccess & masukkan kode di bawah ini…
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule .*\.php$ http://namadomainanda [L]
Untuk cara simplenya tambahkan kode ini_set(“display_errors”, 0); error_reporting(0); pada wp-config.php. Itu sudah dapat menutupi pesan kesalahan pada semua direktori WordPress. Lalu apa lagi yang harus dilakukan setelah menerapkan cara di atas ?
Step Ke-2 “Mengamankan wp-config.php”
Langkah pertama, Silahkan backup dulu file wp-config.php yang ada di root directory WordPress anda entah disimpan di komputer maupun di web hosting anda. Itu semata-mata hanya untuk menjaga-jaga agar kelak terjadinya kesalahan, anda masih dapat mengembalikannya seperti semula. Setelah itu buat file dengan nama apa saja (yang terpenting file itu dengan ekstensi .php), Lalu simpan di direktori yang tidak terbaca oleh public (lebih tepatnya di direktori paling atas) dengan contoh saya membuatnya di atas direktori www / public. Isikan beberapa baris kode pada file tersebut dengan file konfigurasi wordpress anda. Contohnya bisa di lihat di bawah ini…
<?php
ini_set(“display_errors”, 0);
error_reporting(0);
define(‘DB_NAME’, ‘nama_database’
;
define(‘DB_USER’, ‘user_database’
;
define(‘DB_PASSWORD’, ‘pass_database’
;
define(‘DB_HOST’, ‘localhost’
;
define(‘DB_CHARSET’, ‘utf8’
;
define(‘DB_COLLATE’, ”
;
$table_prefix = ‘tablewp_’;
?>
Setelah selesai dibuat, panggil file tadi dengan cara menuliskan include(‘/home/nurulima/secure.php’
; pada wp-config.php. Contoh gampangnya bisa anda lihat di bawah ini …
<?php
ini_set(“display_errors”, 0);
error_reporting(0);
include(‘/home/usernamecpanelanda/nama-file-yang-tadi-dibuat.php’
;
define(‘AUTH_KEY’, ‘thadm59wnk3wxmmucut9rxgrttxfpeogtovdv25tygc0otijahsqg81keluwiegt’
;
define(‘SECURE_AUTH_KEY’, ‘hu5dtxuruhpukph3tip2t4hcgmdbreb0ejg0vbylyrrdc0u7zann86uye6poh7es’
;
define(‘LOGGED_IN_KEY’, ‘1iclqx6onlrvm2czsxjx6bdppld2k69wyat8t8sbkbncjuhmwovtgwqvznmrbijt’
;
define(‘NONCE_KEY’, ‘8i4agtcsdqycydkqsaug2ztxhqs2nilttrrpsivadqx2ev2rcgichp9u03n4nsrl’
;
define(‘AUTH_SALT’, ‘ogom5nc4kfknqeo5iesa9mypx0tkadprzlp8ixo3pqqq9x9ed7khgguxyxjzoxou’
;
define(‘SECURE_AUTH_SALT’, ‘geb6dbtcn4kveneltnffxe2nepjtv0mqtob0x1vdjlfae32dkcwv0tvhq0lugpoo’
;
define(‘LOGGED_IN_SALT’, ‘o4rgbyi9hjijdydsvsf5btayqmigqnpivjftctof6tonm7mvvlgbsyvzvca9lupy’
;
define(‘NONCE_SALT’, ‘m4qfqrxwy6dwpl89wy88xkqclvredjyr3gkspjgib3vu54p14y9kggkzzy6yqutu’
;
define(‘WPLANG’, ‘en’
;
define(‘WP_DEBUG’, false);
define(‘WP_CACHE’, true);
define(‘WP_POST_REVISIONS’, false);
define(‘WP_ALLOW_REPAIR’, false);
define(‘WP_HOME’, ‘http://namadomainanda’
;
define(‘WP_SITEURL’, ‘http://namadomainanda’
;
define(‘COOKIE_DOMAIN’, ‘namadomainanda’
;
define(‘AUTOSAVE_INTERVAL’, 300);
if ( !defined(‘ABSPATH’
)
define(‘ABSPATH’, dirname(__FILE__) . ‘/’
;
require_once(ABSPATH . ‘wp-settings.php’
;
Step Ke-3 “Mengamankan Form Login WordPress”
Cara ini lumayan cukup ampuh untuk menghalangi “Sang Cracker” menguasai kontrol admin blog WordPress anda meskipun cracker sudah berhasil membobol username & password anda. Oke, Rename wp-login.php dengan nama apapun. Jika anda merename file tersebut, maka anda juga hanya bisa masuk melalui http://namadomainanda/nama-file-yang-direname.php. Eit, tunggu dulu ! Itu belum selesai, Lanjutkan dengan mengedit file tadi & Replace kode wp-login.php yang ada di dalamnya dengan nama-file-yang-direname.php & simpan perubahan.
Step Ke-4 “Keamanan Extra Pada .htaccess”
Keamanan extra yang harus dilakukan adalah dengan cara menambahkan kode di bawah ini kedalam file .htaccess. Edit file .htaccess yang ada di root direktori wordpress anda. Lalu tambahkan kode dibawah ini tepat pada paling teratas (Line Pertama).
<files .htaccess>
order allow,deny
deny from all
</files>
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (casper|cmsworldmap|diavol|dotbot) keep_out
SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
SetEnvIfNoCase User-Agent (libwww|planetwork|pycurl|skygrid) keep_out
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=keep_out
</Limit>
</IfModule>
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
Options All -indexes
ServerSignature Off
LimitRequestBody 10240000
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
RewriteCond %{QUERY_STRING} !error
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(wp-includes|wp-content)/(.+)\.php\ HTTP/
RewriteRule .* – [F]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (environ|localhost|mosconfig|scanner) [NC,OR]
RewriteCond %{QUERY_STRING} (menu|mod|path|tag)\=\.?/? [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} echo.*kae [NC,OR]
RewriteCond %{QUERY_STRING} etc/passwd [NC,OR]
RewriteCond %{QUERY_STRING} \=\\%27$ [NC,OR]
RewriteCond %{QUERY_STRING} \=\\\’$ [NC,OR]
RewriteCond %{QUERY_STRING} \.\./ [NC,OR]
RewriteCond %{QUERY_STRING} \: [NC,OR]
RewriteCond %{QUERY_STRING} \[ [NC,OR]
RewriteCond %{QUERY_STRING} \] [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%22|%27|%3C|%3E|%5C|%7B|%7C).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]
RewriteRule ^(.*)$ – [F,L]
</IfModule>
Step Ke-5 “Memperbaiki Error Pada Feed WordPress”
Terkadang jika kita menginstall Theme & Plugin, Kita tidak tahu berjalan / tidaknya Feed WordPress kita. Itu dikarenakan adanya kesalahan penulisan pada kode yang terdapat pada plugin & theme kita. Biasanya masalah yang muncul adalah penulisan space pada kode <?php. Bagaimana cara memperbaikinya ? Apa kita perlu memeriksa satu persatu kode yang salah ? Jika hhanya bertujuan untuk memperbaiki kesalahan memparsing feed, lebih baik tambahkan saja fungsi pembersihan kode yang salah tersebut pada file yang terletak pada directory wp-includes. File tersebut bisa dilihat dibawah ini…
feed-atom.php
feed-atom-comments.php
feed-rdf.php
feed-rss2.php
feed-rss2-comments.php
feed-rss.php
Edit file-file di atas & tambahkan kode dibawah ini tepat di atas kode echo ‘<?xml version=”1.0″ encoding=”‘.get_option(‘blog_charset’
.'”?’.’>’; ?>. Kode yang harus di tambahkan bisa di lihat dibawah ini…
$out = ob_get_contents();
$out = str_replace(array(“\n”, “\r”, “\t”, ” “
, “”, $input);
ob_end_clean();
Step Ke-6 “Menambahkan Robots.txt”
Fungsi dari penambahan robots.txt ini selain memberitahukan “Search Engine” untuk menentukan mana yang boleh di index & mana yang tidak boleh di index, robots.txt ini juga berperan agar search engine tidak menghabiskan bandwith kita untuk mengindex yang kita tentukan saja. Buat robots.txt di direktori wordpress anda & isikan file robots.txt dengan yang saya tuliskan dibawah ini …
User-agent: Googlebot
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.wmv$
Disallow: /*.cgi$
Disallow: /*.xhtml$
Disallow: /*?*
Disallow: /*?
Disallow: /*?postcomment=true
Disallow: /*?comments=true
Disallow: /*page=
Disallow: /*?page=
Disallow: /*pg=
Disallow: /?pg=
User-agent: duggmirror
Disallow: /
User-agent: ia_archiver
Disallow: /
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-register.php
Disallow: /trackback/
Disallow: /feed/
Sitemap: http://domainanda/sitemap.xml
Sitemap: http://domainanda/sitemap.xml.gz
Step Ke-7 “Menghapus File Yang Tidak Penting”
Pertama, Hapuslah Direktori wp-content/languages. Ini memungkinkan agar anda tidak mengost file terlalu banyak di web hosting anda. ini sangat di anjurkan bagi yang memiliki kapasitas disk space yang terbilang sangat minim. Jika anda menghapus semua file yang ada di direktori wp-content/languages, berarti anda sudah menghemat disk space anda dengan menghapus file yang berukuran kurang lebih 20 MB.
Kedua, Hapuslah File readme.html. Ini dilakukan agar sang Cracker tidak mengetahui Versi WordPress yang kita pakai sekarang. Terakhir hapuslah file install.php pada direktori wp-admin. Ini juga banyak cracker yang menembus celah keamanan melalui bugs pada file install.php.
Step Ke-8 “Pilihan Konfigurasi Permalinks”
Konfigurasi permalinks pada wordpress itu sangat penting, Bukan hanya berefek pada “SEO” semata namun juga dapat sedikit mengurangi dari kerentanan keamanan blog anda. Defaultnya wordpress memberikan permalinks seperti http://domainanda/?p=123. Konfigurasi permalinks yang biasa saya pakai ada 3 macam.
Pertama, saya menggunakan Custom Structure & di ikuti dengan /%year%/%monthnum%/%postname%.html yang akan menjadi http://domainanda/2011/10/judul-dari-artikel-anda.html. Ini Biasa saya pakai jika WordPress berhubungan sangat dekat dengan Mesin Blogger.
Kedua, saya biasa menggunakan Custom Structure & di ikuti dengan /%year%/%postname%/ yang akan menjadi http://domainanda/2011/judul-dari-artikel-anda/. Ini saya pakai jika tidak ada hubungan antar CMS yang saya pakai.
Terakhir, saya menggunakan Day & Name /%year%/%monthnum%/%day%/%postname%/ yang akan menjadi http://localhost/blog/2011/10/25/judul-dari-artikel-anda/. Ini yang saya lakukan jika blog berhubungan dengan Toto “Engine Blog Yang Saya Pakai Sekarang”. Jadi jika suatu saat saya memindahkan blog ini ke WordPress / sebaliknya, Saya tidak merasa kesulitan dengan berkurangnya Dead Link.
Step Ke-9 “Mengisntall Plugin Yang Perlu Saja”
Jangan isntall plugin yang berlebihan, itu dapat memberatkan kinerja server karena banyak memakan Resources. Install Plugin yang perlu saja. Plugin yang Ringan & Perlu Digunakan adalah Block Bad Query & Google Sitemap Generator. Adapun All in One SEO Pack & W3 Total Cache itu tidak di anjurkan pada Shared Hosting.
Step Ke-10 “Menghapus Post & Pages Default”
Setelah 9 Step diatas sudah dilakukan, Saatnya kita melangkah ke step yang terakhir. Defaultnya WordPress memberikan sample post, pages, links, & category. Nah, Anda hapus semuanya & Keep Posting. Posting sesuka hatimu ! Jangan merasa terbebani dengan waktu & topic untuk update postingnya.
Demikianlah catatan saya pribadi untuk mengingatkan saya ketika pertama kali menginstall WordPress. Dengan adanya catatan ini, saya pribadi merasa terbantu untuk mengingatnya. Semoga catatan ini dapat bermanfaat untuk siapapun yang membacanya.
sumber : http://www.nurulimam.com/article/hal-yang-harus-di-lakukan-setelah-install-wordpress