Magento 2'de bir pub dizinin faydası nedir


11

Belki sadece anlayamıyorum ama dosyalarım zaten önbelleğe alınmışsa, o zaman Magento 2'de bir pub dizininin kullanımı ne olurdu? Tek eğitimli tahminim, geri dönüş mekanizmasının kullanımının, tema için bilinen bir dizi dosyaya sahip olmasıyla hafifletilebileceği yönündeydi.

Dokümanları okuyarak, dinamik, statik ve önbelleğe alınmış dosyaları anlamak için güçlü bir kavrayışa sahip olduğumu hissediyorum, ancak faydayı net bir şekilde anlamıyorum.

Anladığım kadarıyla önbellek, pub dizininin, yedek mekanizmada kullanılan kaynakları azaltmak için dosyaların yerini standartlaştıran bir mekanizma olduğunu tahmin etmem için varlıkları tanımlanmış bilinen bir konumdur.


büyük soru, güvenlik şey tek fayda olup olmadığını merak ediyorum ya da aynı zamanda hızı artırır
Claudiu Creanga

Yanıtlar:


15

Pub dizini, kök dizin varlıklarınıza, yani uygulama dizinine genel erişimi engellemek için bir güvenlik önlemidir. İndex.php dosyasının kök dizinde de bulunmasının nedeni, web barındırıcısı web kökünüzü değiştirmeyi zorlaştıran veya imkansız kılan kişilere yöneliktir.

Pub / index.php kullanılırken, uygulama kaynak klasörüne, index.php kök dizinden çalıştırılıyorsa erişilemez. Bu uygulama Symfony ve Zend 2'de de görülür.

Bu şekilde hiçbir Magento uygulama yapılandırması, şablonu vb. Gösterilmez.

Genel olarak, bir takımdaki ön uç geliştiricileri için pub index.php vs root index.php ile ilgili mimariye ilişkin bilgi gerekli değildir, ancak temellerini anlamak iyidir.


Eklemek gerekir document_root_is_pub = trueGözlerinde farklı ./app/etc/env.phpkök ise /pub/- github.com/magento/magento2/pull/9094
Alex Gusev

10

Magento 2, bir dosya kök klasörünün içinde, diğeri / pub klasörünün içinde olduğu iki index.php dosyasıyla birlikte gelir. Magento 2, uygulamanızı bu dosyalardan herhangi birini kullanarak çalıştırmayı önerir. Uygulamanızı /pub/index.php kullanarak çalıştırmayı seçerseniz, uygulama dosyalarına yetkisiz doğrudan erişimi kısıtladığı için güvenlik açısından iyi bir karardır.

Yan not olarak, /index.phpdosyanın geliştirici modu /pub/index.phpolarak çalıştırıldığını ve üretim modu olarak çalıştırıldığını unutmayın.


1
2 index.php dosyası olduğunu ancak bu tür mimariyi kullanarak uygulamanın yarar ve kullanımının ne olduğunu ele aldığım için teşekkür ederim. Konuyu daha fazla özlemediğim sürece, devam ettim ve Alan Storm, Zend ve Symfony makalelerine ve belgelerine bakarak soruyu cevapladım.
Brian Ellis

dev / prod hakkındaki son açıklamanızla ilgili olarak, bunun nerede yapıldığını doğrulayabilir misiniz? Böyle bir şey görmüyorum
Claudiu Creanga

@Brianellis ile birlikteyim neden bu şekilde olması gerekiyor? Tarayıcıyı görebildiğim kadardan kandırmıyor gibi görünüyor.
ladle3000
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.