Laravel Storage Link Nasıl Oluşturulur?
Laravel'de kullanıcıların yüklediği resim, PDF, belge ve diğer dosyaların tarayıcı üzerinden erişilebilir olması için storage:link bağlantısının doğru oluşturulması gerekir.
Laravel storage link oluşturma işlemini öğrenin. storage:link komutu, public disk, dosya yükleme, cPanel ve sembolik bağlantı sorunlarını çözün.
İçindekiler
Laravel Storage Link Nasıl Oluşturulur?
Laravel'de kullanıcıların yüklediği resim, PDF, belge ve diğer dosyaların tarayıcı üzerinden erişilebilir olması için storage:link bağlantısının doğru oluşturulması gerekir. Özellikle cPanel'e Laravel taşıdıktan sonra resimler görünmüyor, 404 hatası geliyor veya public/storage klasörü bulunamıyorsa sorun çoğu zaman storage bağlantısıyla ilgilidir.
Laravel Storage Yapısı Nasıldır?
Laravel'de dosyalar genellikle şu dizinde tutulur:
storage/app/public
Web üzerinden erişilebilir olması gereken dosyalar için Laravel'in standart yapısı:
storage/app/public
↓
public/storage
şeklindedir.
Bu bağlantıyı Laravel'in şu komutu oluşturur:
php artisan storage:link
1. Storage Link Oluşturma
Laravel projenizin ana dizininde:
php artisan storage:link
çalıştırın.
Başarılı olduğunda Laravel genellikle:
The [public/storage] directory has been linked.
benzeri bir mesaj verir.
Ardından:
public/storage
oluşmalıdır.
2. Dosyalar Nerede Saklanmalı?
Örneğin bir kullanıcı profil fotoğrafı yüklediğinizi düşünelim.
storage/app/public/uploads/profil.jpg
konumuna kaydedilebilir.
Storage link oluşturulduktan sonra tarayıcıdan:
https://site.com/storage/uploads/profil.jpg
şeklinde erişilebilir.
3. Laravel'de Dosya Yükleme
Örneğin:
$request->file('image')->store('uploads', 'public');
Bu işlem dosyayı:
storage/app/public/uploads/
altına kaydeder.
Blade içerisinde görüntülemek için:
<img src="{{ asset('storage/' . $path) }}" alt="Resim">
kullanabilirsiniz.
4. Storage Link Çalışmıyorsa
Öncelikle:
php artisan storage:link
çalıştırın.
Eğer:
The [public/storage] directory already exists.
gibi bir hata alırsanız mevcut bağlantıyı kontrol edin.
Linux ortamında:
ls -la public/storage
ile kontrol edebilirsiniz.
5. Eski Storage Link'i Silme
Yanlış bir symbolic link oluşturulduysa önce:
rm public/storage
ardından:
php artisan storage:link
çalıştırılabilir.
Dikkat: public/storage gerçekten symbolic link olduğundan emin olmadan silme işlemi yapmayın.
6. cPanel'de Storage Link
cPanel Terminal üzerinden Laravel ana dizinine gidin:
cd /home/kullanici/laravel-projesi
Ardından:
php artisan storage:link
çalıştırın.
Kontrol:
ls -la public/storage
Eğer bağlantı doğruysa public/storage bir symbolic link olarak görünmelidir.
7. Laravel public_html Yapısında Storage
Laravel dosyalarınızı:
/home/kullanici/epiklojistikv1
altında tutup public klasörünü:
/home/kullanici/public_html
olarak kullanıyorsanız standart storage:link davranışını özellikle kontrol etmeniz gerekir.
Çünkü Laravel'in kendi public dizini ile gerçek web root birbirinden ayrılmıştır.
Bu durumda bağlantının gerçekten:
public_html/storage
üzerinden erişilebilir olması gerekir.
8. Resimler Yükleniyor Ama Görünmüyorsa
Öncelikle dosyanın gerçekten oluştuğunu kontrol edin:
storage/app/public/uploads/
Ardından:
public/storage/uploads/
üzerinden erişilebilir olup olmadığını kontrol edin.
Örneğin dosyanız:
storage/app/public/uploads/logo.png
ise URL:
https://site.com/storage/uploads/logo.png
olmalıdır.
9. Laravel Storage Disk Ayarını Kontrol Edin
config/filesystems.php içerisinde public disk yapılandırmasını kontrol edin.
Genellikle:
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
şeklinde bir yapı kullanılır.
.env içerisinde de:
APP_URL=https://site.com
gibi doğru domain bulunmalıdır.
10. Dosya İzinlerini Kontrol Edin
Dosyalar mevcut olmasına rağmen erişilemiyorsa dosya ve klasör izinlerini kontrol edin.
Örneğin:
chmod -R 755 storage
chmod -R 755 public
Ancak sunucunuzun kullanıcı/izin yapısına göre uygun izinleri kullanın. Gereksiz şekilde 777 vermek güvenli bir çözüm değildir.
11. Laravel Cache Temizleme
Dosya sistemi veya .env ayarlarında değişiklik yaptıysanız:
php artisan optimize:clear
çalıştırabilirsiniz.
Ardından:
php artisan storage:link
ile bağlantıyı kontrol edin.
12. storage:link Komutu Bulunamıyorsa
Şu komut:
php artisan storage:link
çalışmıyorsa öncelikle doğru Laravel dizininde olduğunuzu kontrol edin:
pwd
Ardından:
ls
çıktısında:
artisan
app
bootstrap
config
public
storage
vendor
gibi Laravel dosyalarını görmelisiniz.
13. Symbolic Link Nedir?
Symbolic link, bir klasör veya dosyaya başka bir konumdan erişim sağlayan bağlantıdır.
Laravel'de:
public/storage
bağlantısı:
storage/app/public
klasörüne erişim sağlar.
Mantık:
Tarayıcı
↓
public/storage
↓
storage/app/public
şeklindedir.
14. storage:link Sonrası 404 Alıyorum
Dosya gerçekten mevcutsa şu üç noktayı kontrol edin:
storage/app/public/dosya.jpg
public/storage
/storage/dosya.jpg
Ayrıca URL'nin:
/storage/dosya.jpg
şeklinde olduğundan emin olun.
Dosyayı doğrudan:
/storage/app/public/
üzerinden çağırmaya çalışmayın.
15. Laravel Storage Link Windows'ta
Windows geliştirme ortamında symbolic link davranışı Linux/cPanel'den farklı olabilir.
Laravel komutunu yine:
php artisan storage:link
şeklinde çalıştırabilirsiniz.
Sorun yaşanırsa Windows'un symbolic link izinleri ve kullanılan terminal ortamı kontrol edilmelidir.
16. Storage Link'i Production'a Taşırken
Local bilgisayarda oluşturduğunuz symbolic linki her zaman FTP ile normal klasör gibi taşımaya çalışmayın.
Production sunucuda Laravel ana dizininde:
php artisan storage:link
çalıştırmak daha sağlıklı yöntemdir.
17. Birden Fazla Storage Link
Laravel'in filesystems.php yapılandırması üzerinden ek linkler tanımlanabilir.
Örneğin:
'links' => [
public_path('storage') => storage_path('app/public'),
],
Laravel'in standart storage bağlantısını tanımlar.
Özel ihtiyaçlarda başka bağlantılar da yapılandırılabilir.
18. Storage Link Güvenlik Açığı Mıdır?
public/storage üzerinden yalnızca web erişimine açılması gereken dosyalar sunulmalıdır.
Özel veya hassas dosyaları:
storage/app/private
gibi web erişimi olmayan alanlarda tutmak daha uygundur.
Örneğin:
storage/app/private/faturalar/
içindeki belgelerin doğrudan public URL ile açılması istenmeyebilir.
19. Laravel'de Storage::url() Kullanımı
Dosya URL'si oluşturmak için:
$url = Storage::disk('public')->url($path);
kullanabilirsiniz.
Örneğin:
$path = $request->file('image')->store('uploads', 'public');
$url = Storage::disk('public')->url($path);
Bu yapı public storage diskini kullanır.
20. En Hızlı Storage Link Çözümü
Laravel ana dizininde:
php artisan optimize:clear
php artisan storage:link
Ardından dosyanın:
storage/app/public/
içerisinde bulunduğunu ve:
public/storage/
üzerinden erişilebilir olduğunu kontrol edin.
Sık Sorulan Sorular — 20 S.S.S.
1. Laravel storage link nedir?public/storage ile storage/app/public arasında web üzerinden dosya erişimi sağlayan symbolic link'tir.
2. Laravel storage link nasıl oluşturulur?
Laravel ana dizininde php artisan storage:link komutu çalıştırılır.
3. Laravel storage link neden gerekli?storage/app/public içerisindeki dosyaların web üzerinden /storage/... URL'siyle erişilebilir olması için kullanılır.
4. Laravel'de yüklenen resimler neden görünmüyor?
Storage link oluşturulmamış, dosya yanlış dizine kaydedilmiş veya URL yanlış oluşturulmuş olabilir.
5. php artisan storage:link ne işe yarar?
Laravel'in public dizini ile storage/app/public arasında symbolic link oluşturur.
6. Laravel storage link cPanel'de nasıl oluşturulur?
cPanel Terminal'de Laravel ana dizinine geçip php artisan storage:link çalıştırılır.
7. public/storage klasörü neden oluşmuyor?
Yanlış dizinde komut çalıştırılmış olabilir, Laravel izin problemi yaşanabilir veya mevcut bir dosya/klasör bağlantıyı engelliyor olabilir.
8. Laravel storage link 404 veriyor, ne yapmalıyım?
Dosyanın storage/app/public altında bulunduğunu, public/storage bağlantısını ve /storage/ URL'sini kontrol edin.
9. Laravel dosya yükleme için hangi disk kullanılmalı?
Web üzerinden erişilecek dosyalarda Laravel'in public disk yapısı kullanılabilir.
10. Laravel'de dosya nasıl public storage'a kaydedilir?
Örneğin store('uploads', 'public') kullanılarak dosya public diskine kaydedilebilir.
11. Laravel storage link silinebilir mi?
Symbolic link olduğu doğrulandıktan sonra silinip yeniden oluşturulabilir.
12. Laravel storage klasörüne 777 vermek gerekir mi?
Genellikle hayır. Gereksiz şekilde 777 kullanmak yerine sunucunun doğru sahiplik ve izin yapısı kullanılmalıdır.
13. Laravel storage link Windows'ta çalışır mı?
Çalışabilir ancak Windows symbolic link izinleri ve geliştirme ortamı yapılandırması kontrol edilmelidir.
14. Laravel storage link production'a nasıl aktarılır?
Symbolic linki FTP ile taşımak yerine production sunucuda php artisan storage:link çalıştırmak tercih edilebilir.
15. Laravel public storage URL'si nasıl oluşturulur?asset('storage/' . $path) veya Storage::disk('public')->url($path) kullanılabilir.
16. Laravel storage link ile private dosyalar açılır mı?
Public dosyalar için kullanılır. Hassas dosyalar doğrudan public storage altında tutulmamalıdır.
17. Laravel storage link sonrası cache temizlenir mi?
Sorun devam ediyorsa php artisan optimize:clear çalıştırılabilir.
18. Laravel storage link neden cPanel'de çalışmıyor?
Yanlış Laravel dizini, izinler, public dizinin ayrıştırılması veya symbolic link desteği sorun oluşturabilir.
19. Laravel'de storage link olmadan dosya gösterilebilir mi?
Dosya başka bir güvenli yöntemle servis edilebilir ancak Laravel'in standart public disk yapısında storage:link kullanılır.
20. Laravel storage link için en önemli komut nedir?
Temel komut:
php artisan storage:link
Sonuç
Laravel'de dosyaların web üzerinden görüntülenmemesinin en yaygın nedenlerinden biri storage bağlantısının bulunmamasıdır.
Temel yapı:
storage/app/public
↓
public/storage
ve bağlantıyı oluşturmak için:
php artisan storage:link
kullanılır.
cPanel'de Laravel'in public klasörü public_html dışında veya farklı bir yapıda konumlandırılmışsa bağlantının gerçek web root'a doğru şekilde yönlendirildiğini ayrıca kontrol etmek gerekir.
Bu Konudaki Seri
Hosting- 1 WordPress 500 Internal Server Error Nasıl Çözülür? (2026)
- 2 WordPress Yönetim Paneline Giremiyorum! Kesin Çözüm (2026)
- 3 WordPress Beyaz Ekran Hatası Nasıl Çözülür? (2026 Rehberi)
- 4 WordPress Bellek Limiti (Memory Limit) Hatası Nasıl Çözülür? (2026)
- 5 WordPress Veritabanı Bağlantısı Kurulamadı Hatası Nasıl Çözülür?
- 6 WordPress 404 Sayfa Bulunamadı Hatası Nasıl Çözülür? (2026)
- 7 WordPress SSL Hatası Nasıl Çözülür? (2026 Rehberi)
- 8 Mersin Yazılım Firmaları | Özel Yazılım Çözümleri 2026
Whois Sorgula
Alan adı sahipliği, yenileme tarihi ve DNS bilgilerini ücretsiz sorgulayın.