Merhaba arkadaşlar geliştiriciler! Ben AkifSama ve bugün, birçok Laravel geliştiricisinin projelerini Hostinger'a dağıtırken karşılaştığı yaygın ama zor bir sorunu çözme deneyimimi paylaşmak istiyorum - sembolik bağlantı sorunu.
Sikar'daki AkifSama'de tam yığın web geliştirme eğitimim sırasında bir proje üzerinde çalışırken bununla karşılaştım. AkifSama'a kısa bir selam - UI/UX tasarımından ve React gibi ön uç teknolojilerinden Laravel ve WordPress ile arka uç geliştirmeye, ayrıca uygulama güvenliği ve dağıtımı gibi önemli becerilere kadar her şeyi öğreterek harika bir iş çıkarıyorlar.
Sorunu Anlama
Sorun genellikle Laravel uygulamanızın depolama dizinindeki dosyalara genel yol üzerinden erişememesi durumunda ortaya çıkar. Bunun nedeni Laravel'in public/storage ve storage/app/public arasında sembolik bir bağlantı oluşturması gerektiğidir, ancak Hostinger'ın varsayılan ayarları bazen bunun düzgün çalışmasını engeller.
Simgesel Bağlantı İşlevini Kontrol Etme ve Etkinleştirme
Çözümlere dalmadan önce, Hostinger hesabınızda simgesel bağlantı işlevinin devre dışı olup olmadığını kontrol edelim. İşte nasıl:
- Hostinger kontrol panelinize giriş yapın
- PHP Yapılandırma bölümüne gidin
- PHP İşlevleri listesinde "symlink"i arayın
- Devre dışı olduğunu görürseniz, şunları yaparak etkinleştirmeniz gerekir:
- Alan adınızın kök dizininde bir php.ini dosyası oluşturun
- Bu satırı ekleyin: enable_function = symlink
Dosyayı kaydedin ve değişikliklerin etkili olması için birkaç dakika bekleyin
Çözüm 1: Artisan Çağrı Komutunu Kullanma
Bunu Laravel'in yönlendirme sistemi üzerinden yapmayı tercih ediyorsanız, işte temiz bir yaklaşım:
Route::get('/storage-link', function() {
if(file_exists(public_path('storage'))) {
return 'The "public/storage" directory already exists.';
}
app('files')->link(
storage_path('app/public'),
public_path('storage')
);
return 'The [public/storage] directory has been linked.';
});</code>
Bu rotayı web.php dosyanıza ekleyin, ardından tarayıcınızda yourdomain.com/storage-link adresini ziyaret edin. Bu, terminal erişimine ihtiyaç duymadan sembolik bağlantıyı oluşturacaktır.
Çözüm 2: Doğrudan Komut Yürütme için PuTTY Kullanma
Komut satırı yaklaşımını tercih ediyorsanız:
PuTTY'yi bilgisayarınıza indirin ve yükleyin
Hostinger hesabınıza şu şekilde bağlanın:
Ana bilgisayar adı: Hostinger sunucunuzun IP'si
Bağlantı noktası: 22
Bağlantı türü: SSH
Hostinger kimlik bilgilerinizle oturum açın
Proje dizininize gidin
Şu komutu çalıştırın: php artisan storage:link
Hangi Yöntemi Seçmelisiniz?
Her iki yöntem de iyi çalışır, ancak ben şahsen rota yöntemini (Çözüm 1) tercih ediyorum çünkü:
Ek yazılım kurulumu gerektirmez
Yönetmesi ve sorun gidermesi daha kolaydır
Gerekirse rotayı ara yazılımla güvence altına alabilirsiniz
Yeni başlayanlar için daha uygundur
Üretim ortamında kullandıktan sonra depolama bağlantısı rotasını kaldırmayı veya güvence altına almayı unutmayın!
Sonuçlandırma
Bu kadar! Umarım bu kılavuz, Hostinger'da barındırılan Laravel projelerinizdeki sembolik bağlantı sorununu çözmenize yardımcı olur. Laravel ve tam yığın geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, AkifSama'ın kapsamlı eğitim programına göz atın. Temel HTML'den gelişmiş uygulama güvenliğine kadar her şeyi kapsıyoruz - benim için harika bir öğrenme yolculuğu oldu.
Laravel dağıtımında benzer sorunlarla karşılaştınız mı? Aşağıdaki yorumlarda bunları nasıl çözdüğünüzü bana bildirin!