"Merujuk pada informasi yang dikeluarkan oleh pihak pengembang PHP tentang kemunculan PHP 5.3.x, maka pengembangan versi 5.2.x sudah dihentikan. Di versi terbarunya ini PHP 5.3.x mengusung beberapa fitur baru di versi barunya dan pengamanan beberapa celah di versi sebelumnya." — dit

Intro

Masalah dari transisi versi PHP adalah ada cukup banyak fungsi di PHP 5.2.x yang tidak dikenali lagi di versi 5.3.x. Ini artinya para pengguna skrip PHP harus mengadakan penyesuaian fungsi yang dipakai agar situs dapat tetap berjalan sebagaimana mestinya. Jika tidak, sontak fungsi di website menjadi kacau dan menampilkan pesan error saat website diakses.

Analisa

Berkaitan dengan dentuman versi baru PHP, tersebutlah salah satu aplikasi toko online yang mengalami dampaknya secara langsung, yaitu osCommerce. Usut punya usut ternyata versi lawas aplikasi ini banyak bergantung pada fungsi register_globals dalam kondisi on. Kontan saja osCommerce langsung tumbang karena di PHP 5.3.x fungsi tersebut sudah tidak ada. Hasil akhirnya adalah tampilan situs menjadi carut-marut.

Melalui bahasan kali ini saya coba paparkan beberapa langkah untuk melakukan upgrade osCommerce ke versi terbarunya yang menurut vendor telah dilakukan berbagai penyesuaian agar dapat berfungsi di PHP 5.3.x. Berbeda dengan WordPress yang sangat mudah dalam pembaruan versinya, osCommerce terbilang agak rumit. Terlebih lagi jika sudah cukup banyak modifikasi dilakukan berkaitan dengan tampilan dan fungsi lainnya di situs.

Persiapan

Sama seperti melakukan pembaruan skrip aplikasi lainnya, langkah awal adalah doa dan suasana cukup tenang supaya bisa fokus. Artikel kali ini diasumsikan untuk pengguna cPanel, jadi semua skrip yang berkaitan dengan situsnya terletak di /home/username/public_html. Berikutnya, ikuti beberapa langkah sederhana di bawah ini.

  1. Akses File Manager cPanel Anda, lalu ubah nama direktori public_html menjadi public_html-nya.

  2. Masih dari File Manager, buatlah direktori situs yang baru dengan nama public_html sebagai gantinya.

  3. Berpindahlah ke dalam public_html, lalu unduh source osCommerce terbaru. Gunakan perintah wget http://www.oscommerce.com/redirect.php/go,49 dan tidak berselang lama source terbaru akan tersimpan berupa file dengan nama oscommerce-x.y.z.zip [dimana x.y.z adalah versinya]. Jika tidak memiliki akses shell, maka Anda harus mengunduh source osCommerce terbaru ke komputer pribadi, lalu upload melalui File Manager atau gunakan sembarang aplikasi FTP client kegemaran Anda.

  4. Urai kompresi zip-nya dengan perintah unzip oscommerce-x.y.z.zip jika melalui shell atau klik kanan file kompresi dan pilih opsi extract jika melalui File Manager.

  5. Sebagai persiapan tambahan, Anda dapat membuat sebuah halaman pemberitahuan bahwa situs sedang dalam pembenahan. Dengan begitu pengunjung situs Anda tidak kebingungan saat mengakses situs dan Anda juga tidak khawatir saat proses pembaruan berlangsung. Masih di dalam direktori public_html, buatlah sebuah file baru bernama sementara.php, lalu isikan kode program sederhana di bawah ini.

    <table width=100% height=100%> 
    <tr><td valign=center align=center> 
    <h1>Selamat datang di situs kami.</h1><br> 
    Mohon maaf, sementara ini situs masih dalam tahap pembenahan.<br> 
    Silakan kunjungi situs kami kembali beberapa waktu ke depan... 
    </td></tr> 
    </table>
  6. Gunakan sembarang editor shell kegemaran Anda atau bisa juga dari File Manager di cPanel, lalu editlah file /home/username/public_html/.htaccess. Sisipkan sebaris sintak di bawah ini di posisi paling atas.

    DirectoryIndex sementara.php index.php

Sampai tahapan ini Anda telah mengamankan kondisi situs terakhir di dalam direktori public_html-nya dan menyiapkan penginstal osCommerce versi terbaru di public_html.

Saat ini situs Anda tetap bisa diakses melalui browser dan yang tampil adalah informasi bahwa situs sedang dalam tahap pembenahan yang tak lain adalah konten dari file sementara.php yang telah dibuat sebelumnya. Wis, sementara aman.

Instalasi

