Onde é o melhor local para manter os arquivos do site do desenvolvedor compartilhado na hierarquia do Linux?

2

Exibição de arquivos html e php

Acabei de começar a hospedar arquivos de um site no meu servidor, e não tenho certeza de onde é um local apropriado para mantê-los para fornecer acesso a vários usuários.
Quando comecei a hospedar o site, coloquei os arquivos do site em: /var/www/name.of.virtualhost.site/www/ .

Estou implantando diretamente de um repositório com check-out, por conveniência & simplicidade, portanto, para atualizar o código do site base de outro desenvolvedor ou eu só tenho que verificar a versão mais recente dos arquivos, a fim de ter tudo atualizado (usando git, neste caso). No entanto, a raiz do repositório tem arquivos que eu prefiro não serem públicos.

Agora, obviamente, esse não é o caso, porque qualquer coisa abaixo da pasta public / www / final também está disponível no domínio ou ip padrão, já que o / var / www / contents já está sendo servido por padrão pelo apache. Por exemplo, /var/www/name.of.virtualhost.site/docs/site_policies.txt é acessível por meio de algum URL defaultsite.com/name.of.virtualhost.site/docs/site_policies.txt .

Então, onde é um lugar melhor para armazenar os arquivos de um site no linux?

Quando é um site que só estou desenvolvendo, posso obviamente colocá-los em /home/my_username/sites/name.of.virtualhost.site/ , mas isso não funciona bem quando quero que outros desenvolvedores verifiquem o repositório e às vezes editem o repositório. arquivos do site também. E eu estou correndo uma pilha LAMP, não que eu espero que isso importe.

    
por Kzqai 13.05.2010 / 03:39

5 respostas

1

Não há um tamanho único para responder ao seu problema. / tmp seria acessível a todos os usuários, mas é um local ruim para colocar esses arquivos.

Não sei por que você não está usando o controle de versão adequado para que todos os desenvolvedores estejam desenvolvendo em seus respectivos ambientes de desenvolvimento e, em seguida, empurrando para um repositório mestre.

Se você está se referindo a uma caixa dev (que você não diz) então crie um diretório, em algum lugar como / usr / local / src e torne-o gravável por um grupo ao qual todos os desenvolvedores pertençam. Em seguida, crie um script de implantação que coloque os arquivos que precisam ser publicamente acessíveis sob a raiz da Web.

    
por 13.05.2010 / 04:15
3

A novidade é /srv .

    
por 13.05.2010 / 03:47
1

/ srv começou a ser usado para coisas como servidores da web. No entanto, como você está usando o apache, pode bloquear o acesso a /var/www/www.example.com no servidor virtual padrão.

Com o Apache, você pode restringir o diretório de acesso pelo diretório por ip ou senha. Você também pode exigir um ip e uma senha correspondentes, se necessário. A menos que você esteja modificando os arquivos de um processo no servidor da Web, os diretórios e arquivos não devem pertencer ou ser graváveis pelo ID do usuário dos servidores do Apache.

    
por 13.05.2010 / 08:58
1

Eu realmente não entendo o que você está perguntando.

Os arquivos exibidos de um servidor devem ficar abaixo de /srv de acordo com o FHS. Mas por que vários usuários precisariam ter acesso a eles?

Sugiro que você comece a usar o controle de versão e dê aos desenvolvedores acesso a isso.

Em seguida, automatize a implantação usando um script ou func ou capistrano.

Dê a quem precisa do direito de acionar uma implantação. Talvez usando integração contínua para que isso só seja possível depois que todos os testes passarem.

    
por 13.05.2010 / 13:30
1

/home/<user>/<repo> de checkout de cada usuário

/srv/git/<repo> para o seu master repo (point redmine / trac neste)

/usr/local/bin/deploy.sh script muito simples para "implantar" do repositório central do git no ambiente real do servidor da web. Tente mantê-lo abaixo de 5 linhas de bash, ou procure em Capistrano.

/srv/www/<vhost>/ para o seu site

    
por 13.05.2010 / 18:55