Cara Membersihkan PHP Session Penyebab Inode Di Server Linux Penuh

Dalam kondisi tertentu, kadang saat menggunakan website tidak bisa untuk upload file apapun. biasanya kalau hal ini terjadi ada beberapa hal penyebabnya, bisa dari permission file ataupun disk psace yang penuh. tapi jika sudah di lakukan pengecekan keduanya dan ternyata normal semua, anda perlu mengecek dari sisi inode. bisa jadi, website anda penuh karena inode di server penuh.

Silahkan gunakan perintah berikut untuk mengecek inode server anda:

df -i

sehingga akan menghasilkan seperti berikut:

Filesystem       Inodes   IUsed    IFree IUse% Mounted on
/dev/sda2       1310720 1310720        0  100% /

Dari situ, sudah jelas bahwa penyebab masalah di server adalah inode yang penuh. Untuk mengecek lebih detail darimana penyebab penuhnya, anda bisa melihatnya lewat perintah yang ada di artikel berikut: https://hosteko.com/kb/cara-cek-besar-inode-di-server-linux/

Biasanya, penyebab inode cepat penuh berasal dari PHP SESSION. yang berlokasi di folder /var/lib/php/session dengan isi kurang lebih seperti ini: sess_*

Untuk membersihkannya, anda bisa menggunakan perintah berikut:

find /var/lib/php/session -type f -cmin +24 -name "sess_*" -exec rm -f {} \;

Tetapi kami akan merekomendasikan Anda untuk menggunakan skrip bash, agar kedepan anda tidak perlu repot lagi untuk membersihkan PHP Session:
Sebelum membuat script, periksa dahulu setting PHP anda dan ubah seperti di bawah ini:

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
 
; NOTE: If you are using the subdirectory option for storing session files
;       (see session.save_path above), then garbage collection does not
;       happen automatically.  You will need to do your own garbage
;       collection through a shell script, cron entry, or some other method.

buat folder di /root dengan nama bebas, misal dalam hal ini saya buat nama hapusphpsession, sehingga alan terbentuk lokasi folder /root/hapusphpsession

silahkan masuk ke folder/ directory /root/hapusphpsession dan buat script berikut dengan di berinama hapus-php-session.sh

#!/bin/bash 
 
# Export bin paths
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# Get PHP Session Details
PHPSESSIONPATH=$(php -i 2>/dev/null | grep -w session.save_path | awk '{print $3}' | head -1);
PHPSESSIONLIFETIME=$(php -i 2>/dev/null | grep -w session.gc_maxlifetime | awk '{print $3}' | head -1);
PHPSESSIONLIFETIMEMINUTE=$( expr $PHPSESSIONLIFETIME / 60 );
 
# If PHPSESSIONPATH exists
if [ -d $PHPSESSIONPATH ];
then
    # Find and delete "expired" sessions
    find $PHPSESSIONPATH -type f -cmin +$PHPSESSIONLIFETIMEMINUTE -name "sess_*" -exec rm -f {} \;
fi

Buat cronjob dengan menjalankan perintah crontab -e dengan setting setiap jam sekali.

# Delete PHP sessions
0 * * * *   root    /root/hapusphpsession/hapus-php-session.sh >/dev/null 2>&1
5/5 - (3 votes)
Tri Wahyudi

Recent Posts

Cara Redirect Domain/ Subdomain di Cpanel

Kamu dapat membuat pengalihan (redirect) untuk domain kamu di cPanel. Untuk melakukannya, lakukan langkah berikut:…

1 month ago

Setting Default Address di Cpanel

1. Masuk ke cPanel. 2. Di bagian Email, klik Default Address. 3. Secara default, cPanel…

1 month ago

Cara Setting Autoresponder di Cpanel

1. Masuk ke cPanel. 2. Klik ikon Autoresponders. Bagian ini adalah tempat untuk membuat email…

1 month ago

Perpedaan Antara Cpanel dan WHM

WHM (WebHost Manager) ialah pemberi kontrol administratif atas server khusus atau VPS Anda. Hal ini…

1 month ago

Cara Mengubah Bahasa di Cpanel

1. Masuk ke cPanel. 2. Klik nama pengguna di pojok kanan atas untuk melihat menu…

1 month ago

Cara Setting Email Filter di Cpanel

1. Masuk ke cPanel. 2. Di bawah bagian Email, klik Email Filter. 3. Klik Manage…

1 month ago