اكتب «help» للحصول على تلميحات، و↑ لاسترجاع الأوامر.
كان df -h يُظهر 22 Go حرة، لكن df -i: 0 inode حر. كل جلسة PHP ملف؛ ويكتبها الـ pool
extranet في /srv/extranet/sessions (قيمة مضبوطة بـ php_admin_value). وعلى Ubuntu،
session.gc_probability = 0: لا يقوم PHP أبدًا بالتنظيف بنفسه، بل يعتمد على phpsessionclean،
الذي لا يعرف سوى /var/lib/php/sessions. والنتيجة: 2,6 مليون ملف منذ مارس.
القرص ليس ممتلئًا (لا حاجة إلى توسيعه)، وFPM كان سليمًا («idle: 9»)، والصفحة الثابتة كانت تعمل عبر HTTPS: إذن ليست الشهادة.
تمّ حلّ الحادث
التحليل والإصلاح
الإصلاح الفوري: احذف الجلسات المنتهية فقط، دون المساس بالجلسات النشطة:
find /srv/extranet/sessions -type f -name 'sess_*' -mmin +1440 -delete، ثم تحقّق من df -i ومن الاتصال.
الوقاية:
- مؤقّت systemd (أو مهمة cron) مخصّص يفرغ
/srv/extranet/sessionsكل 30 دقيقة، أو أضف هذا المسار إلى التنظيف؛ أو خزّن الجلسات في Redis؛ - راقب الـ inodes (
df -i) وليس مساحة القرص وحدها: تنبيه عند 80 %؛ - وثّق أن كل قيمة
session.save_pathمخصّصة يجب أن يكون لها تنظيفها.