web-dev-qa-db-pt.com

Como faço para alterar o diretório raiz de um servidor Apache?

Alguém sabe como alterar a raiz do documento do servidor Apache? Eu basicamente quero que localhost venha do diretório /users/spencer/projects em vez de /var/www.

Editar

Acabei descobrindo isso. Alguns sugeriram que eu mudasse o arquivo httpd.conf, mas acabei encontrando um arquivo em /etc/Apache2/sites-available/default e mudei o diretório raiz de /var/www para /home/myusername/projects_folder e isso funcionou. 

222
Spencer Cooley

Você precisa alterar a configuração DocumentRoot no seu arquivo httpd.conf. As chances são de que será sob algo como /etc/Apache2/conf/httpd.conf

Use seu editor favorito (eu recomendo Vim ) e procure pela DocumentRoot e mude para /users/spencer/projects. Também olhe um pouco mais abaixo para uma configuração como esta:

<Directory "/var/www">

Você também desejará alterar o que está entre aspas para o novo diretório. Isso permite que o Apache acesse esse diretório quando um usuário faz uma solicitação que o chama.

Agora reinicie seu serviço Apache (httpd -k restart) e você deve estar pronto.

Edit: Os arquivos de configuração do site do Apache2 são normalmente mantidos em /etc/Apache2/sites-available/ (Debian, Ubuntu, etc.).

188
RDL

Por favor, note que isto só se aplica ao Ubuntu 14.04 LTS e versões mais recentes.

No meu Ubuntu 14.04 LTS, a raiz do documento foi definida como /var/www/html. Foi configurado no seguinte arquivo: 

/etc/Apache2/sites-available/000-default.conf

Então faça uma

Sudo nano /etc/Apache2/sites-available/000-default.conf

e mude a seguinte linha para o que você deseja:

DocumentRoot /var/www/html

Também faça um 

Sudo nano /etc/Apache2/Apache2.conf

e encontrar isso 

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

e altere /var/www/html para o seu diretório preferido

e salve-o.

Depois de salvar suas alterações, basta reiniciar o servidor do Apache2 e você estará pronto :)

Sudo service Apache2 restart


Se você preferir um editor de texto gráfico, basta substituir o Sudo nano por gksu gedit.

245
mozzbozz

Eu tive que editar /etc/Apache2/sites-available/default. As linhas são as mesmas mencionadas pelo RDL.

42
Nick

Isto é para o Ubunutu 14.04:

No arquivo /etc/Apache2/Apache2.conf deve ser como abaixo sem o nome do diretório:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

e no arquivo /etc/Apache2/sites-available/000-default.conf você deve incluir o nome do diretório personalizado, por exemplo, www:

DocumentRoot /home/username/www

Se não como acima, você receberá um erro ao carregar o servidor: Forbidden You don't have permission to access / on this server

19
androsfat

O caminho certo para alterar o diretório ou executar a partir de vários diretórios em diferentes portas para o Apache2 é o seguinte:

Para o Apache2, os arquivos de configuração estão localizados em /etc/Apache2 e não usam um único arquivo de configuração como nas versões mais antigas, mas são divididos em arquivos de configuração menores, com /etc/Apache2/Apache2.conf sendo o arquivo de configuração principal. Para servir arquivos de um diretório diferente, precisamos de um novo arquivo conf virtualhost. Os arquivos conf virtualhost estão localizados em /etc/Apache2/sites-available (não edite arquivos em sites habilitados). A instalação padrão do Apache usa o arquivo conf virtual 000-default.conf.

Comece criando um novo arquivo virtualhost copiando o arquivo virtualhost padrão usado pela instalação padrão do Apache (aquele que é executado no localhost na porta 80). Mude para o diretório /etc/Apache2/sites-available e faça a cópia por Sudo cp 000-default.conf example.com.conf, agora edite o arquivo por Sudo gedit example.com.conf para:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

Eu apaguei as linhas não importantes do arquivo acima por brevidade. Aqui DocumentRoot é o caminho para o diretório a partir do qual os arquivos do site devem ser exibidos, como index.html.

Crie o diretório do qual você deseja servir os arquivos, por exemplo; mkdir example.com e altere o proprietário e o grupo padrão do diretório, por exemplo, se o seu nome de usuário logado for ubuntu, altere as permissões como Sudo chown ubuntu:www-data example.com. Isso concede acesso total ao usuário ubuntu e permite acesso de leitura e execução ao grupo www-data.

Agora edite o arquivo conf do Apache /etc/Apache2/Apache2.conf emitindo o comando Sudo gedit Apache2.conf e encontre a linha <Directory /var/www/> e abaixo da tag de fechamento </Directory>, adicione o seguinte abaixo:

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

Agora existem dois comandos para ativar ou desativar os arquivos de configuração do virtualhost, que são a2ensite e a2dissite respectivamente. Agora, como o arquivo example.com.conf usa a mesma porta (80) usada pelo arquivo de configuração padrão (000-default.conf), temos que desabilitar o arquivo de configuração padrão emitindo o comando Sudo a2dissite 000-default.conf e habilitar nosso arquivo conf virtualhost por Sudo a2ensite example.com.conf

Agora reinicie ou recarregue o servidor com o comando Sudo service Apache2 restart. Agora o Apache exibe arquivos do diretório example.com em localhost na porta padrão 80.

