5 menit
Mendapatkan pesan error session_start(): Failed to read session data: files (path: /suatu/folder/di/website) pada website yang kamu gunakan? Mungkin kamu perlu mengubah session_save_path pada websitemu, yang caranya akan dibahas dalam artikel ini.
Ketika kamu menggunakan session_save_path default, bisa saja folder tersebut tidak dapat digunakan atau bahkan tidak ada yang justru menyebabkan websitemu mengalami error, dimana error yang paling umum adalah kamu tidak bisa login ke websitemu sendiri.
Yang Perlu Dilakukan Sebelum Mengubah session_save_path
Sebelum mengubah session_save_path, ada beberapa hal yang perlu kamu lakukan untuk memastikan bahwa session_save_path baru yang kamu gunakan nantinya benar-benar terbaca.
1. Buat Folder Baru Untuk Menyimpan Session
Yang pertama perlu kamu lakukan untuk mengubah session_save_path adalah dengan membuat folder baru.
Folder baru ini disarankan untuk tidak dibuat didalam folder public_html, atau folder yang dapat diakses secara langsung oleh publik.
Misalnya disini kita akan membuat folder session baru dengan nama /session/, maka kamu bisa membuat folder /session/ ini berada didalam satu struktur dengan public_html
2. Periksa Lokasi Session Path Saat ini
Kamu bisa memeriksa lokasi session path saat ini dengan menambahkan file untuk memeriksa versi php didalam websitemu.
Misalnya disini website terinstall di public_html, kemudian kamu bisa menambahkan file PHP dengan nama apapun, misalnya info.php didalam folder public_html
Setelah membuat file info.php, kamu bisa menambahkan kode berikut ini kedalam file tersebut
<?php
phpinfo();
?>
Sekarang kamu bisa memeriksa detail PHP dengan cara mengunjungi file info.php. Misalnya jika websitemu menggunakan domain partof.my.id, maka kamu bisa mengakses https://partof.my.id/info.php dan hasilnya kamu bisa memeriksa lokasi penyimpanan session dengan mencari session.save_path
Karena sekarang kamu sudah menemukan lokasi session_save_path saat ini, maka sekarang kamu bisa lanjut ke cara untuk mengubah lokasi session_save_path yang digunakan pada websitemu
Cara Mengubah session_save_path
Terdapat berbagai cara untuk mengubah session_save_path, dan tentu saja disini kita akan membahas beberapa cara tersebut.
1. Mengubah session_save_path Melalui PHP Selector
Apabila hosting yang kamu gunakan mendukung fitur CloudLinux PHP Selector (tidak harus cpanel), maka kamu bisa menggunakan cara ini untuk mengubah session_save_path.
- Login ke hostingmu, misalnya hosting cpanel, kemudian buka halaman Select PHP Version
- Setelah berada dihalaman PHP Selector, buka tab Options
- Scroll kebawah kemudian cari opsi session.save_path dan ubah isinya sesuai dengan folder yang kamu buat. Apabila folder yang dibuat, misalnya /session/, maka kamu bisa mengubah valuenya menjadi ../session/ (pastikan untuk menuliskan dua titik sebelum slash – ../)
- Sekarang kamu bisa memeriksa kembali lokasi session.save_path dan seharusnya sudah berubah
- Jika sudah berbubah, maka kamu bisa mencoba menggunakan session_start pada websitemu, maka session akan disimpan didalam folder /session/ yang berada diluar public_html
2. Mengubah Lokasi session_save_path Menggunakan MultiPHP INI Editor
Jika hosting yang kamu gunakan tidak mendukung CloudLinux PHP Selector, maka kamu bisa menggunakan MultiPHP INI Editor untuk mengubah lokasi session_save_path.
- Login ke hostingmu dan buka halaman MultiPHP INI Editor (bukan MultiPHP Manager, jangan sampai salah pilih)
- Pilih nama domain yang ingin kamu ubah lokasi penyimpanan sessionnya
- Kemudian cari opsi session.save_path dan ubah konten didalamnya, misalnya menjadi ../sessionINI/
- Simpan perubahan, dan selanjutnya kamu bisa memeriksa kembali halaman untuk memeriksa detail PHP dengan membuka namadomain/info.php (sesuai dengan nama domainmu dan nama file info yang kamu buat)
Jika menggunakan cara ini, kamu bisa mengabaikan value dari “Master Value” karena nantinya yang akan terbaca tetap yang ada di “Local Value“.
3. Mengubah session_save_path Melalui .htaccess
Jika kamu lebih memilih menggunakan .htaccess, maka kamu bisa juga mengubah lokasi session_save_path dengan ketentuan
- session_save_path belum ditentukan didalam file php.ini
- session_save_path belum ditentukan didalam file user.ini
Jika kamu sudah memenuhi kedua ketentuan tersebut, maka kamu bisa mengedit file .htaccess pada websitemu, kemudian menambahkan baris ini
php_value session.save_path "../session/htaccess"
Ubah session/htaccess sesuai dengan folder yang akan kamu gunakan, namun jangan menghapus tanda titik dua sebelum slash (../)
Setelah .htaccess disimpan, maka lokasi session_save_path pada websitemu akan berubah
4. Mengubah session_save_path Melalui php.ini dan user.ini
Peringatan: Cara ini biasanya tidak berhasil. Disarankan untuk menggunakan metode nomor 1,2,3, dan 5!
Kamu juga bisa menggunakan file php.ini atau user.ini untuk menentukan dimana session akan disimpan.
Apabila ada file php.ini atau user.ini didalam satu folder, maka user.ini akan lebih diutamakan dan konfigurasi didalamnya yang akan digunakan. Jadi pastikan untuk memeriksa apakah saat ini didalam website kamu apakah ada dua file tersebut, atau hanya ada salah satu.
Apabila hanya ada satu, maka kamu tidak perlu menambahkan satunya lagi, dan langsung menambahkan atau mengubah baris berikut ini
session.save_path = "../session/PHP/INI/"
Ubah session/PHP/INI/ dengan lokasi folder yang sudah kamu buat, dan pastikan foldernya memang sudah benar-benar ada didalam hostingmu
Setelah diubah, maka selanjutnya kamu dapat memeriksa kembali halaman info PHP untuk memastikan lokasi penyimpanan session kamu sudah berubah atau belum.
5. Menentukan session_save_path Dari Script
Berbeda dengan cara-cara sebelumnya, kamu bisa juga menentukan lokasi session_save_path dari script yang kamu gunakan didalam website.
Jika biasanya kamu menggunakan session_start(); untuk memulai session, maka kamu bisa mendefinisikan lokasi penyimpanan session sebelum penyimpanan session dijalankan.
Gunakan kode berikut ini untuk menentukan lokasi penyimpanan session menggunakan script
<?php
$sessionSavePath = '../folder/session/yang/kamu/gunakan';
session_save_path($sessionSavePath);
session_start();
// kode php websitemu
Pastikan untuk mengubah folder/session/yang/kamu/gunakan sesuai dengan nama dan lokasi folder yang akan kamu gunakan untuk menyimpan session
Terima kasih telah berkunjung ke WPGan.com. Dapatkan saldo $100 di Vultr gratis dan deploy servermu sendiri melalui [Halaman Ini]