Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 23.08.2013 15:13:02

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,400
Website

Paylaşımlı Sunucuya Laravel 4 Yüklemek

En çok sorulan sorulardan biri olan bu konuya açıklama getirmek için bir makale yazdım: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Laravel Türkiye için blog sayfası tamamlandığı zaman makaleleri oraya taşıyacağım.

Çevrimdışı

#2 11.01.2014 15:12:34

mertkabadayi
Üye
Yer: İSTANBUL
Kayıtlı: 10.01.2014
Mesajlar: 41
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Sinan hocam, makalenizde public dizinin kaldırılması ile güvenlik açığı oluşacağını ve ulaşılmaması gereken alt dizinlere de ulaşılabileceğini belirtmiştiniz.

CodeIgniter'da bu sorunun her bir klasör içine .htaccess ile dosyası yaratılarak çözüldüğünü görüyoruz.
Public dizini buna karşılık olması için mi böyle yapıldı. Bu konuda bilgi verebilirseniz sevinirim.

Çevrimdışı

#3 13.01.2014 10:18:50

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,400
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Merhaba Mert,

Buradaki amaç kullanıcının doğrudan erişim yapabildiği dizinlerin web üzerinden /adres/satırı biçiminde ulaşılabilir olmasını önlemektir.
Dolayısıyla public dizini dışındaki dizinlere siz uygulamanız içerisinden yazma işlemi yapmadığınız sürece yazılma (silme/güncelleme/ekleme) yapılamayacaktır.

Çevrimdışı

#4 01.03.2014 21:01:01

YTolun
Üye
Kayıtlı: 01.03.2014
Mesajlar: 3

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Hocam ben de Laravel'e CodeIgniter'dan geçiyorum. /public klasörünü dışarı taşıyarak bir kaç path editlemesi ile ana dizine taşıma methodunu kullandım. Şimdi sizin yazınızı görünce denemek amacıyla http://localhost/projem/app adresine gitmeye çalıştığımda http://localhost/app adresine yönlendirip 404 hatası veriyor. Ancak app yada vendor dışında bir şey yazdığımda Whoops ekranıyla karşılaşıyorum. Sizce bu yine de izlenmemesi gereken bir yol mudur?(Düşüncem bazı shared hostinglerin public_html'in bir üst dizinine dahi erişim vermemesi nedeniyle bu ayrıntıyı tamamen ortadan kaldırmaktı.)

Edit: Şu an .htaccess yöntemini de denedim, bu yolda da herhangi bir yönlendirme yapmaksızın 403 Forbidden veriyor.

Son düzenleyen YTolun (01.03.2014 21:03:31)

Çevrimdışı

#5 04.07.2014 16:26:46

betho
Üye
Kayıtlı: 15.05.2014
Mesajlar: 71

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Public i kaldırmak ve içeriğini dışarı taşımak çok doğru bir yaklaşım değil bence çünkü laravel tarafından ortaya konulan çok önemli bir güvenlik olayını devre dışı bırakarak kendi çabalarınızla güvenlik sağlamaya çalışmış olursunuz

Bunu çözmek çok daha basit aslında ve de güvenli şöyleki Ana dizin içerisine bir adet .htaccess oluşturun ardından içerisine

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^siteadiniz\.com [NC]
    RewriteRule ^(.*)$ http://www.siteadiniz.com/$1 [L,R=301]
        RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

bu kodları yazınız ve siteadiniz yazan yerlere kendi site domaininizi yazınız  bundan sonra kesinlikle public klasörü ile uğraşmanız gerekmeyecektir

Selam ve dua ile

Son düzenleyen betho (05.07.2014 11:49:00)

Çevrimdışı

#6 10.01.2015 08:59:35

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

sineld yazdı:

En çok sorulan sorulardan biri olan bu konuya açıklama getirmek için bir makale yazdım: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Laravel Türkiye için blog sayfası tamamlandığı zaman makaleleri oraya taşıyacağım.

@sineld blogunda anlattığın gibi hostinge attım localhost umda çalışan laraveli. controllerımdan çağırdığım şu kodlarla view çağırıyorum

public function home(){
	return View::make('modules.index');
}

modules/index.blade.php dosyası geliyor. Bu dosyam içinde bazı viewleri include ediyorum. Localde çalışan bu includelar. burada direk ekrana basılıyor. Şunun gibi...

Ashampoo_Snap_2015.01.10_08h46m15s_003_Mozilla%2BFirefox.png

bu sorunu nasıl aşabilirim? Hata nerede anlamadım?


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#7 10.01.2015 14:31:32

betho
Üye
Kayıtlı: 15.05.2014
Mesajlar: 71

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

erenMustafaOzdal yazdı:
sineld yazdı:

