symlink - Projeleri için Sembolik Bağlantı Problemi

Akif Sama

 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!

Yorum Gönder

0Yorumlar
Yorum Gönder (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !