It is hard for us sons of the Machine Age to remember that there is no power apart from God. Whether physical, intellectual, moral or spiritual, power is contained in God, flows out from Him and returns to Him again. - A.W.Tozer
Bible Study

Kumpulan Bahan Belajar Alkitab dalam format file pdf.

Computer & Internet

Semua tips komputer dan internet yang wajib untuk diketahui

Download

Wallpaper, Clipart, semua yang gratis ada di sini.

Jokes

Tempat melepas penat dengan tertawa.

Renungan

Tempat merenungkan kebaikan dan kasih setia Tuhan.

Home » Computer & Internet

Panduan Backup-Restore di Joomla

Submitted by riel on 08/10/2009 – 12:23 PM | 758 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Panduan Backup-Restore di Joomla
Melalui panduan ini, saya ingin membagikan sedikit pengalaman dalam hal backup dan restore (cara manual) situs berbasis Joomla dengan bantuan JoomlaPack. Dengan catatan, panduan ini saya praktekkan di shared hosting (tanpa shell access) yang menjalankan PHP 5.2.9, mySQL 5.0.81-community, Joomla 1.5.14, dan JoomlaPack Plus 2.3.3.

Mari kita mulai dari contoh kasus. Selama ini, portal ‘Berita-Terbaik.com’ yang berbasis Joomla di-update dengan rata-rata 100 artikel setiap harinya. Ada beberapa komponen, module, dan plugin yang lumayan rumit dan butuh waktu banyak untuk mengkonfigurasinya agar bisa digunakan sesuai kebutuhan. Suatu kali situs ‘Berita-Terbaik.com’ diserang oleh hacker jahat. Beberapa tabel dalam database mySQL dihapus dan diganti. File-file Joomla di server ikut dihapus. Akibatnya situs tidak bisa lagi dibuka.

Untunglah, ulah hacker ini sudah saya antisipasi dengan membackup isi situs (semua file/direktori Joomla + database) dengan JoomlaPack secara rutin. Saya sempat mencoba me-restore situs yang rusak itu via JoomlaPack namun gagal dengan beberapa alasan. Akhirnya saya mencoba dengan cara manual dan berhasil dengan sangat baik.

Bagi yang belum tahu, JoomlaPack adalah komponen Joomla yang sangat terkenal dan banyak digunakan untuk mem-backup website berbasis Joomla. Meski komponen ini bersifat non-commercial alias gratis, fungsionalitas yang ditawarkannya sangat bagus yaitu dapat mem-backup seluruh file + direktori + database sebuah website menjadi 1 buah file yang terkompresi (Mis. ZIP, JPA). Komponen ini berjalan secara native di Joomla 1.5 dan Joomla 1.0. Apabila situs menjumpai masalah, JoomlaPack bisa digunakan untuk me-restore (mengembalikan) situs tersebut ke keadaan semula.

# BACKUP RUTIN

