No tutorial de hoje, vamos configurar o
Apache para rodar
Shell Script e
Python como exemplos, mas você pode testar em qualquer linguagem de programação de seu interesse. Também vamos usar de cobaia o
Arch Linux, mas com mínimas adaptações. É o mesmo procedimento para qualquer Linux ou BSD e até mesmo qualquer sistema baseado em UNIX.
Atualize todo o sistema de maneira efetiva com os dois comandos abaixo:
sudo pacman -Syy
sudo pacman -Syu
Instale o Apache:
sudo pacman -S apache
Habilite o Apache para iniciar junto com o sistema e também start para já poder usá-lo:
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
Por padrão, o conteúdo que se acessa pelo localhost está no endereço
/srv/http/. Lá, após instalação não haverá nada, então crie um arquivo "index.html" e insira um conteúdo nele para poder visualizar, use um editor de texto ou com o comando abaixo.
Lembre-se que dentro deste diretório precisa ser root ou sudo, não tente "sudo echo":
echo 'Minha pagina HTML' | sudo tee /srv/http/index.html
Agora, abra o navegador e acesse o endereço:
http://localhost/
você verá o conteúdo que você escreveu.
Usando um diretório alternativo, sem necessidade de root ou sudo
Os diretórios de usuários estão disponíveis por padrão através de:
http://localhost/~usuario/
e mostram o conteúdo de
~/public_html.
Note que há o sinal til (~) na URL, logo, digite ele também antes do seu nome de usuário, caso contrário haverá erro 404, mas para criar uma visualização customizada é necessário criar o diretório, alterar as permissões e criar um arquivo html:
mkdir ~/public_html
chmod o+x ~
chmod o+x ~/public_html/
chmod o+r ~/public_html/
echo 'Teste de página WEB com diretorio do usuario' > ~/public_html/index.html
sudo systemctl restart httpd.service
Depois acesse o endereço:
http://localhost/~seu_usuario/
Entendimentos básicos
O Apache possui opções e diretivas (<Directory ..i>) para determinar suas configurações.
O arquivo de configuração principal é
/etc/httpd/conf/httpd.conf, que inclui vários outros arquivos de configuração. Ao abri-lo, verifique as linhas que estão descomentadas (sem começar com tralha #), quer dizer que já estão pré-configuradas para você, vejamos alguns exemplos:
- ServerRoot "/etc/httpd" - Diretório raiz do Apache onde ficam os arquivos de configuração /etc/httpd/conf/ e os módulos /etc/httpd/modules/
- Listen 80 - Porta que o servidor irá exibir as páginas na Web via http, se quiser que fique acessível só pra seu computador e ninguém consiga acessar externamente altere para Listen 127.0.0.1:80
- ServerAdmin you@example.com - Este é o endereço de e-mail do administrador, que pode ser encontrado, por exemplo, em páginas de erro. Se quiser altere para o que você deseja.
- DocumentRoot "/srv/http" - Este é o diretório onde você deve colocar suas páginas da web. Você pode alterá-lo, mas não se esqueça de também alterar <Directory "/srv/http"> para o que você mudou seu DocumentRoot, ou você provavelmente vai ter um erro 403 (falta de privilégios) quando tentar acessar a nova raiz do documento. Não se esqueça de alterar a linha "Require all denied" para "Require all granted", caso contrário você receberá um erro 403. Lembre-se de que o diretório DocumentRoot e suas pastas pai devem permitir permissão de execução para outros (pode ser configurado com chmod o+x /path/to/DocumentRoot ), caso contrário você obterá um erro 403 .
- AllowOverride None - Esta diretiva nas seções <Directory> faz com que o Apache ignore completamente os arquivos .htaccess. Observe que esse é o padrão do Apache 2.4, portanto, é necessário permitir explicitamente substituições se você planeja usar arquivos .htaccess. Se você pretende usar mod_rewrite ou outras configurações em arquivos .htaccess, pode permitir quais diretivas declaradas nesse arquivo podem substituir a configuração do servidor.
- ServerSignature Off - Para ocultar informações do servidor, como as versões do Apache, linguagem, sistema operacional...
- Include "conf/extra/httpd-userdir.conf" - Se você não quiser que os diretórios dos usuários estejam disponíveis na web, comente essa linha. Ou se quiser alterar o nome e/ou localização do mesmo, edite o arquivo: "/etc/httpd/conf/extra/httpd-userdir.conf".
- Entre outras opções e diretivas, que podem ser vistas no próprio arquivo.