سینک نبودن پوشه storage در هاست واقعی

2 ماه پیش
توسط محمدحسن بختیاری فر آپدیت شد
Solgan ( 2230 تجربه )
6 ماه پیش
تخصص : برنامه نویس سمت سرور(php-laravel)

سلام دوستان
من سایتم روی هاست بارگزاری کردم
قبلش چون از دیسک storage استفاده کرده بودم دستور php artisan storage:link رو زدم و بعد فایل هارو روی هاست قرار دادم و پوشه پابلیک به public_html محتویاتش قرار دادم.
الان مشکل اینجاست که موقع آپلود تصاویر، فایل بدرستی درون Storage روت قرار میگیره اما *درون پوشه public_html و پوشه Storage لینک یا سینک نیست و فایل های آپلود شده درونش قرار نمیگیره و به مشکل خوردم.
کسی میدونه باید چی کار کرد؟؟؟؟؟

بهترین پاسخ انتخاب شده توسط Solgan

@solgan
بنظرم وقتی لینک Symbolic رو به هاست جابه جا می کنید اتصالش بهم میخوره
هر چند شاید دیر شده باشه ولی من با روش زیر کارم راه افتاد.
اگر هاست بهتون اجازه استفاده از دستور symlink نمیده (که اکثرا به خاطر مسائل امنیتی نمیدن) از طریق تغییر در فایل config/filesystems.php به صورت زیر مستقیم دیسک public رو به یک پوشه داخل publichtml وصل کنید:

'public' => [
            'driver' => 'local',
            'root' => '/home/USERNAME/domains/DOMAIN.COM/public_html/storage',
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],
علی بیات ( 329498 تجربه )
6 ماه پیش
تخصص : توسعه دهنده ارشد وب

در حین آپلود مسیر و نام فایل رو var_dump بگیرید. مشخص میشه کجا داره ذخیره میشه.

Solgan ( 2230 تجربه )
5 ماه پیش
تخصص : برنامه نویس سمت سرور(php-laravel)

@ali.bayat
داخل خود پوشه storage در روت اصلی آپلود میشه اما داخل فایل public درون public_htlm همزمان قرار نمیگیره و به همین دلیل تصویر نشان داده نمیشه
در صورتیکه من قبل از آپلود روی هاست اصلی دستور php artisan storage::link رو زده بودم.

محمدحسن بختیاری فر ( 1058 تجربه )
2 ماه پیش

@solgan
بنظرم وقتی لینک Symbolic رو به هاست جابه جا می کنید اتصالش بهم میخوره
هر چند شاید دیر شده باشه ولی من با روش زیر کارم راه افتاد.
اگر هاست بهتون اجازه استفاده از دستور symlink نمیده (که اکثرا به خاطر مسائل امنیتی نمیدن) از طریق تغییر در فایل config/filesystems.php به صورت زیر مستقیم دیسک public رو به یک پوشه داخل publichtml وصل کنید:

'public' => [
            'driver' => 'local',
            'root' => '/home/USERNAME/domains/DOMAIN.COM/public_html/storage',
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],
Solgan ( 2230 تجربه )
2 ماه پیش
تخصص : برنامه نویس سمت سرور(php-laravel)

@313ava
سلام خیلی ممنونم بله دقیقا همین چیزی که فرمودید بود.
فقط موقع unlink کردن فایل جهت حذف خود فایل از روی هاست به ارور No such file or directory برخورد کردم. میتونید بنده رو راهنمایی کنید؟

public function destroy($id)
    {
        $photo = Photos::findOrFail($id);
        //$storage_path = '/home/SUNTECHS/public_html/storage/photos';
        unlink(public_path() . $photo->path);
        $photo->delete();

        Session::flash('delete_media', 'فایل با موفقیت حذف شد');
        return redirect('/administrator/media');
    }
محمدحسن بختیاری فر ( 1058 تجربه )
2 ماه پیش

@solgan
از دستورات مربوط به storage جهت حذف استفاده کنید. اینجا رو ببینید.

برای ارسال پاسخ باید وارد سایت شوید