Servidor web - Apache - dicas e tutoriais.

Atualizado em: 16/05/2007



Sobre este documento

Versão simplificada do documento em formato texto, dicas e indicação de material relacionado ao servidor web Apache, linhas de comando e exemplos de configuração pronto para copiar e colar, mais detalhes, veja indicações no final deste documento, consulte também o FAQ com mensagens da Linux-br.

Os comandos e dicas podem não atender as suas necessidades, não ser compatível com sua instalação, use como referencia, tente adaptar ao seu ambiente.

O que é Apache?

O que significa apache?

Apache é um servidor de páginas web, quer saber mais?.

Digite na caixa de pesquisa do google, define:apache não entendeu porque está em ingles? então use tradutor do próprio google, copie a URL atual e no final da página, clique em "Ferramentas de idiomas", cole o endereço, clique em "traduzir", ou acesse diretamente o tradutor em http://translate.google.com/translate_t ou CTRL+T abre outra aba no browser para colar a URL.

Já que está procurando no google, na caixa de pesquisa, acrescente ao termo pesquisado +apache ~linux, exemplos:

    senha  +apache ~linux
    server +apache ~linux
    how to apache ~linux

Use e abuse da criatividade, tente com outras variações, use também expressões em ingles e o tradutor.

Consulte as páginas do manual; man apache

Procurando listas de discussão?, pesquise por algo semelhante a;

  lista apache-br
  mail list apache ~linux
  mailing list apache ~linux

Indicações para aplicação interna

Apache como servidor web tem destinação como servidor de páginas para internet, mas pode ser usado como um servidor web para acesso restrito, servir exclusivamente para estações da rede interna.

Considere usar o micro que compartilha a internet, firewall ou proxy como um servidor web interno, não consome muitos recursos, consome espaço em HD conforme o que for disponibilizado.

Algumas vantagens de manter o servidor web interno.

Disponibilizar a página da empresa em maquina interna, economia de banda, ou disponibizar documentos diversos, tutoriais, instruções, normas da empresa e etc...

Baixar arquivos grande e disponibilizar internamente, grande economia de banda, download interno muito rápido, separação destes arquivos com o do servidor de arquivos, proteção contra virus quando acessado por estações windows, evita que usuários fiquem navegando na net a procura do pacote e outras vantagens...

Criar páginas com senha para restringir o acesso, utilizo muito em casos de copia de HD, em reinstalações, principalmente do windows, não perco tempo, simplesmente faço copia completa para um diretório protegido por senha, depois passo o anti-virus do Linux e passo o login e senha ao usuário para acessar via Freenx ou winscp e copiar o que for de interesse dele.

Disponibilizar relatorios do SARG, relatórios de uso da internet com dados dos logs do Squid.

Webmail interno, considere usar servidor de e-mail interno com webmail e neste servidor fazer o controle de e-mail, aplicar suas regras e filtros.

Repositório local do seu gerenciador de pacotes smart, apt e etc.., use as imagens ISO da distro para disponibilizar a instalação de pacotes, faça o mesmo com pacotes extras da distro, tem exemplos nos tutorias sobre smart e algumas distro.

Disponibilizar gravador de CD via rede, para backup ou outras apliações, via browser (web).

Instalar, iniciar e testar o servidor web

Neste documento tem tópico especifico sobre algumas distro, em cada distribuição, muda alguns comandos e detalhes da configuração, procure neste documento pelo tópico especifico sobre sua distro e versão, quando não encontrar, tente fazer via Webmin, tem modulo de configuração do Apache, cofigura o servidor web em diversas distro, procure no menu do Webmin por;

Servers -> Apache Webserver

Pesquise também nas ferramentas de sua distro, algumas tem seu próprio configurador, como yast no SUSE, Drakconf no Mandriva e etc...

Não esqueça de pesquisar no melhor manual de todos Google....

Testar funcionamento do servidor apache, na propria maquina coloque na URL de algum navegador; http://localhost, ou http://ip-da-maquina, neste formato http://192.168.1.3, utilizando IP pode testar a partir de outra maquina da rede ou via internet com IP da internet, isto abre a página padrão em algumas distro ou lista o diretório vazio, caso falhe, então verifique se o servidor está rodando, se está ouvindo na porta 80, se tem regras de firewall liberando, considere que algumas operadores de ADSL bloqueiam a porta 80, alguns modem ADSL tem regras internas fazendo este bloqueio e muitos outros detalhes, portanto verifique o funcionamento na maquina local e depois tente localizar e isolar o probleam da conexão externa.

Obter informações do servidor, requer lynx instalado, execute no console uma das opções abaixo, pode ser na própria maquina ou outra qualquer da rede local, ou via web use o IP da internet ou dominio quando o servidor responde por um, execute neste formato;

  lynx -dump -head http://localhost  
  lynx -dump -head http://192.168.1.2
  lynx -dump -head http://www.dominio.com