Sebelum berlanjut ke tahap instalasi osCommerce terbaru, siapkanlah sebuah basis data [data base] MySQL baru melalui phpMyAdmin di cPanel. Sebagai contoh basis data barunya diberi nama username_xyz dengan user basis data bernama username_abc dan kata sandi user basis datanya adalah pasto. Pastikan juga user basis data sudah ditambahkan ke basis data tersebut. Sudah selesai? Mari kita mulai instalasi osCommerce-nya.

  1. Beranjaklah ke jendela browser, lalu akses domain Anda dengan format alamat http://domain.apa/index.php. Ubahlah domain.apa dengan domain Anda.
  2. Tampilan instalasi akan muncul dengan validasi kebutuhan dasar di sebelah kiri, pastikan semuanya sudah terpenuhi. Klik tombol Continue untuk melanjutkan.
  3. Berikutnya Anda diminta mengisikan identitas basis data melalui textbox yang tersedia. Isikan localhost di bagian Database Server, username_abc di bagian Username, pasto di bagian Password dan username_xyz di bagian Database Name. Klik tombol Continue untuk melanjutkan.
  4. Selesai dengan validasi basis data, proses instalasi akan menampilkan URL situs toko online Anda beserta lokasi direktorinya di dalam textbox. Klik tombol Continue untuk melanjutkan.
  5. Berikutnya Anda diminta mengisikan identitas toko online serta akun untuk pengelolaannya. Isikan semua sesuai dengan kebutuhan Anda, lalu klik tombol Continue untuk melanjutkan.
  6. Selesai dengan proses instalasi akan muncul 2 buah tombol bertajuk Catalog untuk menampilkan toko online dan Administration Tool untuk manajemen toko online lebih lanjut. Jangan lupa untuk mengubahlah nama direktori /home/username/public_html/install menjadi /home/username/public_html/install-nya.

Migrasi Konten

Tibalah kita pada tahapan yang dinanti-nanti, yaitu menggabungkan konten dan konfigurasi situs yang lama ke hasil instalasi yang baru.

  1. Ekspor basis data osCommerce yang lama melalui phpMyAdmin menjadi file berformat sql. Jika melalui shell, eksekusilah perintah mysqldump -u root username_namadblama –opt –no-autocommit –add-drop-table > bekap.sql. Hasil akhir adalah rangkuman basis data osCommerce yang lama dalam file bernama bekap.sql.

  2. Impor basis data osCommerce yang lama ke basis data yang baru melalui phpMyAdmin. Jika melalui shell, eksekusilah perintah mysql -u root username_xyz

  3. Eksekusi query di bawah ini untuk melakukan penyesuaian di basis data username_xyz. Agar lebih mudah, lakukanlah melalui phpMyAdmin.

    ALTER TABLE `reviews` ADD `reviews_status` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `last_modified`
  4. Edit file di lokasi /home/username/public_html/admin/login.php dan ubah kode program di bawah ini :

    if ($actionRecorder->canPerform()) {  
    menjadi : 
    if ($actionRecorder->canPerform() || !tep_not_null($actionRecorder->_module)) {
  5. Salin semua file dari lokasi /home/username/public_html-nya/ ke dalam /home/username/public_html/.

  6. Salin semua file dari lokasi /home/username/public_html-nya/images/ ke dalam /home/username/public_html/images/.

  7. Salin dan timpa file di bawah ini dari lokasi /home/username/public_html-nya/includes/ ke dalam /home/username/public_html/includes/.

    filenames.php 
    footer.php 
    header.php
  8. Salin dan timpa semua file dan direktori dari lokasi /home/username/public_html-nya/includes/languages/ ke dalam /home/username/public_html/includes/languages/. Sampai sejauh ini Anda telah berhasil melakukan upgrade versi osCommerce dan menyisipkan konten lamanya. Bukalah jendela browser baru dan akses situs toko online dengan format URL http://domain.apa/index.php dan http://domain.apa/admin untuk panel pengelolaan osCommerce-nya. Beberapa penyesuaian lain dapat Anda lakukan jika sebelumnya ada tambahan modul khusus atau variasi lainnya. Jika segala sesuatunya sudah sesuai, ubahlah nama file /home/username/public_html/sementara.php menjadi /home/username/public_html/sementara.php-nya. Dengan begitu saat pemanggilan domain akan langsung menampilkan konten toko online Anda.

Outro

Usai sudah bahasan artikel kali ini tentang sebagian kecil penggunaan osCommerce. Dengan penerapan versi terbaru di atas, kini situs toko online Anda sudah siap menghadapi PHP 5.3.x. Apabila Anda menghadapi kasus yang sama saat menggunakan versi PHP yang lebih baru, tidak ada salahnya pula untuk mengikuti panduan di atas. Kalaupun ada beberapa perbedaan, semestinya tidak akan terlalu signifikan. Selamat mencoba.