En çok sorulan sorulardan biri olan bu konuya açıklama getirmek için bir makale yazdım: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Laravel Türkiye için blog sayfası tamamlandığı zaman makaleleri oraya taşıyacağım.

@sineld blogunda anlattığın gibi hostinge attım localhost umda çalışan laraveli. controllerımdan çağırdığım şu kodlarla view çağırıyorum

public function home(){
	return View::make('modules.index');
}

modules/index.blade.php dosyası geliyor. Bu dosyam içinde bazı viewleri include ediyorum. Localde çalışan bu includelar. burada direk ekrana basılıyor. Şunun gibi...

https://lh4.googleusercontent.com/-DL1q … irefox.png

bu sorunu nasıl aşabilirim? Hata nerede anlamadım?

Eğer include ettiğiniz dosyaları blade motoru ile extend ediyor ve ayrıca master dosyasına include  ediyorsanız olabilecek bir hata olarak düşünüyorum, o Nedenle eğer extend edilmiş dosyaları çağırmak istiyorsanız @yield kullanmalısınız ama extend  edilmemiş kod bloklarını alt sayfalar olarak çağıracaksanız o zaman include edebilirsiniz , yani hem extend hem include kullanmışsınız gibi görünüyor.
Soruna daha net cevap verebilmek için bir adet blade sayfa yapınızı ve master sayfa yapınız görmek gerekecek ben sadece tahmin ettiğim hata sebebini yazdım

Bir de master sayfanızın en başındaki @extend ifadesinden önce boşluk olmadığına emin olunuz
Kolay gelsin

Çevrimdışı

#8 10.01.2015 14:43:12

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

betho yazdı:

Soruna daha net cevap verebilmek için bir adet blade sayfa yapınızı ve master sayfa yapınız görmek gerekecek ben sadece tahmin ettiğim hata sebebini yazdım

bu controller ile çağırdığım blade

@include('beginner')
@include('header')
<body class="page-header-fixed page-quick-sidebar-over-content page-full-width">
@include('modules.index.header')
@include('modules.index.slider')
@include('modules.index.about')
@include('modules.index.property')
@include('modules.index.message')
@include('modules.index.team')
@include('modules.index.whyUse')
@include('modules.index.footer')

@include('pageEnd')
</body>
</html>

Burada sayfanın parçalarını çağırıyorum. mesela çağırdıklarımdan header şu şekilde:

<div class="header header-mobi-ext">
	<div class="container">
		<div class="row">
			{{-- Logo BEGIN --}}
			<div class="col-md-4 col-sm-4">
				<a id="onepageHeaderLogo" class="scroll site-logo" href="#anasayfa" title="{{{Config::get('configSite.SLOGAN')}}}">
					<img alt="Halı Saha Havuzu Logo" src="{{{Config::get('configSite.LOGO')}}}">
				</a>
			</div>
			{{-- Logo END --}}
			<a href="javascript:void(0);" class="mobi-toggler"><i class="fa fa-bars"></i></a>
			{{-- Navigation BEGIN --}}
			<div class="col-md-8 pull-right">
				<ul class="header-navigation">
					<li class="current">
						<a href="#anasayfa">ANASAYFA</a>
					</li>
					<li class="">
						<a href="#hakkimizda">HAKKIMIZDA</a>
					</li>
					<li class="">
						<a href="#ozelliklerimiz">ÖZELLİKLERİMİZ</a>
					</li>
					<li class="">
						<a href="#takim">TAKIM</a>
					</li>
					<li class="">
						<a href="#nedenKullanmalisin">NEDEN KULLANMALISIN?</a>
					</li>
					<li class="">
						<a href="/halisahalar">HALI SAHALAR</a>
					</li>
				</ul>
			</div>
			{{-- Navigation END --}}
		</div>
	</div>
</div>
{{-- Header END --}}

Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#9 10.01.2015 17:04:23

MURATSPLAT
Yönetici
Yer: Antalya
Kayıtlı: 06.05.2014
Mesajlar: 642
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Merak ettim. Blade özellikleri olan @yield() ve @section() neden kullanmıyorsunuz ?

Çevrimdışı

#10 10.01.2015 17:19:15

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

MURATSPLAT yazdı:

Merak ettim. Blade özellikleri olan @yield() ve @section() neden kullanmıyorsunuz ?

smarty de include kullanıyordum. Alışkanlıktan diyebilirim


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#11 11.01.2015 08:10:57

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

MURATSPLAT yazdı:

Merak ettim. Blade özellikleri olan @yield() ve @section() neden kullanmıyorsunuz ?

@MURATSPLAT @section ve @yield kullandım düzeldi. Ancak App/Lib dizininde kendi kullandığım sınıflar var. Localde bunları sorunsuz görüyor. Sayfa başına

use Lib\OrnekDizin\OrnekSinif as OrnekSinif

diye ekliyorum. Ancak online sunucuda çalışmadı.

Class ... not found

