Os sites devem viver em / var / ou / usr / de acordo com o uso recomendado?

62

De acordo com um guia sobre a estrutura de diretórios do Linux , /usr/é para arquivos de aplicativos e /var/para arquivos que mudam (suponho que isso signifique "arquivos que pertencem aos aplicativos"). Isso está correto?

Se for esse o caso, estou um pouco dividido entre usar qualquer um. Um site é um aplicativo (se é dinâmico, por assim dizer), mas em outros casos é apenas uma coleção de arquivos usados ​​pelo Apache.

Como o diretório www padrão está presente /var/www/, devemos seguir o exemplo usando /var/websites/(ou algo semelhante) ou escolher /usr/websites/uma vez que podem ser aplicativos?

Essa é uma pergunta muito trivial, mas ainda assim está me incomodando. No nosso caso, estou inclinado a /usr/webalgo assim, já que nossos sites são todos aplicativos.

Atualizar:

Isto é para os sites da nossa empresa; não é um servidor de hospedagem compartilhada, portanto, não precisamos nos preocupar em separá-los /home/ou algo assim.

Nick Bolton
fonte
10
Não acho que a pergunta seja trivial; é bastante bom, na verdade. Interessante.
Aron Rotteveel

Respostas:

63

Segundo a ESF , /usré para shareable, read-only data- não para onde você deseja colocar o site. É aqui que você deve colocar seu código (por exemplo, o Fedora faz isso no Wordpress). Veja também o guia de empacotamento de ativos da web para o Fedora.

/varé "arquivos de dados variáveis. Isso inclui diretórios e arquivos de spool, dados administrativos e de log e arquivos temporários e temporários". - melhor, mas ainda não totalmente certo - mas muitos sistemas serão usados /var/www; mesmo que você esteja errado em colocá-lo lá, está em boa companhia.

/srvé para "dados específicos do site que são veiculados por este sistema". - que parece uma boa combinação, mas é muito menos comum que /var/www.

O outro local comum para colocar os arquivos do site é o seguinte /home: criando um usuário especial chamado websiteou tal e colocando os arquivos dentro do nome de usuário do usuário (por exemplo, /home/website).

James Polley
fonte
4
Ah, meu trabalho usa /srv- como eu nunca tinha visto isso antes, pensei que fosse criado por eles. É uma coisa do Redhat / CentOS?
Nick Bolton
12
O padrão é definido apenas como /var/wwwporque as distribuições não podem tocar /srv; isso é para o administrador do sistema configurar. Então, é por isso que é "muito menos comum" e também correto.
Michael Hampton
28

Dê uma olhada no padrão de hierarquia de sistemas de arquivos ( Wikipedia ). Eu mesmo uso / srv / web / $ domain / {htdocs, logs, cgi-bin, ...}.

ptman
fonte
3
Eu faço isso também, mas em vez de "www" eu sempre uso o nome do serviço "httpd". Então, eu tenho / srv / httpd / $ domain ... ou / srv / smbd / sharename ... Assim é mais fácil ver qual serviço está servindo os arquivos. Por exemplo, em alguns sistemas que temos / srv / nginx / $ domain
Raffael Luthiger
9

Os sites devem residir nos diretórios pessoais dos usuários. São dados do usuário, devem ser isolados por um usuário por site e o conteúdo dinâmico deve ser executado novamente como um usuário separado, com arquivos que o conteúdo dinâmico precisa ler e modificar, com as permissões apropriadas para isso.

Atualizar:

Só porque não é um servidor de hospedagem compartilhada, não significa que você não deve se envolver em boas práticas de segurança e separar funções independentes em suas próprias zonas de segurança.

mulher
fonte
7

O guia definitivo é o padrão de hierarquia do sistema de arquivos, que diz que esse /srvé o local apropriado.

Dennis Williamson
fonte
2
Não leio dessa maneira - ou pelo menos, li como ambígua nesse ponto. A maioria dos sites não é veiculada com simplicidade by this system, é servida por todo um cluster de sistemas; e as duas frases que começam em This setup will differ from host to host.sugerem que este não é o lugar para arquivos compartilhados em muitos servidores. É um lugar bastante provável - certamente mais apropriado que /usr, e sem dúvida melhor que/var
James Polley
11
Não acho que a ESF seja definitiva. Re: (Wikipedia): A maioria das distribuições Linux segue o FHS e declara sua própria política para manter a conformidade com o FHS. No entanto, a grande maioria (a partir de 2009) de distribuições, incluindo aquelas desenvolvidas por membros do Free Standards Group, não segue completamente o padrão proposto.
Michael Graff
6
Essa é a coisa boa sobre os padrões - há tantos por onde escolher! :)
James Polley
3

