¿Cuál es el beneficio de un directorio de pub en Magento 2?

11

Tal vez no lo estoy obteniendo, pero si mis archivos ya están en caché, ¿cuál sería el uso de un directorio pub en Magento 2? Mi única suposición educada sería que el uso del mecanismo de reserva podría aliviarse un poco al tener un conjunto conocido de archivos para el tema.

Al leer los documentos, no entiendo claramente el beneficio, aunque siento que tengo una gran comprensión de los archivos dinámicos, estáticos y en caché.

Según tengo entendido, el caché es simplemente una ubicación conocida definida de los activos que me llevó a adivinar que el directorio pub es un mecanismo que estandariza el lugar de los archivos para reducir los recursos que se utilizan en el mecanismo de reserva.

Brian Ellis
fuente
gran pregunta, me pregunto si la seguridad es el único beneficio o si también mejora la velocidad
Claudiu Creanga

Respuestas:

15

El directorio pub es una medida de seguridad para bloquear el acceso público a los activos del directorio raíz, es decir, el directorio de la aplicación. Se supone que la razón por la que index.php también se encuentra en el directorio raíz se dirige a las personas cuyo host web hace que sea difícil o imposible cambiar su raíz web.

Al utilizar pub / index.php, no se podrá acceder a la carpeta de origen de la aplicación, aunque podría ser si index.php se ejecutara desde el directorio raíz. Esta práctica también se ve en Symfony y Zend 2.

De esta manera, ninguna de las configuraciones, plantillas, etc. de la aplicación Magento queda expuesta.

En general, el conocimiento de la arquitectura con respecto al pub index.php vs root index.php no es necesario para los desarrolladores frontend de un equipo, pero es bueno conocer sus conceptos básicos.

Brian Ellis
fuente
necesita agregar document_root_is_pub = trueen su ./app/etc/env.phpsi su raíz es /pub/- github.com/magento/magento2/pull/9094
Alex Gusev
10

Magento 2 viene con dos archivos index.php donde un archivo está dentro de la carpeta raíz y otro dentro de la carpeta / pub. Magento 2 ofrece ejecutar su aplicación utilizando cualquiera de estos archivos. Si elige ejecutar su aplicación usando /pub/index.php, entonces es una buena decisión para el punto de vista de seguridad, ya que restringe el acceso directo no autorizado a los archivos de la aplicación.

Como nota al margen, es bueno tener en cuenta que el /index.phparchivo se usa cuando se ejecuta como modo de desarrollador y /pub/index.phpcuando se ejecuta como modo de producción

Raphael en Digital Pianism
fuente
1
Aprecio señalar que hay 2 archivos index.php, pero en cuanto a cuál fue el beneficio y el uso de la implementación con este tipo de arquitectura, ninguno de ellos fue abordado. A menos que me falte más en el tema, seguí adelante y respondí la pregunta mirando los artículos y documentos de Alan Storm, Zend y Symfony.
Brian Ellis
con respecto a su última declaración sobre dev / prod, ¿puede confirmar dónde se hace esto? No veo nada de eso
Claudiu Creanga
Estoy con @brianellis, ¿por qué tiene que ser así? No parece engañar al navegador de todos modos por lo que puedo ver.
ladle3000