hatası alıyorum...


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#12 11.01.2015 09:54:53

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Ancak nerede yine @include(...) ile bir blade dosyası çağırsam. Çağırmıyor, ekrana basıyor @include(...) şeklinde...


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#13 11.01.2015 11:53:45

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

arkadaşlar ben @yield ile problemimi çözdüm. Ancak @include neden çalışmıyor anlamadım smile


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#14 11.01.2015 11:55:18

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

erenMustafaOzdal yazdı:

Ancak App/Lib dizininde kendi kullandığım sınıflar var. Localde bunlar sorunsuz görüyor. Sayfa başına

use Lib\OrnekDizin\OrnekSinif as OrnekSinif

diye ekliyorum. Ancak online sunucuda çalışmadı.

Class ... not found

hatası alıyorum...

bu hata devam etmekte. Yardımlarınız bekliyorum...


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#15 11.01.2015 13:55:04

MURATSPLAT
Yönetici
Yer: Antalya
Kayıtlı: 06.05.2014
Mesajlar: 642
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

erenMustafaOzdal yazdı:
MURATSPLAT yazdı:

Merak ettim. Blade özellikleri olan @yield() ve @section() neden kullanmıyorsunuz ?

@MURATSPLAT @section ve @yield kullandım düzeldi. Ancak App/Lib dizininde kendi kullandığım sınıflar var. Localde bunları sorunsuz görüyor. Sayfa başına

use Lib\OrnekDizin\OrnekSinif as OrnekSinif

diye ekliyorum. Ancak online sunucuda çalışmadı.

Class ... not found

hatası alıyorum...

Paylaşımlı hosting tecrübem yok. Sınıf bağlımlılıklarını composer ile yönetmek en konforlusu. Bu yüzden paylaşımlı sunucular kullanmamak lazım..

Çevrimdışı

#16 11.01.2015 14:17:19

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

MURATSPLAT yazdı:

Sınıf bağlımlılıklarını composer ile yönetmek en konforlusu. Bu yüzden paylaşımlı sunucular kullanmak lazım..

Localde bütün bağımlılıkları composer ile tanımladım.

"classmap": [
        "app/lib"
]

gibi. Composer sunucuda da illa çalışmak durumunda mı? Local de bağımlılıkları ilgili dosyalara ekliyor ve güncelliyor diye biliyordum. Yoksa her istek de çalışıyor mu?

Benim bildiğime göre, localde ayarlamaları ve bağımlılıkları yapılmış laraveli sunucuya atınca da çalışması lazım... Ama bu doğru değilse, Composer'le yaptığım bütün bağımlılık ayarları boşuna oldu. Paylaşımlı sunucu için manuel yapmak gerekecek

Son düzenleyen erenMustafaOzdal (11.01.2015 14:18:04)


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

#17 11.01.2015 16:34:12

MURATSPLAT
Yönetici
Yer: Antalya
Kayıtlı: 06.05.2014
Mesajlar: 642
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

Paylaşımlı sunucu hiç kullanmadım. Çünkü baş belasıdır. Zaman kaybıdır.
Composer değiniz gibi eğer belirtilirse(json dosyasında) autoloading'e dahil ediliyor bulunan sınıfları.

Her defasında bağımlılık kontrolü yapılmıyor elbette.

Bulanmayan sınıflar composer'in vendor/composer/autoload_classmap.php dosyasında yer alıyor mu diye kontrol edebilirsiniz.

NameSpace alanları kullanarak PSR standartına göre sınıflarınızı kullanırsanız buna benzer sorunları yaşama olasılığınız düşer.

Çevrimdışı

#18 13.01.2015 23:42:15

erenMustafaOzdal
Üye
Yer: İstanbul
Kayıtlı: 29.11.2014
Mesajlar: 30
Website

Yanıt: Paylaşımlı Sunucuya Laravel 4 Yüklemek

@include paylaşımlı sunucuda çalışmadığı gibi, @if çalışıyor ancak @endif çalışmıyor sad

kodum şu

<li class="@if ($requestUri == 'rezervasyon') active @endif">
                    <a href="{{{$link}}}/rezervasyon">
                        <i class="fa fa-search"></i>
                        <span>Rezervasyon Sorgula</span>
                        <span class="selected"></span>
                    </a>
         </li>

aldığım hata da bu

production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'syntax error, unexpected 'endif' (T_ENDIF)' in /home/halisaha/app/storage/views/f661da20cca2b6af4e4d990e4c784639:16

artık view içindeki blade dosyalarımda http://stackoverflow.com/questions/2760 … templating şu arkadaşın kullandığı gibi php etiketi kullanacağım istemesem de... sad


Dünyayı değiştirebileceklerine inanacak kadar çılgın olan insanlar, bunu yapan insanlardır.

Çevrimdışı

Forum alt kısmı