O comando a2ensite basicamente cria um link simbólico para o arquivo conf sob o diretório habilitado para o site

Não edite arquivos em diretórios habilitados para sites (ou * -ativados), como apontado nesta resposta https://stackoverflow.com/a/41568701/2532763

Para alterar a porta e executar a partir de vários diretórios em portas diferentes:

Agora, se você precisar executar o diretório em uma porta diferente, altere o número da porta de 80 para 8080 editando o arquivo virtualhost como:

<VirtualHost *:8080>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/work
</VirtualHost>

e editando /etc/Apache2/ports.conf e adicionando Listen 8080 logo abaixo da linha Listen 80

Agora podemos habilitar o arquivo conf virtualhost padrão que é executado na porta 80, pois o diretório example.com usa a porta 8080 como Sudo a2ensite 000-default.conf

Agora reinicie ou recarregue o servidor com o comando Sudo service Apache2 restart. Agora ambos os diretórios podem ser acessados ​​de localhost e localhost:8080

8
lordvcs

Para Apache2 on Linux Mint 17.3 Cinnamon 64-bit os seguintes trabalhos:

  1. Em /etc/Apache2/sites-available/, abra o arquivo 000-default.conf e altere o Document Root para o caminho absoluto do diretório.

    Sudo vim /etc/Apache2/sites-available/000-default.conf

  2. Em /etc/Apache2/, abra httpd.conf e adicione uma tag <Directory> fazendo referência ao seu diretório e contendo as mesmas configurações da tag para var/www

    Sudo vim /etc/Apache2/Apache2.conf

    Na minha máquina, ficou assim:


<Directory /home/my_user_name/php/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Nota: Na primeira etapa, você provavelmente desejará alterar Document Root no arquivo default-ssl.conf também para fins de SSL. Mas, tanto quanto eu posso dizer isso não é necessário para obter um ambiente de desenvolvimento geral em execução.

4
stackato

Eu estava trabalhando com LAMP ePara alterar a pasta Document Rooteu editei default arquivo que está lá em /etc/Apache2/sites-available pasta. Se você quiser fazer o mesmo, edite da seguinte forma

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

Depois disso, se você digitar localhost no navegador, ele carregará */home/username/new_root_folder * content.

4
Shashidhara

Se você não conseguiu encontrar http.conf e seguiu o caminho de Nick. 

Reinicie o Apache usando Sudo service Apache2 restart

3
Nitin

Caso você esteja usando o Ubuntu 16.04. Por favor, atualize o 000-default.conf no diretório / Etc/Apache2/sites-available.

aqui -> ServerAdmin webmaster @ localhost DocumentRoot / var/www/html/YourFolder

2
Shashank Saxena

Eu fiz o /var/www para ser um link para o diretório requerido (por exemplo, /users/username/projects) e as coisas estavam bem depois disso.

No entanto, naturalmente, o /var/www original precisa ser excluído - ou renomeado.

1
maan81

No Apache versão 2.4.18 (Ubuntu).

1. Vá para este arquivo /etc/Apache2/Apache2.conf Procure por <Directory /var/www/> e substitua pelo seu diretório ......

2. Vá para /etc/Apache2/sites-available/000-default.confsearch por DocumentRoot /var/www/html e substitua pelo seu DocumentRoot ....

1
habibun

Se alguém instalou LAMP na pasta /opt, então o /etc/Apache2 não é o que você está procurando.

Procure o arquivo httpd.conf em /opt/lampp/etc/httpd.conf.

Altere a linha nesta pasta e salve-a do terminal.

1
nextgtech

Aplica-se a Ubuntu 14.04 e versões posteriores. Certifique-se de fazer o backup dos arquivos a seguir antes de fazer qualquer alteração.

1. Abra /etc/Apache2/Apache2.conf e procure pela diretiva <Directory /var/www/> e substitua o caminho por /home/<USERNAME>/public_html. Você pode usar * em vez de.

2. Abra /etc/Apache2/sites-available/000-default.conf e substitua a propriedade de valor DocumentRoot de /var/www/html para /home/<USERNAME>/public_html. Também <Directory /var/www/html> para <Directory /home/<USERNAME>/public_html.

3. Abra o /etc/mods-available/php7.1.conf. Encontre e comente o código a seguir

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

Não ative o sinalizador php_admin_flag engine OFF como o motivo é mencionado no comentário acima do código da diretiva. Também a versão php pode ser 5.0, 7.0 ou qualquer coisa que você tenha instalado.

Crie o diretório public_html em home/<USERNAME>.

Reinicie o serviço Apache executando o comando Sudo service Apache2 restart.

Teste executando o script de amostra no servidor.

0
user1184294

No RedHat 7.0: /etc/httpd/conf/httpd.conf

0
ehacinom

Se você estiver usando o Linux Mint (opinião pessoal, de todas as distros esta está me fazendo feliz), siga isto:

1- Vá para/etc/Apache2/sites-available e edite 000-default.conf 2- Busca por DocumentRoot, exemplo DocumentRoot/var/www/html você muda para o seu respectivo diretório; 3- Abra o terminal e digite: Sudo service Apache2 restart

EDITADO ----- Eu percebo que no Mint você usa o /etc/Apache2/Apache.conf, substitui/var/www no seu respectivo caminho, do que o servidor de reinicialização (passo 3).

É isso aí.

0
Marcelo Agimóvel