Exemplo de resultado obtido na rede interna, resposta do server no OPENSUSE

  suse64:~ # lynx -dump -head http://192.168.1.2
  HTTP/1.1 200 OK
  Date: Mon, 27 Mar 2006 02:11:20 GMT
  Server: Apache/2.2.0 (Linux/SUSE)
  Connection: close
  Content-Type: text/html

Reinstalar o Apache, antes de qualquer ação, faça copia dos arquivos de confgiuração, salve em outro local, por segurança, faça também backup dos dados, para reinstalar precisa; parar o serviço, pelo gerenciador de pacotes remover e depois instalar, neste processo vai gravar os arquivos de configuração default, fazendo a copia antes, tem como voltar ou usar na comparação, na remoção do apache o gerenciador de pacotes não remove os diretórios de dados onde estão as páginas web ou apontando o link simbolico, pelo menos não removeu quando tetei, mas isto muda conforme o gerenciador de pacotes e distro, portanto um backup antes nunca é demais.

CentOS 5.0

Instalar servidor web (apache)

  yum install httpd -y
  yum install httpd-manual -y # documentação - opcional mas recomendado
  service httpd start  # iniciar somente agora.
  chkconfig httpd on  # iniciar automaticamente junto com boot

Veja também as dicas no tópico sobre FC5, são semelhantes e se aplicam também no CentOS 5.0

FC5 - Fedora core 5 arquitetura x86_64

Instalar e iniciar o servidor de páginas web - httpd-2.2.0-5.1.2@x86_64

Não testei em arquitetura ix86, acredito que não tem diferenças, pode seguir este tutorial também em instalações ix86, com cautela nos nomes dos pacotes que mudam de arquitetura, onde consta x86_64 deve ser algo entre i386 e i686, os arquivos de configuração e pacotes são os mesmos, muda somente a terminação do arquivo e mirrors (servidores de pacotes na internet)

Neste tópico não tive preocupação com segurança nem configuração de DNS, este servidor não está de cara para internet, funciona somente como servidor interno para FreeNX, webmail, web local, relatórios do SARG (Squid) e repositório local do smart para a rede interna (intranet).

Segue varias maneiras de instalar o servidor web, utilize somente uma delas;

Instalar via smart;

  smart install httpd -y
  smart install httpd-manual -y # documentação - opcional mas recomendado
  service httpd start  # iniciar somente agora.
  chkconfig httpd on  # iniciar automaticamente junto com boot

Prontinho, acesse a partir da maquina local ou qualquer outra estação da rede, basta usar o IP do servidor na URL do navegador, acessa a página de teste "Fedora Core Test Page"

Crie diretórios abaixo de /var/www/html e disponibilize páginas para a rede interna, relatórios do Sarg e muito mais....

Faça mais um teste, crie um diretório e copie uma figura ou texto, exemplo, criar o diretório programas para disponibilizar programas aos usuários da rede internet,

  mkdir /var/www/html/programas
  
  cp arquivo.txt /var/www/html/programas

Na URL do navegador informe o IP mais o diretório, exemplo para servidor com IP 192.168.1.3, na URL fica assim;

192.168.1.3/programas

prontinho, vai acessar o texto "arquivo.txt" via navegador.

Criar sub-diretórios ou links para outros locais, crie abaixo de /var/www/html/ e para acessar, acrescente o nome do sub-diretório após o IP, neste formato;

http://IPouDominio/diretorio/

http://192.168.1.2/diretorio/

Disponibilizar outros diretórios, por exemplo o diretório /home/zago/guiaz, crie um link neste formato;

ln -s /caminho/origem/local /var/www/html/nome-do-local

ln -s /home/zago/guiaz /var/www/html/guiaz

Para acessar, na URL use este formato;

http://192.168.1.2/nome-do-local/

Arquivos de configuração ficam em /etc/httpd

O caminho default do servidor de páginas em /var/www/html/

Aproveite para instalar também a documentação, está no pacote httpd-manual, acesse; /var/www/manual/index.html, coloque na URL do konqueror ou navegue até lá, ou se preferir, crie um link para acessar também a partir de outras maquinas da rede

  mkdir /var/www/html/manual
  
  ln -s /var/www/manual/index.html /var/www/html/manual

Nas demais maquinas da rede, acrescente /manual/ após o IP na URL, neste formato;

http://192.168.1.2/manual/

SUSE 10

Consulte "Suse Linux Referêcia", a configuração do Apache inicia na página 711 deste guia, como baixar este documento e mais dicas sobre ferramentas e aplicativos do SUSE 10 em;
http://www.zago.eti.br/distro/suse10-dicas.html

Instalar e iniciar o servidor de páginas web - Apache/2.0.54 (Linux/SUSE).