Dalam panduan ini, saya menggunakan JoomlaPack Plus 2.3.3 (http://joomlapack.net) di atas Joomla 1.5.14. Ada beberapa opsi dari JoomlaPack yang selalu saya pastikan terisi/terpilih dengan benar (versi saya loh).

  • Output Directory. Demi faktor keamanan, semua file backup tidak saya simpan di dalam direktori www (atau subdirektori di bawahnya). Saya menaruh file backup di luar www. Kalau alamat root www situs ‘Berita-Terbaik.com’ adalah /home/berita-terbaik/www, maka file backup saya simpan dalam direktori ‘backup’ yang berlokasi di /home/berita-terbaik/backup (Catatan: setelah di-save, JoomlaPack akan mengubahnya menjadi [ROOTPARENT]/backup). Dengan menaruh file backup di luar direktori www, tidak ada yang bisa mengaksesnya kecuali saya sendiri.

    COMMON SETTINGS
    JoomlaPack Common Settings Basic Option

    JoomlaPack Common Settings Frontend Option

  • Backup Type. Saya ingin JoomlaPack mem-backup total situs ‘Berita-Terbaik.com’. Oleh sebab itu, saya pilih opsi ‘Full site’ (files and databases)
    Joomla Pack Profile Settings Basic Option
  • Archiver engine. Agar file backup lebih kompatibel dengan JoomlaPack dan sistem berbasis Windows, pada opsi Archiver engine, saya memilih ‘JPA JoomlaPack Archive’.
    Joomla Pack Profile Settings Advanced Option
  • Untuk opsi-opsi lainnya, tidak ada yang diubah (setting default).
  • Setelah yakin konfigurasi JoomlaPack sesuai dengan ketentuan di atas, saya secara rutin melakukan backup sekali sehari dengan memilih opsi ‘Backup Now’.
    JoomlaPack Backup Progress Window

* Catatan: Sebelum mem-backup, saya membersihkan cache yang disimpan Joomla terlebih dahulu dengan harapan ukuran file backup bisa dikurangi. Cara membersihkan cache Joomla: Masuk ke Joomla backend (administrator) lalu pilih Tools –> Clean Cache –> Centang semua opsi –> Delete.

# RESTORE SITUS DAN ATAU DATABASE

Apa yang dikhawatirkan oleh saya selama ini (skenario terburuk) akhirnya terjadi juga. Situs ‘Berita-Terbaik.com’ yang makin populer mulai diserang oleh orang-orang yang tidak bertanggung jawab. Seketat-ketatnya keamanan yang sudah dibuat, tetap saja ada satu dua hacker yang berhasil menembus sistem keamanan. Akibatnya, beberapa tabel dalam database dihapus termasuk sebagian file-file di Joomla. Saya tidak mau panik karena saya tahu cara me-restore (mengembalikan) situs yang dirusak itu ke keadaan semula.

Berdasarkan sejumlah pengalaman menggunakan JoomlaPack, saya lebih suka me-restore situs yang rusak itu secara manual karena me-restore via JoomlaPack selalu menghadapi beberapa masalah. Pertama, masalah file/directory permission. Sebelum melakukan restore, saya harus mengubah attributes root (www) dan semua subdirektori di bawahnya – di sinilah file/direktori Joomla ditaruh – menjadi 777 (rwx-rwx-rwx) agar JoomlaPack bisa mengembalikan file-file yang di-backup ke dalamnya. Kalau tidak, pesan error akan muncul ‘Error deploying restoration script. Make sure your site’s root has adequate permissions.’

Kedua, setelah restore berhasil dilakukan JoomlaPack, owner file/direktori Joomla berubah menjadi ‘99′ (apache). Ini artinya, saya tidak bisa mengedit atau menghapus file/direktori Joomla sebelum mengembalikan owner dari 99 ke user sebelumnya (dalam hal ini user ‘berita-terbaik’). Mau tidak mau, saya harus menghubungi hosting provider dan meminta mereka mengubah owner semua file/direktori di bawah folder www menjadi milik user ‘berita-terbaik’.

Ketiga, proses restore selalu ‘hang’ di tengah jalan. Saat sampai pada tahap restore database – Joomla kembali dalam installation mode – injeksi database backup ke mySQL selalu gagal. Alasannya, situs ‘Berita-Terbaik.com’ masih di-hosting di shared server sehingga proses restore database (ukuran joomla.sql yang terlalu besar) dihentikan oleh server karena melampaui memory/time limit. Alasan lainnya mengapa saya lebih suka cara manual – meski lebih merepotkan – karena saya bisa yakin kalau semua file/direktori/database sudah benar-benar kembali ke tempatnya semula.

RESTORE MANUAL

Berikut ini langkah-langkah yang saya ambil saat me-restore situs berbasis Joomla termasuk databasenya secara manual. Soal mana yang lebih dulu, me-restore file/direktori Joomla atau database, terserah Anda.

  1. Redirect Sementara ke Halaman Web Tertentu. Sebelum proses restore (upgrade, maintenance, dsb) dimulai, pengunjung perlu di-redirect ke halaman tertentu (mis, perbaikan.html, letaknya di web root) yang memberitahukan kalau situs ‘Berita-Terbaik.com’ sedang dalam perbaikan. Redirect ini saya lakukan via file .htaccess. Berikut contoh kode-nya:
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/perbaikan.html$
    #####################################################
    # Since you are going to perform the upgrade, you have to able to browse the site.
    # So you have to exclude your IP in the .htaccess file.
    # Now you have to add a line in the .htaccess file as below:
    # Please change the fake ip (888.888.888.888) to your own IP
    #####################################################
    RewriteCond %{REMOTE_ADDR} !^888\.888\.888\.888$
    RewriteRule $ /perbaikan.html [R=302,L]

  2. Menyiapkan File/Database yang akan di-Restore.
    • Download File Backup yang dihasilkan JoomlaPack ke komputer. File backup (mis. site-www.berita-terbaik.com-20090921-020555.jpa) yang dihasilkan oleh JoomlaPack (tersimpan di server) di-download ke komputer untuk di-ekstrak.
    • Ekstrak File Backup. File backup jenis JPA tidak bisa di-ekstrak dengan program Winzip/Winrar namun harus dengan program khusus. Penyedia JoomlaPack membuat program ekstrak file backup bernama JoomlaPack Native Tools 2009. Bisa didownload di http://joomlapack.net/download/ (download versi EXE Installer-nya). Setelah di-install di komputer, jalankan programnya (eXtract Wizard) lalu ikuti perintah selanjutnya.
      JoomlaPack Native Tools 2009 eXtract Wizard

  3. Me-restore Semua File/Direktori Joomla ke Server.
    • Memindahkan file/direktori Joomla yang lama ke tempat lain. Semua file/direktori Joomla selama ini ditaruh di web root (/home/berita-terbaik/www). Saya membuat sebuah folder diberi nama ‘tampung’ lalu memindahkan semua file/direktori Joomla yang lama ke dalamnya.
    • Upload semua file/direktori Joomla (hasil ekstrak) ke tempat semula di server (mis. direktori www). Coba buka folder tempat hasil ekstrak ditampung. Di situ Anda akan menemukan semua file/direktori Joomla termasuk direktori ‘installation’. Upload semua file/direktori Joomla tersebut ke server. Proses upload ini mungkin membutuhkan banyak waktu tergantung kompleksitas (joomla extensions yang terinstall) situs tersebut.

  4. Restore Database mySQL.
    1. Letak Database mySQL yang di-backup oleh JoomlaPack. File database yang di-backup JoomlaPack bisa Anda lihat di dalam folder ‘installation | sql’. Filenya diberi nama ‘joomla.sql’. File database hasil backup ini tidak bisa langsung digunakan untuk me-restore database. Kalau Anda buka file tersebut, Anda akan menemukan perintah-perintah mySQL. Yang jadi masalah, nama tabel-tabel database yang dibuat oleh JoomlaPack tidak sesuai dengan nama tabel-tabel database bawaan Joomla.
    2. Mengedit Isi File ‘joomla.sql’.
      1. Bila kita sebelumnya meng-install Joomla dengan cara standar (tidak ada yang diubah), nama tabel-tabel di database Joomla akan seperti ini (tanpa tanda kutip) `jos_banner`, ‘jos_content’, ‘jos_modules’, dsbnya. Sedangkan dalam file database backup yang dibuat oleh JoomlaPack, nama tabel-tabelnya menjadi seperti ini `#__banner`, ‘#__content’, ‘#__modules’. Perbedaannya ada dua: Pertama, ‘jos’ diganti menjadi ‘#’ ; Kedua, underscore ditambah satu lagi ‘__’.
      2. Untuk memperbaiki isi ‘joomla.sql’ ini, Anda cukup menggunakan fasilitas find and replace (Ctrl + H) di notepad (jangan gunakan Wordpad atau Word). Saya sarankan Anda menggunakan Notepad2 yang bisa di-download di http://www.flos-freeware.ch/notepad2.html. Fitur-fitur di Notepad2 lebih lengkap dan memudahkan kita setiap kali berurusan dengan file file seperti ‘joomla.sql’. Untuk Search String, masukkan ‘#_’ (tanpa tanda kutip, satu underscore). Untuk Replace, masukkan ‘jos’ (tanpa tanda kutip). Lalu klik tombol ‘Replace All’. Semua teks ‘#_’ akan diubah menjadi ‘jos’ sekaligus. Setelah itu ‘Save’.
        Find and Replace joomla.sql with Notepad2
    3. Restore Database dengan Dua Cara (pilih salah satu).

      Cara apapun yang Anda pilih, pastikan Anda terlebih dahulu menghapus (drop) semua tabel yang ada dalam database Joomla. Soalnya, dalam file ‘joomla.sql’ tidak disertakan perintah ‘DROP TABLE’. Cara menghapus (drop) semua tabel yang ada dalam database Joomla bisa Anda lihat di ‘Cara Pertama, dengan phpMyAdmin’.

      1. Cara Pertama, dengan phpMyAdmin. Me-restore database bisa dilakukan via phpMyAdmin dengan catatan, ukuran file database tidak terlalu besar. Bila sudah berukuran 2 MB ke atas sebaiknya menggunakan cara kedua agar tidak membebani server. Cara kedua juga sangat dianjurkan bagi situs yang masih di-hosting di shared server.
        • Masuk ke phpMyAdmin.
        • Masuk ke database Joomla yang akan di-restore (mis. berita_db).
        • Hapus semua tabel. Di dalam database tersebut Anda akan menemukan tabel-tabel database Joomla. Beri centang semua tabel tersebut (Check All). Pada menu ‘With Selected’ pilih ‘Drop’. Semua tabel akan terhapus dan database Joomla tersebut menjadi kosong dan siap diisi dengan file database backup.
          Joomla Database in phpMyAdmin
        • Restore Database. Klik tab ‘Import’. Pada ‘Location of the text file’, rujuk ke lokasi di mana file ‘joomla.sql’ berada. Pada ‘Character set of the file’ pilih ‘utf8′. Setelah itu, klik tombol ‘Go’. Tunggu prosesnya hingga selesai. Bila prosesnya terhenti di tengah jalan atau tidak tuntas, silakan coba cara kedua.
          Import Database via phpMyAdmin
      2. Cara Kedua, dengan bantuan BigDump. Pada dasarnya, script php bernama Big Dump dibuat untuk membantu me-restore database mySQL yang sangat besar ke database yang baru atau yang lama karena me-restore via phpMyAdmin tidak bisa dilakukan (memory/runtime limit). Big Dump ini bisa Anda download di http://www.ozerov.de/bigdump.php. Sebenarnya, di situs pembuatnya, disertakan panduan menggunakan Big Dump. Namun demi memudahkan Anda, berikut ini panduan singkatnya.
        • Buka bigdump.php di Notepad lalu pada bagian ‘Database configuration’ sesuaikan dengan konfigurasi dabatase Joomla milik Anda. (Lihat baris 38-43). Selain itu, pastikan bagian ‘$db_connection_charset’ diisi ‘utf8′ (baris ke 68, $db_connection_charset = ‘utf8′;). Ini perlu Anda lakukan agar tidak terjadi masalah dengan isi database setelah proses restore selesai.
        • Buat direktori baru di web root di server, beri nama ‘dump’.
        • Upload file bigdump.php and file database backup (joomla.sql) via FTP ke dalam direktori ‘dump’.
          Transfer file bigdump.php dan joomla.sql via FTP
        • Jalankan bigdump.php via browser (Misal, http://www.berita-terbaik.com/dump/bigdump.php). Coba perhatikan pada bagian Note. Di situ tertulis ‘The current mySQL connection charset is uft8′. Note ini perlu anda sesuaikan dengan konfigurasi $db_connection_charset yang ada di dalam file bigdump.php.
          Big Dump mySQL Dump Importer Start Page
        • Pilih file ‘joomla.sql’ yang perlu di-restore (dalam contoh ini cuma satu file) dengan meng-klik ‘Start import’. Tunggu prosesnya hingga selesai, jangan tutup browser.
          Big Dump mySQL Dump Importer Finish Page
        • PENTING: Hapus file bigdump.php dan joomla.sql dari server.
    4. Test Hasil Restore. Jika Anda me-restore Joomla ke server yang sama dimana backup juga dilakukan di server tersebut, pekerjaan me-restore berarti sudah selesai. Situs ‘Berita-Terbaik.com’ akan langsung online dan bisa dikunjungi baik front-end maupun back-end (administrator). Namun bila Anda me-restore ke server yang berbeda, Anda harus mengedit file ‘configuration.php’ agar sesuai dengan konfigurasi server tersebut. Jangan lupa pula menghapus direktori ‘installation’ dari server (bila ada), untuk menghindari pesan peringatan berikut ini:
      Joomla Warning Remove Installation Directory

  5. Selamat! Anda sukses mem-backup dan me-restore situs Joomla secara manual agar kembali seperti semula.

* Panduan ini ditulis oleh Riel, 21 September 2009 sambil menelusuri dan mendokumentasikan pengalaman di dunia Joomla yang mengasyikkan. Semoga panduan ini bermanfaat bagi para pengguna Joomla sekalian.

Popularity: 3% [?]

  • Share/Bookmark

Tulisan Terkait

5 Comments »

Leave a comment!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.