خطای file_put_contents storage\framework/sessions failed to open stream: No such file or directory

این خطا وقتی برای من رخ داد که از اوبونتو به ویندوز مهاجرت کردم. فولدر های اصلی پروژم رو دراپباکس بود بقیه رو با کومپوزر نصب کردم. فولدر های (tests vendor storage bootstrap) رو کپی نکرم. تصور بر این بود که توسط composer نصب بشن. تا یه حدی هم نصب شدن و من دائم خطای خطای file_put_contents storage\framework/sessions failed to open stream: No such file or directory رو میگرفتم. با جستجو هایی که انجام دادم اکثرا نوشته بودن با clear cache کارت درست میشه ولی مشکل من حل نشد. بعد کلی کلنجار رفتن دستور زیر رو تایپ کردم (در ویندوز)

php artisan | findstr clear

 

این دستور همه دستورات مربوط به پاک کردن کش رو میاره که میشه این:

clear-compiled Remove the compiled class file
auth:clear-resets Flush expired password reset tokens
cache:clear Flush the application cache
config:clear Remove the configuration cache file
route:clear Remove the route cache file
view:clear Clear all compiled view files

 

تک به تک همه کش ها رو پاک کردم تا رسیدم به آخری که خطای laravel RuntimeException : View path not found مواجه شدم و با یه جستجوی ساده و سریع به جواب درست رسیدم.

فولدر storage باید زیر مجموعه های app framework و logs رو داشته باشه که برای من فقط logs وجود داشت. چون فولدر storage فقط اطلاعات کش رو ذخیره میکنه و فایل خاصی توش نیست یه لاراول جدید تعریف کردم و فولدر های اونو کپی کردم اینجا و مشکل حل شد.

تو جستجو ها به یه حقه(تریک) باحال برخوردم که کار پاک کردن کش ها رو راحت میکنه. تو رَوت وبتون اینو اضافه کنین:

Route::get('/clear-cache', function() {
    Artisan::call('clear-compiled');
    Artisan::call('auth:clear-resets');
    Artisan::call('config:clear');
    Artisan::call('route:clear');
    Artisan::call('view:clear');
    Artisan::call('cache:clear');
    Artisan::call('config:cache');
    return 'DONE';
});

 

لیست کردن فایل ها در وب سرور آپاچی

برای لیست کردن فایل ها در وب سرور آپاچی وقتی که لیست کردن فایل ها غیر فعال شده (معمولا به دلایل امنیتی) با درست کردن یک فایل htaccess.  میتونیم فایل ها رو لیست کنیم.

Options +Indexes

البته این ساده ترین راهه و شامل فولدر های زیر شاخه هم میشه.