Neste tópico não tive preocupação com segurança nem configuração de DNS, este servidor não está de cara para internet, funciona somente como servidor interno para FreeNX, webmail, web local, relatórios do SARG (Squid) e repositório local do smart para a rede interna (intranet).

Segue varias maneiras de instalar o servidor web, utilize somente uma delas;

Instalar Apache2 via smart;
  smart install apache2 -y
  sed -i "s/Options None/Options All/g" /etc/apache2/default-server.conf
  chkconfig apache2 on
  rcapache2 start
  #documentação opcional...
  smart install apache2-doc -y
  smart install apache2-example-pages -y
  smart install suselinux-manual_pt_BR -y

Instalar Apache2 via Yast

Instalar via yast em modo texto, simplesmente execute;

  yast -i apache2
  sed -i "s/Options None/Options All/g" /etc/apache2/default-server.conf
  chkconfig apache2 on
  rcapache2 start

Em ambiente gráfico, execute yast2, entre em "serviços de rede" -> "Servidor HTTP", tem muitas opções de configuração, tentei a configuração default, confirmei todos os serviços e pacotes, inclusive o bind, instalou sem mensagens de erro, parece tudo OK, mesmo assim falhou, nem iniciou uma página de testes, via Yast2 ou webmin não consegui liberar sub-diretórios para montar servidor web interno, tentei liberando acesso geral com chmod e outras opções nos .conf mas persiste no erro de leitura protegida.

