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.
- 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.
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.
Muharrem Tığdemir
Teşekürler bu bilgiden yararlandım.