Apa manfaat direktori pub di Magento 2


11

Mungkin saya tidak mendapatkannya tetapi jika file saya sudah di-cache maka apa gunanya direktori pub di Magento 2? Satu-satunya dugaan saya yang berpendidikan adalah bahwa penggunaan mekanisme fallback dapat dikurangi dengan memiliki set file yang dikenal untuk tema.

Melalui membaca dokumen saya tidak memiliki pemahaman yang jelas tentang manfaatnya meskipun saya merasa memiliki pemahaman yang kuat tentang file dinamis, statis, dan cache.

Seperti yang saya pahami, cache hanyalah sebuah lokasi yang diketahui dari aset yang membuat saya menebak bahwa direktori pub adalah mekanisme yang menstandarkan tempat file untuk mengurangi sumber daya yang digunakan pada mekanisme fallback.


pertanyaan yang bagus, saya bertanya-tanya apakah masalah keamanan adalah satu-satunya manfaat atau juga meningkatkan kecepatan
Claudiu Creanga

Jawaban:


15

Direktori pub adalah tindakan pengamanan untuk memblokir akses publik ke aset direktori root Anda, yaitu direktori aplikasi. Alasan bahwa index.php juga terletak di direktori root dianggap untuk mengatasi orang-orang yang hostingnya menyulitkan atau tidak mungkin mengubah webroot Anda.

Saat menggunakan pub / index.php folder sumber aplikasi tidak akan dapat diakses sementara itu bisa terjadi jika index.php dijalankan dari direktori root. Praktek ini juga terlihat di Symfony dan Zend 2.

Dengan cara ini, tidak ada konfigurasi aplikasi, templat, dll yang terbuka.

Secara umum, pengetahuan arsitektur sehubungan dengan pub index.php vs root index.php tidak diperlukan untuk pengembang frontend dalam sebuah tim, tetapi memahami dasar-dasarnya baik untuk diketahui.


Anda perlu menambahkan document_root_is_pub = truedalam Anda ./app/etc/env.phpjika akar Anda /pub/- github.com/magento/magento2/pull/9094
Alex Gusev

10

Magento 2 dilengkapi dengan dua file index.php di mana satu file berada di dalam folder root dan yang lainnya di dalam folder / pub. Magento 2 menawarkan untuk menjalankan aplikasi Anda menggunakan salah satu dari file ini. Jika Anda memilih untuk menjalankan aplikasi Anda menggunakan /pub/index.php maka itu adalah keputusan yang baik untuk sudut pandang keamanan karena itu membatasi akses langsung tidak sah dari file aplikasi.

Sebagai catatan, ada baiknya untuk diingat bahwa /index.phpfile digunakan saat menjalankan sebagai mode pengembang dan /pub/index.phpdigunakan saat berjalan sebagai mode produksi


1
Saya menghargai menunjukkan bahwa ada 2 file index.php tetapi untuk apa manfaat dan penggunaan implementasi menggunakan arsitektur tipe ini, tidak ada yang ditangani. Kecuali, saya kehilangan lebih banyak ke subjek saya pergi ke depan dan menjawab pertanyaan dari melihat melalui Alan Storm, artikel dan dokumen Symfony.
Brian Ellis

mengenai pernyataan terakhir Anda tentang dev / prod, dapatkah Anda mengkonfirmasi di mana ini dilakukan? Saya tidak melihat hal seperti itu
Claudiu Creanga

Saya dengan @brianellis mengapa harus seperti ini? Sepertinya itu tidak memperdaya browser dari apa yang saya lihat.
ladle3000
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.