A solução foi alterar em /etc/apache2/default-server.conf a diretiva (Options None) para (Options All), use seu editor preferido para editar;

  /etc/apache2/default-server.conf
  
  Localize (#Options None), remova o comentario e altere de None para All como neste exemplo;
  
  #Options None
  Options All

Ou em uma tacada só, copiar e colar, altera também as linhas comentadas, faça copia do arquivo antes da alteração, execute;

cp /etc/apache2/default-server.conf /etc/apache2/original-default-server.conf

sed -i "s/Options None/Options All/g" /etc/apache2/default-server.conf

Iniciar o servidor web (apache 2), sempre que alterar alguma diretiva de confiuguração precisa reinicar o servidor Apache, execute, rcapache2 restart

Pronto para acessar, use o IP da maquina na URL, quando vazio exibe a lista de arquivos e diretórios, crie ou copie sua página em /srv/www/htdocs/, ou instale a página de exemplo;

smart install apache2-example-pages -y

Este exemplo é muito simples, instala o index.html e robots.txt, quando acessa o raiz exibe a mensagem It works!, edite esta mensagem em /srv/www/htdocs/index.html, se quiser as páginas indexadas nos mecanismos de busca, edite ou remova o robot.txt

Crie links para outros locais, ou crie sub-diretórios abaixo de /srv/www/htdocs/ e para acessar, acrescente o nome do sub-diretório após o IP, neste formato;

http://IPouDominio/diretorio/

http://192.168.1.2/diretorio/

Quando instalar a documentação, localize os index.html com find, (find / -name index.html), depois acesse via navegador local.

/usr/share/doc/manual/suselinux-manual_pt_BR/manual/index.html

/usr/share/doc/packages/

Pode criar link para acessar via navegador na maquina local ou a partir de qualquer maquina da rede, informando o IP mais o diretório ou arquivo, em meus testas acusava erro na troca de página, removi estas linhas de comando temporariamente, somente até descobrir a solução, caso queira tentar, serve como referencia as dicas abaixo.

Disponibilizar páginas e documentação no servidor Apache local, pode ser outros diretórios já existentes na maquina, como páginas do manual ou outros arquivos, por exemplo o diretório /home/zago/guiaz, pode criar um link no raiz ou criar criar sub-diretório como nome-do-local, crie também link neste formato;

  mkdir /srv/www/htdocs/nome-do-local
  
  ln -s /caminho/origem/local /srv/www/htdocs/nome-do-local
  
  ln -s /home/zago/guiaz /srv/www/htdocs/nome-do-local
   
  Para acessar, na URL use este formato;
  
  http://192.168.1.2/nome-do-local/

Prontinho, vai cair no diretório para onde criou o link, abrindo index.html, caso ele não exista, então listará os arquivos e diretórios no mesmo formato quando acessa o raiz deste site.

Quando falhar, siga esta dica.

Mensagen de erro quando tenta acessar páginas antes de alterar para a diretiva "Options All", ao tentar acesso por outra maquina da rede, retorna esta mensagem no browser

  Access forbidden!
  
  
  You don't have permission to access the requested directory. There is either no index document or the directory is read-protected. 
  
  
  If you think this is a server error, please contact the webmaster. 
  
  
  Error 403
  
  192.168.1.240
   Sun Oct 23 22:45:28 2005
   Apache/2.0.54 (Linux/SUSE) 

Nos logs registra este erro;

  linux:/var/log/apache2 # tail access_log
  192.168.1.53 - - [23/Oct/2005:22:31:05 -0200] "GET / HTTP/1.1" 403 1018 "-" "Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)"
  
  linux:/var/log/apache2 # cat error_log
  [Sun Oct 23 22:30:57 2005] [notice] mod_python: Creating 32 session mutexes based on 150 max processes and 0 max threads.
  [Sun Oct 23 22:30:58 2005] [notice] Apache/2.0.54 (Linux/SUSE) configured -- resuming normal operations
  [Sun Oct 23 22:31:05 2005] [error] [client 192.168.1.53] Directory index forbidden by rule: /srv/www/htdocs/

Arquivos de configuração em /etc/apache2

Caminho do servidor de páginas /srv/www/htdocs

Esta configuração foi testada depois de configurado pelo Yast2, ainda não tentei instalar usando somente comandos do smart.

Configurando via webmin 1.240 retorna esta mensagem;

O arquivo executável /usr/sbin/httpd2-worker do servidor Apache não existe. Se o apache está instalado, ajuste a configuração do módulo para usar o caminho correto.

Clique na parte que der foco na mensagem acima e altere a diretiva "Caminho do executável httpd", preencha com "/usr/sbin/httpd2-prefork", pode salvar que abre nas configurações do servidor httpd.

Aproveite para instalar também a documentação e página de exemplo (apache2-doc e apache2-example-pages), acesse acrescentando /manual/ após o IP na URL, neste formato;

http://192.168.1.2/manual/

SUSE 10 e 10.1 - Diretório com senha - página protegida

Ambiente; SUSE 10 ou OPENSUSE 10.1, rodando apache2 sem problemas, outras maquinas da rede ou web acessando páginas ou diretórios.

Proteger diretórios no servidor web, pedir login e senha para liberar acesso a diretórios do servidor apache2.

Exemplo de como pedir login e senha para acessar um diretório, proteger o diretório /srv/www/htdocs/livros

criar diretório e chamar editor "vi";

  mkdir /srv/www/htdocs/livros
  cd /srv/www/htdocs/livros
  vi .htaccess # ou seu editor preferido

segue copia do meu .htpasswd, ajuste somente o diretório a proteger.

opensuse101:~ # cat /srv/www/htdocs/livros/.htaccess

  AuthUserFile /etc/apache2/.htpasswd
  AuthGroupFile /dev/null
  AuthName "Aceso Restrito"
  AuthType Basic
  
  Options All
  <Limit GET POST>
  require valid-user
  </Limit>

Editar /etc/apache2/httpd.conf, inserir após a última linha o texto abaixo:

  #primeiro diretorio a proteger
  <Directory "/srv/www/htdocs/livros">
  AllowOverride All
  </Directory>

Criar usuário e senha, pode e deve ser diferente do usuário do sistema

htpasswd2 -c -b -m /etc/apache2/.htpasswd usuario senha

htpasswd2 -c -b -m /etc/apache2/.htpasswd zago minhasenha

Reiniciar o servidor web; rcapache2 restart

-c cria novo arquivo de senhas, remove usuários já existentes, para adicionar novos usuários mantendo os já existentes, elimine a diretiva -c, para adicionar novos usuários, use neste formato.

htpasswd2 -b -m /etc/apache2/.htpasswd zago minhasenha

Pronto, teste o acesso, informando na URL o IP mais o diretório;

http://192.168.1.53/livros/

Quando OK abre a tela de login e senha, (user e passwd), quando falhar reveja a configuração.

Atenção...

Depois de qualquer alteração, antes de efetuar novo teste de conexão, no servidor tem que reiniciar o apache, no cliente tem que fechar o navegador e abrir novamente.

Trocar senha;

htpasswd2 -b -m /etc/apache2/.htpasswd zago novasenha

Criar novos usuários;

htpasswd2 -b -m /etc/apache2/.htpasswd novouser umasenha

Para meu uso na rede interna está muito bom, em micros de cara para internet requer uma pesquisa sobre segurança, senha forte e outras formas de controle/autenticação.

Existem outras maneiras de controlar o acesso e autenticação, como exemplo segue o link sobre PAM com modulo para Apache;

http://pam.sourceforge.net/mod_auth_pam/

SUSE 10.1 - i386

Consulte "Suse Linux Referêcia", como baixar este documento e mais dicas sobre ferramentas e aplicativos do SUSE 10.1
http://www.zago.eti.br/distro/suse10.1-dicas.html

Instalar e iniciar o servidor de páginas web - Apache/2.2.0 (Linux/SUSE).

Neste tópico não tive preocupação com segurança nem configuração de DNS, este servidor não está de cara para internet, funciona somente como servidor interno para FreeNX, webmail, web local, relatórios do SARG (Squid) e repositório local do smart para a rede interna (intranet).

Segue as linhas de comando para instalar o servidor web Apache2 via smart;
  smart install apache2 -y
  sed -i "s/Options None/Options All/g" /etc/apache2/default-server.conf
  chkconfig apache2 on
  rcapache2 start
  #documentação opcional...
  smart install apache2-doc -y
  smart install apache2-example-pages -y
  smart install suselinux-manual_pt_BR -y

No comando "rcapache2 start" deve retornar mensagem semelhante a esta;

  opensuse101:/home/zago # chkconfig apache2 on
  opensuse101:/home/zago # rcapache2 start
  Starting httpd2 (worker)                                              done

OK, servidor apache no AR, crie links, diretórios ou páginas a partir de /srv/www/htdocs/, exemplo para criar o diretório com estas mensagens do FAQ.

mkdir /srv/www/htdocs/zago/

Copiar os textos para este diretório e acessar de qualquer maquina, informe o IP e diretório, neste exemplo acesse;

http://200.204.198.164/zago

Veja mais dicas no tópico sobre SUSE 10.1, as dicas sobre link e criar diretórios são iguais nas duas versões SUSE, procure também no menu deste documento "SUSE 10".

Conectiva 10

No Conectiva o Apache - servidor web - já vem configurado com página padrão de exemplo, colocar esta página no ar é muito simples, basta executar:

  apt-get install apache
  service apache start

Prontinho, servidor web rodando, faça o teste, na própria maquina abra o navegador e digite na URL o próprio IP da maquina, ou simplesmente localhost, acessar a partir de outra maquina da rede, na URL coloque o IP da maquina que está rodando o apache para acessar a página padrão, veja um exemplo desta página, acesse 200.204.198.164.

Aproveite e instale também a documentação para acessar a partir da página padrão.

apt-get install apache-doc

Esta página padrão fica em /srv/www/default/html, pode substitui-la ou criar diretórios, veja o exemplo para a documentação, quando instalada fica no sub-diretório manual.

Iniciar o servidor junto com o boot da maquina, toda vez que ligar o micro inicia também o servidor web; chkonfig apache on

Conferir se está rodando; service apache status

Acompanhe o log do apache

tail -f /var/log/httpd/access_log

veja também:

/var/log/httpd/error_log

Criar repositório de programas, considere usar o servidor como um servidor web interno, com acesso somente pelas estações da rede, pode instalar quantos servidor quiser pela rede.

Exemplo para criar o diretório programas para disponibilizar programas para as demais estações rede, Firefox, OpenOffice, anti-virus e outros utilitários, basta criar o diretório, tornar um usuário como dono para salvar os arquivos e prontinho, veja estes comandos para criar o diretório programas e tornar o usuário zago o dono do diretório para dar manutenção, salvar e remover progrmas no diretório;

  mkdir /srv/www/default/html/programas
  chown zago /srv/www/default/html/programas

Acessar este diretório, na URL dos navegadores das maquinas da rede, use o IP do servidor mais o diretório, neste formato;

http://192.168.1.3/programas/

Observe que o acesso via linha de comando é diferente da indicação na URL, o local é o mesmo, a diferença está forma de acesso, via browser o diretório raiz é o html que fica em /srv/www/default/html.

Manutenção neste diretório, em ambiente gráfico faça remotamente via konqueror com fish ou via ssh -X, com outros serviços como; mount (NFS), Freenx, winscp, scp, acesse via ssh e baixe via wget, tem muitas maneiras...

Este servidor interno tem muitas vantagens, faz o download uma única vez, economiza banda, agiliza o download, evita perda de tempo dos usuários procurando na net pelo pacote e outras vantagens.

OBS., CL10 instalado com CD upd1 vem com apache 2.0.49, o httpd.conf default desta versão do apache no CL10 não mostra os diretórios abaixo de /srv/www/default/html ou retornar no navegador a mensagem de acesso negado.

Solução; altere em /etc/apache/conf/httpd.conf, procure pela diretiva Options None, altera para Options All, depois reinicie o apache service apache restart e prontinho, pode acessar os diretórios criados abaixo de html sem problemas, utilizo este recurso em servidores exclusivo para rede interna, em servidor de cara para internet pesquise sobre segurança e outros cuidados como criar link para o diretório onde está a página.

Colinha do zago (faz a alteração indicada acima, basta copiar e colar);

sed -i "s/Options None/Options All/g" /etc/apache/conf/httpd.conf

service apache restart

Falha ao iniciar o Apache, quando obter o resultado abaixo.

service apache start

  Iniciando Apache web server (httpd): httpd: Could not determine the server's
  fully qualified domain name, using 127.0.0.1 for ServerName
                                                                  [FALHOU]

Isto indica erro no nome da maquina, alterou depois da instalação do CL10 ou está usando menos de 3 termos na identificação, tem que corrigir para algo no formato.

server.zago.eti.br, maquina.dominio.net, maquina.dominio.com.br e etc.. não pode usar menos que 3 palavras nesta identificação, procure fazer esta alteração pelo linuxconf, basta instalar o linux e entrar na configuração de rede, procure o local onde aparece o nome da maquina e dominio, faça a alteração que deverá funcionar sem problemas, caso queira tentar pelo modo manual, altere em /etc/hosts e nas configurações da placa de rede que estão abaixo de /etc/sysconfig.

CL10 - Diretório com senha - página protegida

Ambiente; Conectiva 10 rodando servidor web, considerando o uso com as configurações default da instalação, proteger diretório contra acesso indesejado, criar diretório squid com acesso exclusivo de um usuário, por segurança deve alterar user e senha deste exemplo, também deve ser diferente de usuários do sistema.

Neste exemplo a seguir, usuário = squid e senha = minhasenha.

criar diretório squid e dentro dele o arquivo de cotrole .htaccess.

mkdir /srv/www/default/html/squid

use seu editor preferido ou vi /srv/www/default/html/squid/.htaccess crie o arquivo /srv/www/default/html/squid/.htaccess com este conteúdo.

  AuthUserFile /etc/.htpasswd
  AuthGroupFile /dev/null
  AuthName "Area Squid"
  AuthType Basic
  <Limit GET>
  require user squid
  </Limit>

use seu editor preferido ou vi /etc/apache/conf/httpd.conf edite o /etc/apache/conf/httpd.conf para incluir as linhas abaixo no final dele.

  <Directory /srv/www/default/html/squid>
  require user squid
  AuthType Basic
  AuthName squid
  AuthUserFile /etc/.htpasswd
  </Directory>

crie o arquivo de senhas, neste exemplo; login=squid, senha=minhasenhacd /etc

Execute a linha de comando dentro do diretório que deseja proteger e onde criou o arquivo .htaccess, neste exemplo o caminho é este.

cd /srv/www/default/html/squid/

htpasswd -cb /etc/.htpasswd squid minhasenha

reinicie o serviço apache

``service apache restart ``

No navegador da maquina ou de outra da rede, na URL use IP/squid, exemplo;

http://192.168.1.3/squid/

Na tela de autenticação informe em usuário=squid senha=minhasenha

kubuntu 6.06

Instale o pacote apache2, via seu gerenciador de pacotes, ou execute no konsole do root

aptitude install apache2

Prontinho, apache instalado e rodando, para acessar a página default, use o IP do servidor apache na URL do navegador, pode ser na própria maquina ou outra qualquer da rede, isto acessa o diretório raiz e mostra o diretório da página default, também mostra a versão (Apache/2.0.55 (Ubuntu)). Caso falhe, verifique se não ocorreu erros durante a intalação, se não tem restrição no firewall ou outro problema na rede.

O raiz do servidor web fica em /var/www/, faça test com copia de algum arquivo texto ou página web, ou crie diretórios, exemplo para criar diretório programas,

mkdir /var/www/programas

Copie algum arquivo texto ou páginas em HTML e acesse via navegador, acrescente /programas depois do IP, neste formato.

192.168.1.2/programas

Debian (Sarge 3.1)

Como root em linha de comando;

aptitude install apache

Após o dialogo, Servidor web instalado e iniciado automaticamente,

Exemplo para criar o diretório programas para disponibilizar programas para as demais estações rede, Firefox, OpenOffice, anti-virus e outros utilitários, basta criar o diretório, tornar um usuário como dono para salvar os arquivos e prontinho, veja estes comandos para criar o diretório programas e tornar o usuário zago o dono do diretório para dar manutenção, salvar e remover programas no diretório;

    mkdir /var/www/programas
    chown zago /var/www/programas

Acessar este diretório, na URL dos navegadores das maquinas da rede, use o IP do servidor mais o diretório, neste formato;

http://192.168.1.3/programas/

Observe que o acesso via linha de comando é diferente da indicação na URL, o local é o mesmo, a diferença está na forma de acesso, via browser o diretório raiz é o www que fica em /var/www.

Acompanhe o log em;

tail -f /var/log/apache/access.log

Firewall - Regras de iptables

O acesso ao servidor web é feito pela porta 80, precisa abrir esta porta no firewall para liberar o acesso.

Em servidores internos, servidor apache para fornecer programas e documentos somente para a rede interna, quando instalado em micro de cara para internet, como no caso de micros compartilhando a internet e fazendo o firewall. Neste ambiente, quando deseja fechar para o mundo e abrir somente para a rede interna, em micros com duas placas de rede, use esta regra no firewall.

  ##### Libera servidor web somente para rede interna, fechar para o mundo.
  $iptables -A INPUT -p tcp --dport 80 -i $EXTERNA -j DROP
  $iptables -A INPUT -p tcp --dport 80 -i $INTERNA -j ACCEPT

No exemplo acima DROP fecha acesso na interface externa e ACCEPT libera acesso na interface interna, desta forma permite acesso somente quando vem da rede local (ACCEPT na interface $INTERNA), fecha acesso vindo da internet (DROP na interface $EXTERNA ). Altere conforme seu firewall também as variaveis $iptables para o caminho do iptables, $EXTERNA para interface externa conectada ao mundo, $INTERNA para interface interna ligada a rede interna.

As duas regras com ACCEPT libera tudo, tanto para acessos vindo da rede interna como da internet.

$iptables, $EXTERNA e $INTERNA são variaveis definidas no inicio do firewall, faça o mesmo no seu firewall ou use o device em lugar da variavel (eth0, eth1...)

Página com FAQ e mais dicas sobre firewall.
http://www.zago.eti.br/firewall/A-menu-firewall.html

DNS

Configuração de DNS veja FAQ;
http://www.zago.eti.br/dns.txt
http://www.zago.eti.br/dns1.txt
http://www.zago.eti.br/dns-redeinterna.txt

Servidor web interno com acesso colocando IP na URL não precisa configurar DNS, para usar dominio, mesmo em rede interna precisa configurar alguma forma de resolver nomes.

Servidores para o mundo também pode ser acessado pelo IP, por exemplo este; 200.204.198.164, também precisa de cuidados especiais, para responder por dominios, obrigatoriamente precisa do DNS. Pense na segurança.

Google - incluir e excluir páginas - robots.txt

Não sei explicar os mecanismos de pesquisa do Google, Yahoo e muitos outros.

Sei que procuram pelo arquivo robots.txt, caso encontre este arquivo no seu site, eles respeitam as instruções, exemplo que informa para todos que não deve pesquisar neste site, crie um arquivo no raiz do site com nome de robots.txt com este conteúdo.

  User-Agent: *
  Disallow: /

O exemplo acima é copia do kernel.org, como tem este arquivo no raiz, seu conteúdo não é pesquisado nem aparece nas pesquisas dos mecanismos de busca.

ftp://mirrors.kernel.org/robots.txt

Sem este arquivo no raiz do site, os mecanismos de busca acham qualquer página em seu servidor web sem proteção por senha, mesmo quem não usa um domínio e coloca o servidor no ar com acesso somente via IP, como é meu caso que mantenho o FAQ em um servidor sob um dominio e também mantenho um mirror do FAQ em minha maquina com IP fixo, o Google pega os dois.

Basta alguma referencia na web para acessarem seu IP, nem precisa solicitar a inclusão de suas páginas, de forma automatica, periodicamente os robots do Google acessam seu servidor para atualizar o banco de dados, não sei informar com qual frequência nem critérios, nas páginas dele tem informações e endereços para entrar em contato.

Verifique nos logs do Apache que acha o IP destes mecanismos de buscas, alguns tem identificação, quando aparece somente o IP dá um pouco de trabalho, tem que pegar o IP e levantar de quem são, neste meio aparece Google e outros mecanismos de busca.

Isto é muito bom, não paga nada para divulgar seu site, nem precisa fazer cadastro, não precisa fazer nada, basta colocar o site no ar que depois de algum tempo vai aparecer nos mecanismos de busca, inclusive o Google, caso queira, pode se fazer o cadastro, na maioria dos mecanismo de busca tem alguma opção, alguns tem até classificação por assunto e etc...

Quando não quiser o conteúdo de seu servidor web ou páginas fazendo parte das pesquisas do Google, siga estas dicas.

Como excluir suas páginas ou servidor web das pesquisas do Google.
Informações do Google para Webmasters - Googlebot: Indexador do Google
http://www.google.com/webmasters/bot.html#howoften

Ambiente de testes

Considere criar um ambiente para testar configurações, não adianta reclamar que não tem "verba", não custa nada, o pouco tempo que investir agora vai lhe poupar muito mais no futuro além de evitar muitos problemas, considere um bom investimento de tempo, pode instalar diversos Servidores web pela rede sem problema algum, veja estas dicas.

A maneira mais segura, utilize duas maquinas da rede, nestas maquinas tem a liberdade de testar tudo antes de fazer promessas, o mais importante, sem gastos e tudo legalmente, faça instalação dual-boot, assim quando terminar os testes, reinicie a maquina e selecione a opção de boot normal, tudo fica como antes, já entendeu!, nestas maquinas ficam duas instalações, uma para o trabalho normal e outra de testes.

Utilize estações da rede para instalar dual-boot, siga estas dicas.

Veja dicas de como fazer duas instalações Linux no mesmo HD, utilize estações para testes, evite em servidores embora seja possivel, passo a passo em
http://www.zago.eti.br/boot_div.txt

Dual boot Linux e windows - Aproveite e veja a dica sobre backup da instalação completa do windows na partição Linux, quando algum virus comer o windows ou precisar reinstalar, vai poupar muito tempo, basta uma simples cópia de volta para recuperar a instalação do windows, passo a passo em.
http://www.zago.eti.br/boot-dual-win-e-linux.html

Nesta estação (instalação) de testes, vai utilizar somente parte do espaço do HD e nada mais.

Com o Apache configurado na maquina de testes, utilize qualquer estação da rede para acessa-la.

Prontinho, tem tudo que precisa para testar configuração , diretivas de configuração, testes de páginas, uso de scripts e banco de dados, quando concluir a configuração, basta repetir o processo no principal, ou simplificando, copiar os arquivos de configuração.

Considere manter esta instalação como backup do servidor, em casos de emergencia, nunca se sabe quando vai ocorrer acidentes, queimar a maquina, HD ou uma pane qualquer no servidor, nestas situações basta ajustes no DNS, IP, dominio, eventualmente troca de local ou cabos para subir esta instalação em lugar do servidor principal, em minutos se faz a troca do IP e sobe o backup do servidor web, o maior problema é restaurar os dados, sobre backup e restore voce já sabe como lidar, mantenha o backup atualizado nela também.

Indicação de sites e material relacionado ao servidor Apache

FAQ com mensagens da lista Linux-br em;

http://www.zago.eti.br/apache.txt
http://www.zago.eti.br/apache1.txt
http://www.zago.eti.br/apache2.txt
http://www.zago.eti.br/apache-2.0.txt
http://www.zago.eti.br/asp.txt

Documentação oficial - Inicie pelo site do projeto, muita documentação, lista de discussão, download e muito mais, acesse;
http://httpd.apache.org/

Algumas indicações, material em portugues e aplicativos.

Servidor Web - Apache
http://www.conectiva.com/doc/livros/online/10.0/servidor/pt_BR/ch10.html#www.apache
veja também o FAQ do apache em:
http://httpd.apache.org/docs/misc/FAQ.html#indexes

http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/servidores.apache.html
http://www.conectiva.com.br/doc/livros/online/7.0/servidor/www002.html
A S P - Sobre ASP no servidor Apache.
http://www.apache-asp.org
As mensagens sobre ASP estão no FAQ
http://www.zago.eti.br/asp.txt

configurar apache
http://www.underlinux.com.br/sections.php?op=viewarticle&artid=10
JAVA - Servidor Web Apache rodar aplicações Java por padrão precisa do jakarta tomcat. veja em:
http://jakarta.apache.org/tomcat/index.html
WebCounter, que é um contador muito bom e fácil de instalar noLinux.
http://www.muquit.com/muquit/software/Count/Count.html
SSL - Site em ingles, tem um guia Apache SSL completo GRÁTIS da Thawte, sobre seguranca Apache SSL.
http://www.thawte.com/ucgi/gothawte.cgi?a=n33460139407026000
Dominios vituais
http://www.dicas-l.com.br/dicas-l/20010928.shtml e
http://www.dicas-l.com.br/dicas-l/19980505.shtml

Virtual Host - capacidade de hospedar mais do que um web site numa única máquina, com um endereço IP ou mais. Nesse artigo aprenderemos os fundamentos básicos para se configurar virtual hosts no servidor.
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1638

Apache + Java

rodar aplicações em java
http://tomcat.apache.org/

Senhas, autenticação e controles de acesso

Colocar senha em diretórios, pedir senha pra acessar via web.
http://httpd.apache.org/docs/howto/auth.html
http://httpd.apache.org/docs/misc/FAQ.html#user-authentication

1.11. Como faço para Autenticar usuários no apache?
http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/sistema.rede.apache.authsenhas.html

Uso e Segurança com o .htaccess no Apache
http://www.devin.com.br/eitch/htaccess/

Usando script cgi na proteção de senhas, procure por password protection em www.cgi-resources.com por exemplo.
http://httpd.apache.org/docs/location.html
http://www.apacheweek.com/features/userauth
Bom resumo dos vários métodos de autenticação existentes no apache
http://sec.ure.org/apache_auth.shtml
Criar repositório de senhas para a web, explica também sobre os perigos de usar /etc/passwd
http://www.linuxplanet.com/linuxplanet/tutorials/1527/7/

http://httpd.apache.org/docs-2.0/howto/htaccess.html

mini-tutorial:
http://www.bignosebird.com/apache/a10.shtml

como configurar autenticação no apache.
http://httpd.apache.org/docs/howto/auth.html

Estatisticas e relatórios

Gerar relatorios de acesso, procure e pesquise por WEBALIZER
AWStats official web site - Free real-time logfile analyzer to get advanced statistics (GNU GPL).
http://awstats.sourceforge.net/
Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html