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 Secure Partisi /tmp di WHM/Cpanel

cPanel & WHM juga menawarkan skrip bawaan yang memaksimalkan keamanan partisi /tmp. Hal ini dilakukan…

1 day ago

mengatasi error ImunifyAV has not detected any compatible hosting panel as well as integration.conf file to run the installation without a panel di cyberpanel

berikut adalah cara mengatasi error ImunifyAV has not detected any compatible hosting panel as well…

2 months ago

Update URL Repository Centos 7 Setelah End Of Life (EOL) 2024-07-01

CentOS 7 tidak akan mendapatkan pembaruan apa pun setelah Juni 2024. Selain itu, mirrorlist.centos.org tidak…

2 months ago

Mengatasi error gmysql Connection failed: Unable to connect to database pada pdns Cyberpanel

DNS di server cyberpanel tidak mau bekerja, di cek pada error log keluar pesan seperti…

2 months ago

Mengatasi Access denied for user ‘cyberpanel’@’localhost’ (using password: YES) saat upgrade cyberpanel

saat upgrade cyberpanel, keluar pesan error seperti berikut: django.db.utils.OperationalError: (1045, "Access denied for user 'cyberpanel'@'localhost'…

2 months ago

Cara Restart CyberPanel Lewat SSH

Untuk melakukan restart cyberpanel lewat SSH silahkan jalankan perintah berikut: systemctl restart lscpd

2 months ago