Cuando comencé a programar para la web y quería crear un nuevo proyecto, siempre me enseñaron a crear un directorio /var/www/
. Sin embargo, en muchos tutoriales que leo, la gente tiende a crear un directorio /home/username/
.
No me gusta la idea de ponerlo /home/username/
.
¿Existe un lugar correcto o, de no ser así, cuáles son las ventajas / desventajas de colocarlo en ciertas áreas del sistema de archivos?
linux
unix
filesystems
apache-http-server
Pattle
fuente
fuente
/var/www
y usualmente tengo eso en otra unidad (solo preferencia).Respuestas:
No hay un "mejor" directorio. Y mientras que las personas podrían argumentar que esta pregunta es subjetiva, o que la colocación real de los archivos no importa, y tienen razón acerca de los últimos no son recomendaciones estandarizadas en donde poner lo que en los sistemas de tipo Unix.
El Estándar de jerarquía del sistema de archivos define esto y le ofrece lo siguiente:
/var
- un lugar para colocar datos que cambian durante el funcionamiento normal, como registros, etc.,/var/www
es el directorio predeterminado para colocar contenido web para Apache, pero su uso no está estandarizado en absoluto y solo es el lugar "habitual" donde lo colocaría porque la gente no cambie la configuración predeterminada con mucha frecuencia./srv
- este directorio debe contener datos que son servidos por el sistema. Este suele ser el lugar que deseas. El FHS explica:Entonces, simplemente cree un
/srv/www
directorio y use esto. Puede crear subcarpetas para cada host virtual que desee servir con su máquina./home
contiene archivos que realmente deberían pertenecer a un solo usuario. Apache, por ejemplo, permite las direcciones de usuario , para que pueda acceder a los archivos web de un usuario a través dehttp://example.com/~username
, y se sirven desde elpublic_html
directorio en el hogar del usuario.Si utiliza un servidor que se comparte entre varias personas y desea permitir que todos alojen sus propios scripts, aquí es donde deben ir. Recuerde hacer que los directorios puedan ser escritos por el usuario al que pertenecen únicamente.
En esencia,
/srv/www
y/var/www
son directorios en los que debe crear subdirectorios para cualquier proyecto web que desee alojar. Luego puede definir diferentes permisos en estos directorios para permitir que ciertos usuarios o grupos de usuarios les escriban. Si tiene proyectos para un usuario a la vez, use/home
.fuente
http://example.com/~username
general, no apunta a/home/username/
, sino a/home/username/public_html/
./var/www
, es hora de cambiar!www
suena más como un subdominio.Bueno, puede colocar archivos en cualquier lugar siempre que las cosas puedan acceder a ellos correctamente, sin embargo, los sistemas de archivos desordenados son un dolor de cabeza si alguien llega más tarde.
/srv
es más lógico además si sigues el Estándar de Jerarquía del Sistema de Archivos, iría aquí.Si haces varios dominios, puedes hacer,
/srv/domain1
/srv/domain2
etc., etc., luego subcarpeta allí dentro/ftp
/www
/tftp
/logs
/etc.etc.etc
Para mí, se siente una estructura muy sólida sobre la cual construir y controlar fácilmente
Pero como administrador, puede hacerlo tan limpio o desordenado como desee.
fuente
Ok, fácil respuesta rápida.
Si sus archivos web en el sistema solo serán accedidos por UN usuario en el sistema Linux. Utilice el directorio de inicio del usuario (
~/
).Si los usuarios MÚLTIPLES tendrán acceso a sus archivos web en el sistema en el sistema Linux. Uso
/srv/
.Esto es exactamente lo que http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM declara.
Aquí está la cita:
Bono: www? ftp? Organizar por protocolo? ¿Eh?
Como se indica aquí en http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM
~/http/your-website-directory/
o (protocolo https) y luego:~/https/your-website-directory/
~/your-website-directory/
/srv/http/your-website-directory/
o (protocolo https) y luego:/srv/https/your-website-directory/
/srv/your-website-directory/
¿Eh por qué no www? Este es un legado del tiempo de Apache. www no especifica qué protocolo se está utilizando. Debian todavía usa esto a partir de hoy, mientras que, por ejemplo, Arch Linux usa / srv / http.
fuente
El servidor web Apache tiene un sitio web predeterminado,
/var/www/
pero sugiere colocar otros sitios web en/srv/
Me di cuenta de esto en Ubuntu Server 14.04 LTS. Su
apache2.conf
archivo predeterminado contiene bloque comentado:fuente