Quando comecei a programar para a Web e queria criar um novo projeto, sempre fui ensinado a criar um diretório /var/www/
. No entanto, em muitos tutoriais que li, as pessoas tendem a criar um diretório no /home/username/
.
Não gosto da ideia de colocar isso /home/username/
.
Existe um local correto ou, caso contrário, quais são as vantagens / desvantagens de colocá-lo em determinadas áreas do sistema de arquivos?
linux
unix
filesystems
apache-http-server
Pattle
fonte
fonte
/var/www
e geralmente tenho isso em outra unidade (apenas preferência).Respostas:
Não existe um diretório "melhor". E enquanto as pessoas podem argumentar que essa questão é subjetiva, ou que a colocação real de arquivos não importa e eles estão certos sobre os últimos não são recomendações padronizadas sobre onde colocar o que em sistemas Unix-like.
O padrão de hierarquia do sistema de arquivos define isso e oferece 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 local "usual" que você colocaria porque as pessoas não altere 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ê deseja. A ESF explica:Então, basta criar um
/srv/www
diretório e usar isso. Você pode criar subpastas para cada host virtual que desejar 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áriohttp://example.com/~username
e eles são servidos a partir dopublic_html
diretório 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 eles devem ir. Lembre-se de tornar os diretórios graváveis apenas pelo usuário ao qual eles pertencem.
Em essência
/srv/www
e/var/www
são diretórios, 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ê possui projetos para um usuário por vez, use/home
.fonte
http://example.com/~username
normalmente não aponta para/home/username/
, mas para/home/username/public_html/
./var/www
, é hora de mudar!www
parece mais um subdomínio para mim.Bem, você pode colocar arquivos em qualquer lugar, desde que as coisas possam acessá-los adequadamente, no entanto, os sistemas de arquivos desordenados são uma dor de cabeça se alguém entrar mais tarde.
/srv
é mais lógico e, se você seguir o padrão de hierarquia do sistema de arquivos, ele será acessado aqui.Se você faz vários domínios, pode fazer
/srv/domain1
/srv/domain2
etc etc, então subpastas 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 que quiser com a limpeza ou a sujeira que deseja.
fonte
Ok, resposta rápida e fácil.
Se seus arquivos da web no sistema serão acessados apenas por UM usuário no sistema Linux. Use o diretório inicial do usuário (
~/
).Se seus arquivos da web no sistema serão acessados por vários usuários no sistema linux. Use
/srv/
.É exatamente isso que afirma http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM .
Aqui está a citação:
Bônus: www? ftp? Organizar por protocolo? Hã?
Conforme declarado aqui em http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM
~/http/your-website-directory/
ou (protocolo https), então:~/https/your-website-directory/
~/your-website-directory/
/srv/http/your-website-directory/
ou (protocolo https), então:/srv/https/your-website-directory/
/srv/your-website-directory/
Huh, por que não www? Este é um legado da época do Apache. www não especifica qual protocolo está sendo usado. O Debian ainda usa isso hoje, enquanto, por exemplo, o Arch linux usa / srv / http.
fonte
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
apache2.conf
arquivo padrão contém um bloco comentado:fonte