Como crio páginas da web no meu diretório pessoal e o servidor da web as atende no meu navegador?

9

Eu instalei recentemente o navegador Apache no meu Debian Squeeze (usando o comando tasksele selecionando [ ] Web server). Agora consigo iniciar o processo sudo /etc/init.d/apache2 starte, então, vou ao meu navegador e digito http://localhoste a página " Funciona! " Aparece indicando que eu instalei e iniciei o servidor da web com êxito.

Agora eu sei que o arquivo HTML da página " Funciona! " Está dentro /var/wwwe sou levado a acreditar que, se eu criar novas páginas, preciso inseri-las nesse diretório. Criar páginas seria fácil, mas, ao fazer isso, preciso emitir o sudocomando toda vez que criar / editar um arquivo no /var/wwwdiretório

Gostaria de saber como criar um diretório na minha HOME, por exemplo, ~/html/test/index.htmle exibir essa página quando eu inserir o endereço http://localhost/html/testno endereço do meu navegador?

Eric
fonte

Respostas:

6

Como Ulrich disse, você pode fazer isso ativando o userdirmódulo.

No Debian, isso pode ser feito usando o a2enmodutilitário, que habilita ou desabilita os módulos Apache. Veja man a2enmod.

Nesse caso, você só precisa executar

sudo a2enmod userdir

e, em seguida, reinicie o servidor Apache para que a alteração entre em vigor. Observe que o módulo userdir está no Apache básico, portanto você não precisa instalar nada extra. Para referência, a configuração userdir está /etc/apache2/mods-available/userdir.conf.

Tudo o que a2enmodestamos fazendo aqui é criar um link simbólico do /etc/apache2/mods-enableddiretório para os arquivos /etc/apache2/mods-available/{userdir.conf/userdir.load}. Você também pode fazer isso manualmente. Ou seja,

faheem@orwell:/etc/apache2/mods-enabled$ ls -la userdir.*
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.conf -> ../mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.load -> ../mods-available/userdir.load

Em seguida, coloque o material da web que você deseja disponibilizar ~/public_htmle, em seguida, ele deverá ser acessado a partir de http://servername/~username.

Faheem Mitha
fonte
11
Embora a resposta de Ulrich seja praticamente a mesma, marquei esta como a resposta, porque é mais detalhada.
22412 Eric Eric
6

Você provavelmente está procurando por mod_userdir : "Este módulo permite que diretórios específicos do usuário sejam acessados ​​usando a http://example.com/~user/ sintaxe."

Não tenha medo de mexer na configuração, apenas faça backup dos arquivos de configuração e verifique se o firewall bloqueia seu apache para o mundo exterior.

Ulrich Schwarz
fonte
11
Obrigado @Ulrich Schwarz, acho que é disso que preciso. Então, como faço para configurar isso? Ainda não estou muito familiarizado com o Apache (apenas o instalei agora) e não sei como proceder com sua sugestão.
Eric
2

Pessoalmente, usei links simbólicos , dependendo do projeto para ter um link dentro /var/www/ou /var/wwwele próprio sendo um link para uma das pastas no diretório inicial do meu (por exemplo ~/projects/www:). Dessa forma, eu posso me livrar do personagem "~". Às vezes, também é útil para mim, quando quero mostrar algo para outro visualizador (por meio de:) http://253.153.87.231/page.html, e alguém não está familiarizado com o teclado, então ele simplesmente não conseguiu encontrar o símbolo "~" no teclado (- tipo como procurar a chave "any") .

Faheem e Ulrich provavelmente sugerem a melhor e mais recomendada resposta de qualquer maneira (pelo menos quando se trata de segurança).

Janar
fonte
É isso que eu quero fazer, funciona bem? Você pode dar a sintaxe para criar esses links?
Menasheh
0

Agora você pode fazer isso alterando a raiz da web, mas realmente não quer, e aqui está o porquê:

Se um invasor encontrar uma vulnerabilidade no Apache, ou no seu código, ele poderá obter acesso à raiz da Web. Que é onde todas as suas coisas são ...

A raiz da Web geralmente é protegida, com controles para impedir a invasão de invasores. Sua casa, possivelmente não tão bem protegida.

Rory Alsop
fonte