آفلاین
user-avatar

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

3 ماه پیش
توسط asani آپدیت شد
آفلاین
user-avatar
Solgan ( 2520 تجربه )
1 سال پیش
تخصص : برنامه نویس سمت سرور(php-laravel)

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

بهترین پاسخ انتخاب شده توسط Solgan
آفلاین
user-avatar

@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',
        ],
آفلاین
user-avatar
علی بیات ( 408279 تجربه )
1 سال پیش
تخصص : توسعه دهنده ارشد وب

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

آفلاین
user-avatar
Solgan ( 2520 تجربه )
1 سال پیش
تخصص : برنامه نویس سمت سرور(php-laravel)

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

آفلاین
user-avatar
محمدحسن بختیاری فر ( 1764 تجربه )
11 ماه پیش

@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',
        ],
آفلاین
user-avatar
Solgan ( 2520 تجربه )
11 ماه پیش
تخصص : برنامه نویس سمت سرور(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');
    }
آفلاین
user-avatar
محمدحسن بختیاری فر ( 1764 تجربه )
11 ماه پیش

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

آفلاین
user-avatar
asani ( 7559 تجربه )
3 ماه پیش
تخصص : کارشناس فنی

@313ava
سلام - خدا خیرت بده مشکل منم حل شد

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