Laravel 4 Paylaşımlı Host Yayın(Shared Host Publish)

Merhaba Arkadaşlar ,

Bugün itibari ile ilk Laravel 4 projemi yayına hazırladım. Her proje için VPS ve SSH bağlantısı malum biraz lüks olabiliyor. Aşağıdaki adımları takip ederseniz. Projenizi paylaşımlı hostta ssh bağlantısı olmadan yayınlayabilirsiniz.

Öncelikle bu konuda birçok yöntem olduğunu belirteyim. Ben güvenli ve basit olanı tercih ediyorum. Bu işlem Rewreite Rule kullanılarak da elbette yapılabilir. Ancak bütün kodlarımızı sere serpe ziyaretçilere sunmak istemiyoruz..

  • Laravel projenizdeki /public klasörünün bütün dosyalarını , /public_html veya /www  içine kopyalayın.
laravel_shared_host

laravel_shared_host

  • Root dizinine yeni bir klasör oluşturun. Benimki ‘portal’ olacak.
  • App , vendor , bootstrap vs.. yani public dışında ki bütün dosyaları portal klasörünün içine kopyalayın.

root folder

 

Son durumda yukarıdaki bir dosya yapısına sahip olacaksınız. Sonuç olarak public klasörünü yayına almış olduk ve Kaynak kodlarımız root dizininde gözden ve gönülden uzak kaldı 😀

  • Son olarak /public_html veya /www klasöründeki index.php dosyasını açıyoruz.
  • /*Before*/
    require __DIR__.'/../bootstrap/autoload.php';
    $app = require_once __DIR__.'/../bootstrap/start.php';
    
    /*After*/
    require __DIR__.'/../portal/bootstrap/autoload.php';
    $app = require_once __DIR__.'/../portal/bootstrap/start.php';

    Dosya yolunu yukarıdaki gibi değiştrin. Benim klasör ismim portal’dı.

 

GUNCELLEME

Eğer file upload kullanıyor ve dosya yolunu düzenlemezseniz veya public_path() komutunu kullanıyor iseniz , yukarıda bahsettiğim çözümde hata alacaksınız. Çözüm için , “bootstrap/paths.php” dosyasındaki ‘public’  değerini değiştirmelisiniz.

	/*
	|--------------------------------------------------------------------------
	| Public Path
	|--------------------------------------------------------------------------
	|
	| The public path contains the assets for your web application, such as
	| your JavaScript and CSS files, and also contains the primary entry
	| point for web requests into these applications from the outside.
	|
	*/
	'public' => __DIR__.'/../public',

      
        /*SHARED HOST FIX*/
	'public' => __DIR__.'/../../public_html',


Benim yayın klasörüm “public_html” klasörünüze göre değişikliği yaparsanız sorun çözülecektir.

Thanks Hardik Dangar

Muharrem Tığdemir

1 Comment

  • Ahmet Uğur

    April 30, 04 2016 02:16:28

    Teşekürler bu bilgiden yararlandım.

Leave a Reply