Qual é o diretório recomendado para armazenar o conteúdo do site?

16

Quando comecei a programar para a Web e queria criar um novo projeto, sempre aprendi a criar um diretório em /var/www/ . No entanto, em muitos tutoriais eu li que as pessoas tendem a criar um diretório em /home/username/ .

Não gosto da ideia de colocá-lo em /home/username/ .

Existe um lugar correto ou, se não, quais são as vantagens / desvantagens de colocá-lo em certas áreas do sistema de arquivos?

    
por Pattle 22.08.2013 / 15:34

3 respostas

28

Não há diretório "melhor". E enquanto as pessoas podem argumentar que essa questão é subjetiva, ou que a colocação real dos arquivos não importa - e eles estão certos sobre o último - existem recomendações padronizadas sobre onde colocar o que no Unix- como sistemas.

O Padrão de Hierarquia do Sistema de Arquivos define isso e oferece a você o seguinte:

  • /var - um local para colocar dados que mudam durante a operação normal, como logs, etc. /var/www é o diretório padrão para colocar o conteúdo da web para o Apache, mas seu uso não é padronizado e apenas o lugar "usual" que você colocaria porque as pessoas não alteram as configurações padrão com muita frequência.

  • /srv - este diretório deve conter dados que são servidos pelo sistema. Este é geralmente o lugar que você quer. A FHS explica:

    This main purpose of specifying this is so that users may find the location of the data files for particular service, and so that services which require a single tree for readonly data, writable data and scripts (such as cgi scripts) can be reasonably placed. Data that is only of interest to a specific user should go in that users’ home directory. (…)

    One method for structuring data under /srv is by protocol, eg. ftp, rsync, www, and cvs

    Portanto, basta criar um diretório /srv/www e usá-lo. Você pode criar subpastas para cada host virtual que queira servir com sua máquina.

  • /home contém arquivos que realmente devem pertencer apenas a um usuário. O Apache, por exemplo, permite userdirs , para que você possa acessar os arquivos da web de um usuário por meio de http://example.com/~username e Eles são servidos no diretório public_html na casa do usuário.

    Se você usa um servidor compartilhado entre várias pessoas e deseja permitir que todos hospedem seus próprios scripts, é para onde devem ir. Lembre-se de tornar os diretórios graváveis pelo usuário ao qual pertencem apenas.

Em essência, /srv/www e /var/www são diretórios nos quais você deve criar subdiretórios para qualquer projeto da Web que você queira hospedar. Você pode definir permissões diferentes nesses diretórios para permitir que determinados usuários ou grupos de usuários gravem neles. Se você tiver projetos para um usuário por vez, use /home .

    
por 22.08.2013 / 15:44
3

Bem, você pode colocar arquivos em qualquer lugar desde que as coisas possam acessá-los corretamente, no entanto sistemas de arquivos confusos são uma dor de cabeça se alguém entrar mais tarde.

/srv é mais lógico, e se você seguir o Filesystem Hierarchy Standard, ele será exibido aqui.

Se você fizer vários domínios, você poderá fazer /srv/domain1 /srv/domain2 etc etc, então a subpasta estará lá dentro /ftp /www /tftp /logs /etc.etc.etc

Para mim, isso parece uma estrutura muito sólida para construir e controlar facilmente

Mas, como administrador, você pode fazer o mais limpo ou confuso que desejar.

    
por 16.06.2016 / 22:17
0

O servidor da web Apache tem o site padrão em /var/www/ , mas está sugerindo colocar outros sites em /srv/

Eu notei isso no Ubuntu Server 14.04 LTS. Seu arquivo apache2.conf padrão contém blocos comentados:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
    
por 08.03.2016 / 15:47