PDA

View Full Version : سوال: اخطار write failed: No space left on device



ravand
پنج شنبه 10 اردیبهشت 1394, 08:54 صبح
سلام
من در قسمت لوگین سایتم با این اخطار روبرو شدم:


Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

بعد جستجو کدرم گفته شده بود مقادیر داخل پوشه ی tmp را حذف کنید. منم هر کدوم از مقادیر رو که حذف میکردم. هر بار که لوگین می کردم مشکل حل میشد ولی برای بار بعد که لوگین میکردم بازم مشکل پابرجا بود! داخل پوشه ی tmp چند تا پوشه هست که هر چی توی این پوشه ها بود رو حذف کردم ولی بازم مشکل حل نشد.
متشکرم.

MMSHFE
پنج شنبه 10 اردیبهشت 1394, 09:19 صبح
فضای دیسک سرور پر شده. یا فایلهای اضافه رو حذف کنید یا با پشتیبانی هاست تماس بگیرین تا پوشه tmp رو خالی کنن و یا فضای اختصاص داده به شما رو افزایش بدن (این آخریه هزینه داره).

-سیّد-
پنج شنبه 10 اردیبهشت 1394, 09:24 صبح
سلام
من در قسمت لوگین سایتم با این اخطار روبرو شدم:


Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

بعد جستجو کدرم گفته شده بود مقادیر داخل پوشه ی tmp را حذف کنید. منم هر کدوم از مقادیر رو که حذف میکردم. هر بار که لوگین می کردم مشکل حل میشد ولی برای بار بعد که لوگین میکردم بازم مشکل پابرجا بود! داخل پوشه ی tmp چند تا پوشه هست که هر چی توی این پوشه ها بود رو حذف کردم ولی بازم مشکل حل نشد.
متشکرم.
سلام
پیغام No space left on device یعنی پارتیشن مورد نظر پر شده. دستور df -h رو اجرا کنید و خروجی رو ببینید. با توجه به این که می‌گه دیتای session رو نتونسته توی tmp/ ذخیره کنه، معنیش اینه که پارتیشنی که tmp/ توش قرار داره پر شده. معمولاً برای tmp/ یک پارتیشن جدا در نظر نمی‌گیرن و در نتیجه داخل / قرار داره. پس نتیجه‌گیری اخلاقی می‌شه این که شما احتمالاً / تون پر شده. با توجه به این که توی tmp/ معمولاً خیلی داده‌ی حجیم قرار نمی‌گیره، باید جاهای دیگه رو بررسی کنید. مثلاً ممکنه home/ شما هم توی / قرار داشته باشه که در این صورت اونجا رو باید بررسی کنید و فضا خالی کنید (ممکن هم هست که home/ یک پارتیشن جدا داشته باشه، توی خروجی df -h مشخصه هست).

ravand
پنج شنبه 10 اردیبهشت 1394, 10:15 صبح
چطوری این دستور
df -h را اجرا کنم؟ کجا باید این دستور رو بزنم؟ حجم خود هاستم فکر نمیکنم بیشتر از 20 مگابایت باشه. حتما مشکل از همین tmp هست.


با پشتیبانی هاست تماس بگیرین تا پوشه tmp رو خالی کنن
چرا باید با پشتیبانی تماس بگیرم؟ مگه خودم نمیتونم؟ من به پوشه ی tmp دسترسی دارم.
راستی من داخل این پوشه ی tmp چند تا پوشه دارم جرات نکردم حذفشون کنم گفتم شاید مشکلی پیش بیاد. ولی محتویات داخلشون رو حذف کردم . اگه این پوشه ها رو حذف کنم مشکلی پیش نمیاد؟

MMSHFE
پنج شنبه 10 اردیبهشت 1394, 10:25 صبح
چون سرور اگه درست کانفیگ شده باشه، شما فقط به فایلهای خودتون توی پوشه tmp دسترسی دارین و میتونین حذفشون کنین ولی این پوشه حاوی فایلهای سایر سایتهای اون سرور هم هست. ممکنه یه سایتی اجازه آپلود فایل حجیم داده باشه و تمام این فایلها داره توی پوشه tmp قرار میگیره. اینجور وقتها پشتیبانی سرور بهتر میتونه توی رفع مشکل کمک کنه. شما که پول پشتیبانی رو دارین میدین. پس ازش استفاده کنید.

-سیّد-
پنج شنبه 10 اردیبهشت 1394, 11:36 صبح
چطوری این دستور
df -h را اجرا کنم؟ کجا باید این دستور رو بزنم؟


این دستور رو باید توی shell بزنید. با توجه به این که از یه سرویس هاستینگ استفاده می‌کنید، احتمالاً به shell دسترسی ندارید. من با این پیش‌فرض گفتم که با یه سرور یا VPS کار می‌کنید.
این دستور فضای خالی تمام پارتیشن‌ها رو نشونتون می‌ده. با توجه به این که احتمالاً مشکل مشخصه از کجاس، اگه نتونستید اجراش کنید مشکلی پیش نمیاد!

یه نکته‌ی دیگه: اگه به هر دلیل با پشتیبانی هاستتون به نتیجه نرسیدید (که البته وظیفه‌ی اونا هست که شما رو به طور کامل پشتیبانی کنن، ولی به هر حال ممکنه نشه) یه راه دیگه اینه که آدرس ذخیره‌سازی اطلاعات session رو عوض کنید و مثلاً بذارید داخل home خودتون که همه چیزش دست خودتون هست:
http://php.net/manual/en/function.session-save-path.php

کامنت اول صفحه‌ی بالا هم یه مثال خوب هست:
http://php.net/manual/en/function.session-save-path.php#113372


I made a folder next to the public html folder and placed these lines at the very first point in index.php

Location of session folder:

/domains/account/session

location of index.php

/domains/account/public_html/index.php

What I placed in index.php at line 0:

<?php
ini_set('session.save_path',realpath(dirname($_SER VER['DOCUMENT_ROOT']) . '/../session'));
session_start();

This is the only solution that worked for me. Hope this helps someone.