Onde colocar meu site local começando com a versão 2.4.7 do apache2?

50

Instalei recentemente o Ubuntu 14.04, depois instalei lamp-servere coloquei minhas páginas no /var/wwwdiretório, mas quando abri o host local no navegador, não havia nada. Eu acho que aconteceu porque o Zend atualizou o Apache.

Qualquer que seja o motivo, quero saber onde manter meus arquivos php para que eu possa acessá-los no meu navegador.

akabhirav
fonte
Apesar de não ser uma resposta à pergunta do OP, a resposta a seguir pode ajudar alguns visitantes que tropeçar nesta questão durante a tentativa de corrigir um problema relacionado: askubuntu.com/a/525120/1183
Augustin

Respostas:

76

A versão apache2 que foi publicada quando a versão Ubuntu 14.04 foi lançada é a 2.4.7 e, a partir desta versão, parece que, por razões de segurança, o novo diretório raiz do servidor é:

/var/www/html

Portanto, a partir de agora, é aqui que você deve colocar os arquivos para o seu site (local). Você não deve ter esse problema novamente com as futuras atualizações.


De qualquer forma, se você deseja alterar este diretório por outro, é necessário modificar (como root) a seguinte linha do /etc/apache2/sites-available/000-default.confarquivo ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

para

DocumentRoot /path/to/another/directory

Depois disso, para que as novas alterações entrem em vigor, é necessário reiniciar o servidor apache usando o seguinte comando:

sudo service apache2 restart
Radu Rădeanu
fonte
10
Interessante, tentei procurar o raciocínio por trás dessa mudança. Se alguém estiver interessado, encontrei este relatório de erros no Debian, que o explica.
21414 Dan
4
Estou recebendo um erro proibido após esta alteração.
Darshana
11
@Darshana A configuração padrão no apache2.4 não permite que o apache acesse nada fora /var/www/html. Colocar o site em outro lugar que não seja o diretório (ou seus subdiretórios), gera um erro 403. Você precisa adicionar uma <Directory /path/to/your/site>diretiva às suas configurações do VHost com uma requirediretiva .
Dan
Isso não funcionou para mim.
user124384
Mesmo aqui .. Agora me dá o erro 403 proibido! Como devo resolvê-lo (In maneira mais simples, noober POR FAVOR)
abhishah901
27

Em vez de /etc/apache2/sites-available/000-default.confvoltar à versão antiga, prefiro manter os arquivos do pacote padrão inalterados.

Uma razão para isso é que, para que não seja interrompida durante a próxima atualização novamente, o que pode redefinir o 000-default.confarquivo.
Além disso, essas modificações não são feitas apenas para nos incomodar, a modificação foi feita por uma boa razão, como este relatório de bug no Debian explica .

Nossos servidores da web [sic] definem a raiz padrão do documento como / var / www, enquanto os administradores locais do site tendem a usar /var/www/example.com. Isso tem implicações de segurança se os visitantes acessarem a raiz do documento padrão, ignorando a raiz / suposto / documento do example.com. Isso é problemático se os dados confidenciais estiverem fora da suposta raiz do documento (por exemplo, considere um arquivo de configuração hipotético /var/www/example-com-db.conf).

Uma solução melhor seria mover os arquivos dos sites de /var/wwwpara /var/www/html/.

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

Além disso, outra solução possível é criar outro host virtual e desativar o padrão com o comando sudo a2dissite 000-default

Dan
fonte