Benjuino Theodore, Thursday, 06 September 2007 17:00
Keluhan yang kerap ditemui dalam setiap forum Joomla! adalah kegagalan melakukan instalasi extension atau upload file lewat Joomla!. Salahsatu (tidak selalu) penyebab kegagalan ini adalah tidak cukupnya memory yang dialokasikan untuk script PHP, yang sering ditandai dengan pesan error seperti
Fatal Error: Allowed memory size of xx bytes exhausted (tried to allocate xx bytes) in /path/ke/file.php on line XX Allowed memory size of XX bytes exhausted (tried to allocate XX bytes)
PHP perlu menyimpan sebagian dari data yang masuk dalam memory. Permasalahannya seringkali memory yang dialokasikan untuk skrip PHP tidak mencukupi lagi sehingga keluarlah pesan error seperti di atas.
Jalan keluarnya adalah dengan menaikkan memory limit yang dialokasikan untuk skrip PHP. Jalan keluar lain adalah dengan mengoptimasi skrip PHP yang digunakan agar lebih bersahabat dalam penggunaan memory (namun hal ini di luar lingkup artikel ini).
Artikel ini memberikan petunjuk untuk menaikkan memory limit untuk PHP yang dapat dilakukan lewat beberapa cara. (CATATAN: konfigurasi server sangat berpengaruh. Solusi yang berhasil di satu server mungkin gagal di server lain.)
Memeriksa memory limit
Walaupun pesan error telah memberikan petunjuk mengenai nilai memory limit ini, namun tidak ada salahnya dilakukan pemeriksaan ulang.
Joomla memberikan cara mudah untuk melakukan ini. Setelah masuk ke panel administrasi Joomla! Arahkan kursor ke "System" di toolbar, dan pilih "System Info". Disitu silakan memilih tab "PHP Info". Anda dapat menemukan nilai memory_limit pada bagian "PHP Core".
Jika nilai memory_limit tidak ditemukan dalam phpinfo, berarti nilai ini ditentukan per proses. Dalam hal ini maka tidak ada cara lain kecuali menghubungi hosting anda dan meminta perubahan.
Sekarang, bagaimana merubah (menaikkan) nilai memory limit ini?
Melalui php.ini
File php.ini adalah file konfigurasi PHP. File inilah yang harus diubah jika hosting anda membolehkan pengguna untuk membuat dan menggunakan php.ini sendiri. Sebaiknya pastikan terlebih dahulu dengan hosting anda, apakah anda boleh membuat dan menggunakan custom php.ini.
Letak php.ini
Sekali lagi hal ini tergantung konfigurasi server yang anda gunakan. Terkadang anda perlu membuat file php.ini dalam setiap direktori teratas yang membutuhkan. Terkadang hosting sudah menyediakan php.ini dalam salahsatu direktori.
Yang harus diubah
atau ditambahkan jika belum ada adalah:
memory_limit = nnM
dimana nn adalah angka yang diinginkan dan M menunjukkan Megabyte. Misal, untuk menaikkan memory limit dari nilai default (biasanya 8M) menjadi 16 Megabyte, maka yang perlu diisikan adalah
memory_limit = 16M
Biasanya nilai 16M sudah lebih dari mencukupi untuk menjalankan sebuah situs Joomla! Walau terkadang ada beberapa extension (biasanya bridge ke aplikasi lain) yang membutuhkan lebih banyak memory.
Sebaiknya menaikkan memory limit tidak seenaknya. Dengan kata lain, jangan lantas memasukkan nilai sebesar-besarnya! Naikkan seperlunya saja. Kalau memang perlu limit yang tinggi, mungkin sebaiknya mulai berpikir untuk punya server sendiri!
Melalui .htaccess
Secara kasar file .htaccess dapat dikatakan sebagai file konfigurasi untuk tingkat direktori. Umumnya (lagi-lagi tidak semuanya) hosting membolehkan pengguna untuk membuat file .htaccess sendiri. Sekali lagi, pastikan dengan hosting anda, apakah anda boleh menggunakan .htaccess.
Letak .htaccess
Server akan mencari file .htaccess dalam direktori yang diakses dan tiap direktori di atasnya. Dalam Joomla! ini berarti direktori dimana instalasi Joomla! berada.
Instalasi standar Joomla! telah menyediakan file htaccess.txt yang kemudian dapat anda ganti nama menjadi .htaccess (kalau belum). Perubahan yang diusulkan di bawah dapat dilakukan atas file tersebut.
Yang harus diubah
atau ditambahkan jika belum ada adalah:
php_value memory_limit nnM
dimana nn adalah angka yang diinginkan dan M menunjukkan Megabyte. Sehingga untuk menaikkan memory limit menjadi 16MB , yang perlu diisikan adalah
php_value memory_limit 16M
Melalui namafile.php
Cara lain untuk menaikkan memory limit adalah melalui perintah ini_set yang dimasukkan ke dalam skrip php yang dipanggil. Kesulitan utama dari cara ini adalah menentukan file mana yang harus dirubah untuk menyisipkan perintah ini (selain tentu saja apakah hosting anda membolehkan perintah ini atau tidak).
File mana?
Dalam instalasi Joomla! ada dua file yang umumnya dipanggil oleh setiap proses utama, yaitu configuration.php dan globals.php. Karenanya untuk sebaiknya perintah ini diisisipkan di salahsatu dari kedua file tersebut.
Yang harus diubah
Sisipkan perintah
ini_set("memory_limit","nnM");
di bawah tag pembuka php <?php
Penutup
Demikian beberapa cara untuk menaikkan memory limit PHP yang sering menjadi penyebab gagalnya instalasi extension melalui panel administrasi, atau upload file melalui Joomla! pada umumnya.
Harap diingat bahwa memory limit bukan satu-satunya penyebab gagalnya upload/instalasi. Banyak hal yang mungkin menyebabkan kegagalan ini seperti:
- Permission yang salah dari direktori-direktori
- Batasan ukuran file yang di-upload
- Batasan ukuran data yang di POST
- Batasan waktu yang dibolehkan untuk input data
- Batasan waktu yang dibolehkan untuk eksekusi program
- dan lain-lain.
Masing-masing penyebab tentu saja memiliki pemecahan sendiri-sendiri (mungkin di lain artikel).
Sampai lain waktu,
Caveat Emptor!
| Comments |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
JUG Indonesia
Id-joomla.com adalah situs resmi Joomla User Group (JUG) Indonesia dan Joomla Translation Team

Download Terjemahan Joomla terakreditasi dari JoomlaCode dan laporkan bugs, ide dan saran nya di Sub Forum Hanacaraka





