خطای Unable to establish a PHP session چیست؟
خطای Unable to establish a PHP session هنگام ورود به کنترل پنلهای مدیریت سرور (مانند WHM، Webmin یا phpMyAdmin) رخ میدهد. این خطا نشان میدهد PHP نمیتواند فایلهای session را ایجاد یا بخواند.
دلایل اصلی
۱. مشکل مجوز پوشه session
PHP فایلهای session را در مسیر خاصی (معمولاً /tmp یا /var/lib/php/session) ذخیره میکند. اگر مجوز این پوشه اشتباه باشد، PHP نمیتواند فایل session ایجاد کند.
۲. پر بودن فضای دیسک
اگر پارتیشن /tmp یا پارتیشن اصلی پر باشد، فایلهای session ایجاد نمیشوند.
۳. تنظیمات نادرست session.save_path
مسیر ذخیره session در php.ini ممکن است به پوشهای اشاره کند که وجود ندارد.
روشهای رفع
روش ۱: اصلاح مجوزهای /tmp
chmod 1777 /tmp
chown root:root /tmp
روش ۲: اصلاح پوشه session
# بررسی مسیر session
php -i | grep session.save_path
# ایجاد و تنظیم مجوز
mkdir -p /var/lib/php/session
chmod 1733 /var/lib/php/session
chown root:root /var/lib/php/session
روش ۳: بررسی فضای دیسک
df -h
df -i
هم فضای دیسک و هم inode را بررسی کنید.
روش ۴: پاکسازی فایلهای session قدیمی
find /tmp -name 'sess_*' -mtime +1 -delete
find /var/lib/php/session -name 'sess_*' -mtime +1 -delete
روش ۵: بررسی SELinux
در سرورهای CentOS/RHEL، SELinux ممکن است مانع نوشتن فایلهای session شود:
getenforce
اگر Enforcing بود، موقتاً غیرفعال کنید:
setenforce 0
پیشگیری
یک cron job برای پاکسازی خودکار فایلهای session قدیمی تنظیم کنید. فضای دیسک و inode را مانیتور کنید. تنظیمات session.gc_maxlifetime و session.save_path را در php.ini بررسی نمایید.
اگر سرور مجازی دارید و با مشکلات PHP session مواجه شدهاید، خدمات کانفیگ سرور میهن هاستینگ تمام تنظیمات PHP و سرور را بهینه میکند. هاست وردپرس میهن هاستینگ با PHP بهینهشده این مشکلات را ندارد.
⚙️ بهینهسازی PHP سرور
تنظیم PHP، رفع خطاهای session و بهینهسازی سرور توسط تیم فنی میهن هاستینگ.