Onde eles moram no disco tem pouca importância. É onde você os quer.

Eu tenho um link simbólico de / www em todas as minhas máquinas para onde elas realmente moram, então nunca preciso me perguntar de máquina para máquina. Algumas máquinas mais antigas possuem / u0 e / u1 para discos de usuário, e eu coloco as coisas na web lá. Alguns têm / home montado diretamente, então eles vão para lá, mas / www sempre aponta para o lugar certo.

Eu também não coloco nenhuma configuração em / usr nem em / var. Ele entra em / local (que, você adivinhou, é um link simbólico em algum lugar em / u0 ou / u1 normalmente). Isso facilita o backup das coisas. Acabei de fazer backup dos discos do usuário.

Obviamente, eu tenho um site de distribuição principal para o meu sistema operacional preferido, o NetBSD. Eu faço o sistema como eu quero nesta máquina principal (realmente uma instância xen) e rsync / usr. Facilita minha vida.

Michael Graff
fonte
6
Isso é bom se você é uma operação de uma pessoa, ou talvez uma equipe pequena, que trabalha em estreita colaboração e conhece os pontos fracos um do outro - aprender a maneira 'certa' de fazer isso provavelmente vai demorar mais do que apenas fazer isto. Se você tem uma operação grande e está frequentemente trazendo novas pessoas a bordo, é necessário muito tempo para atualizá-las com um layout como esse - demorará muito tempo - permanecer (ou pelo menos próximo) da ESF economizando tempo com cada nova pessoa que você traz para a equipe.
James Polley
5
Quando você usa 8 sistemas operacionais diferentes, os padrões internos são muito mais fáceis de aprender do que cada um-como-faz-à-própria-maneira.
Michael Graff
11
@ James Polley Quanto tempo leva para dizer a um novo contratado "nós colocamos coisas /path/we/chose"?
ceejayoz
@ceejayoz Se você tem mais de duas categorias de "coisas", é muito mais simples dizer a elas "seguimos a ESF", mesmo que isso exija alguns detalhes adicionais para algumas categorias de "coisas".
tripleee
3

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

Notei isso no Ubuntu Server 14.04 LTS. Seu arquivo apache2.conf padrão contém um bloco comentado:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
Maris B.
fonte
2

De acordo com mim, você nunca deve e nunca deve colocar nenhum serviço de Internet na zona comum do sistema.

Seus serviços de Internet (Apache / Tomcat / SSH etc) são uma porta de entrada; se você colocar esses serviços na zona do sistema, estará potencialmente vulnerável a alguns ataques.

Mais do que se você colocasse seus serviços diferentes em uma zona segura de área restrita, como outra partição de desanexação.

Aqui está um exemplo de estrutura que você poderia usar:

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)
Dr I
fonte
11
Você poderia expandir a "zona de sistema comum"? Não é um termo que eu tenha ouvido antes e não tenho certeza do que você quer dizer. /srv/binparece violar o FHS, que afirma que /srvé para dados, não binários
James Polley
Bem Zona do sistema comum significa que a parte do sistema operacional onde armazena todos os componentes do sistema, como conta, senha, binários de administrador e biblioteca. Sei que minha instalação não respeita completamente o FHS, mas posso dividir completamente o sistema operacional em duas partes. 1 ° / - O sistema que é bastante fixo (exceto para instalação de ferramentas de atualização e administração) 2 ° / - Os aplicativos, dados e usuários Pátria. Dessa forma, se você tiver alguns problemas com seu sistema ou dados, não perderá todos os dados.
Dr I
Eu vejo. Isso faz sentido - é por isso que a maioria dos desktops, por exemplo, coloca /homeem uma partição separada - você pode explodir tudo na não /homepartição e não se preocupar com a perda de dados do usuário. +1 para segregar dados.
James Polley