Pregunta

Estoy usando MAMP sólo para mi entorno de desarrollo y realmente no he entendido la estructura de carpetas de / var / www / nombre-proyecto / en un servidor web. Me pregunto si el que está destinado a señalar con el servidor web a la carpeta htdocs o se supone que debe apuntar a la raíz de la carpeta del proyecto?

La razón que pido es porque las bibliotecas tienen el propósito de existir fuera de la carpeta htdocs por motivos de seguridad, pero ¿cómo se señaló desde la propia aplicación web? Sin duda, la aplicación web no puede acceder a las carpetas fuera de la carpeta htdocs si el servidor web está apuntando a la carpeta htdocs para la aplicación web?

¿Fue útil?

Solución

Una solución sencilla es tener una estructura de carpetas de esta manera:

/var/www/project-name/
    + webroot/
    + libraries/

Punto de su DocumentRoot apache2 al directorio webroot. Mantenga todas las bibliotecas que no desee acceder desde la web en el directorio libraries. En su código php, utilice la directiva include para acceder al código de las bibliotecas.

El truco es entender que PHP puede incluir cualquier archivo en el sistema que tiene acceso de lectura a. Una persona que navega por su sitio web sólo puede acceder a los archivos dentro de su directorio web raíz.

Otros consejos

Si tiene varios dominios virtuales en el mismo servidor, es bastante común tener cada sitio en un directorio bajo /var/www, y cada uno de ellos tiene una carpeta htdocs, que se monta como la raíz Web. A continuación, puede tener registros y bibliotecas específicas de la aplicación en una carpeta por encima de la raíz de la tela. Por ejemplo:.

/var/www/lolcats.com
/var/www/lolcats.com/htdocs
/var/www/lolcats.com/htdocs/index.php
/var/www/lolcats.com/lib
/var/www/lolcats.com/log

PHP puede acceder a cualquier archivo en el sistema de archivos para el que el usuario del servidor Apache tiene los permisos correctos. En una máquina Linux con Apache y sin hosts virtuales, / var / www es un lugar común utilizar para su directorio htdocs.

Usted coloca las bibliotecas de PHP de include_path que es inaccesible para el usuario general.

Es una idea googd que asignar sus sitios web locales en los directorios en la misma forma que su trabajo dominios.

A menudo tiene varios sitios web en una sola cuenta de hospedaje web, por lo que los hosts virtuales de configuración para reflejar la configuración.

Si su alojamiento compartido es:

/var/www/root
 /var/www/root/website1
 /var/www/root/website2
 /var/www/root/website3

Crea 3 anfitriones vitual en su PC local, pero mantener una estructura de archivos idénticos.

Además, utilizar las condiciones en los archivos de configuración para configurar el sitio deifferently dependiendo de la estructura de archivos del servidor, para garantizar el mismo archivo de configuración funciona en ambas configuraciones. Esto significa que mantiene su proceso de construcción de un solo paso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top