Tutoriais do Apache para iniciantes

Índice

O que é Apache?

Apache é um notável software de aplicação. É o aplicativo de servidor Web mais usado no mundo, com mais de 50% de participação no mercado de servidores Web comerciais. Apache é o aplicativo de servidor da Web mais amplamente usado em sistemas operacionais do tipo Unix, mas pode ser usado em quase todas as plataformas, como Windows, OS X, OS / 2, etc. A palavra, Apache, foi tirada do nome do Native Tribo americana 'Apache', famosa por suas habilidades na guerra e na formulação de estratégias.

É um aplicativo de servidor da Web modular baseado em processo que cria um novo encadeamento a cada conexão simultânea. Ele oferece suporte a vários recursos; muitos deles são compilados como módulos separados e estendem sua funcionalidade principal, e podem fornecer tudo, desde suporte a linguagem de programação do lado do servidor até mecanismo de autenticação. A hospedagem virtual é um recurso que permite que um único Apache Web Server atenda a vários sites diferentes.

Como instalar o Apache

Existem várias maneiras de instalar o pacote ou aplicativo. Existem alistados abaixo -

  1. Uma das características deste aplicativo da web de código aberto é que qualquer pessoa pode fazer o instalador de acordo com seu próprio ambiente. Isso permitiu que vários fornecedores como Debian, Red Hat, FreeBSD, Suse etc. personalizassem a localização do arquivo e a configuração do apache levando em consideração outros aplicativos instalados e o sistema operacional básico.
  2. Além de instalá-lo de um instalador baseado no fornecedor, sempre há a opção de compilar e instalar a partir do código-fonte. A instalação do Apache a partir do arquivo de origem é uma plataforma independente e funciona para todos os sistemas operacionais.

O servidor web apache é um aplicativo modular onde o administrador pode escolher a funcionalidade necessária e instalar diferentes módulos de acordo com sua necessidade.

Todos os módulos podem ser compilados como Objetos Compartilhados Dinâmicos (DSO é um arquivo de objeto que pode ser compartilhado por vários aplicativos durante a execução) que existe separadamente do arquivo apache principal. A abordagem DSO é altamente recomendada, pois torna a tarefa de adicionar / remover / atualizar módulos da configuração dos servidores muito simples.

Instale o Apache: plataforma Linux

Em sistemas baseados em Red Hat ou rpm

Se você estiver usando um rpm (RedHat Package Manager é um utilitário para instalação de aplicativos em sistemas Linux) com base em uma distribuição Linux, ou seja, Red Hat, Fedora, CentOs, Suse, você pode instalar este aplicativo pelo gerenciador de pacotes específico do fornecedor ou construindo diretamente o arquivo rpm do tarball de origem disponível.

Você pode instalar o Apache através do Gerenciador de Pacotes padrão disponível em todas as distribuições baseadas em Red Hat como CentOs, Red Hat e Fedora.

[root @ amsterdam ~] # yum install httpd

O tarball de origem do apache pode ser convertido em um arquivo rpm usando o seguinte comando.

[root @ amsterdam ~] # rpmbuild -tb httpd-2.4.x.tar.bz2

É obrigatório ter o pacote -devel instalado em seu servidor para criar o arquivo .rpm a partir do código-fonte.

Depois de converter o arquivo de origem em um instalador rpm, você pode usar o seguinte comando para instalar o Apache.

[root @ amsterdam ~] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Após a instalação, o servidor não inicia automaticamente, para iniciar o serviço, você deve usar qualquer um dos seguintes comandos no Fedora, CentOs ou Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl start[root @ amsterdam ~] # serviço httpd start[root @ amsterdam ~] # /etc/init.d/httpd start

Instale o Apache da fonte

Instalar o apache a partir da fonte requer que o pacote -devel seja instalado em seu servidor ... Você pode encontrar a última versão disponível do Apache, você pode baixá-la aqui. Depois de baixar o arquivo de origem, mova-o para a pasta / usr / local / src.

[root @ amserversterdam ~] cd / usr / local / src[root @ amserversterdam ~] gzip -d httpd-2.2.26.tar.gz[root @ amserversterdam ~] tar xvf httpd-2.2.26.tar[root @ amserversterdam ~] httpd-2.2.26

Para ver todas as opções de configuração disponíveis para o Apache, você pode usar a opção ./configure -help. A opção de configuração mais comum é -prefix = {nome do diretório de instalação}.

[root @ amserversterdam ~] ./ configure --help[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] make[root @ amserversterdam ~] make install

O exemplo acima mostra a compilação do Apache dentro do diretório / usr / local / apache com o recurso DSO. A opção -enable-so pode carregar os módulos necessários para o apache em tempo de execução por meio do mecanismo DSO em vez de exigir uma recompilação.

Assim que a instalação for concluída, você pode navegar na página padrão dos servidores da web com seu navegador favorito. Se o firewall estiver habilitado em seu servidor, você deve abrir uma exceção para a porta 80 no firewall do sistema operacional. Você pode usar o seguinte comando para abrir a porta 80.

iptables -I INPUT -p tcp --dport 80 -j ACEITAR

serviço iptables salvar

Você pode ver a tela de boas-vindas padrão do Apache2 navegando no endereço IP do seu servidor.

O que é Virtual Host?

Um servidor da web Apache pode hospedar vários sites no servidor SAME . Você não precisa de uma máquina servidora separada e software apache para cada site. Isso pode ser alcançado usando o conceito de Host Virtual ou VHost.

Qualquer domínio que você deseja hospedar em seu servidor web terá uma entrada separada no arquivo de configuração do apache.

Tipos de Apache Virtualhost

  1. Host virtual baseado em nome
  2. Host virtual baseado em endereço ou IP e.

Host Virtual baseado em nome

A hospedagem virtual baseada em nome é usada para hospedar vários sites virtuais em um único endereço IP.

Para configurar a hospedagem virtual baseada em nome, você deve definir o endereço IP no qual receberá as solicitações do Apache para todos os sites desejados. Você pode fazer isso pela diretiva NameVirutalHost dentro da configuração do apache, ou seja, arquivo httpd.conf / apache2.conf.

Exemplo de host virtual Apache:

NameVirtualHost *: 80ServerAdmin O endereço de e-mail address está sendo protegido de spambots. Você deve habilitar o JavaScript para visualizá-lo.DocumentRoot /var/www/html/example1.comNome do servidor www.example1.comServerAdmin O endereço de e-mail address está sendo protegido de spambots. Você deve habilitar o JavaScript para visualizá-lo. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Você pode adicionar quantos hosts virtuais, conforme sua necessidade. Você pode verificar seus arquivos de configuração da web com:

[root @ amsterdam ~] #httpd -tSintaxe OK

Se o arquivo de configuração tiver alguma sintaxe errada, ele gerará um erro

[root @ 115 conf.d] # httpd -tErro de sintaxe na linha 978 de /etc/httpd/conf/httpd.conf:Comando inválido '*', talvez incorreto ou definido por um módulo não incluído na configuração do servidor

Host virtual baseado em IP

Para configurar a hospedagem virtual baseada em IP, você precisa de mais de um endereço IP configurado em seu servidor. Portanto, o número de vhost apache dependerá do número de endereços IP configurados em seu servidor. Se o seu servidor tiver 10 endereços IP, você pode criar 10 hosts virtuais baseados em IP.

No diagrama acima, dois sites example1.com e example2.com receberam IPs diferentes e estão usando hospedagem virtual baseada em IP.

Ouça 192.168.0.100:80ServerAdmin O endereço de e-mail address está sendo protegido de spambots. Você deve habilitar o JavaScript para visualizá-lo.DocumentRoot /var/www/html/example1.comNome do servidor www.example1.comServerAdmin O endereço de e-mail address está sendo protegido de spambots. Você deve habilitar o JavaScript para visualizá-lo. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

O que o Apache precisa para executar o arquivo Php?

A execução de arquivos Php no Apache precisa do mod_php habilitado em seu servidor. Ele permite que o Apache interprete arquivos .Php. Possui manipuladores Php que interpretam o código Php no apache e enviam HTML para o seu servidor web.

Se mod_php estiver habilitado em seu servidor, você terá um arquivo chamado php.conf no diretório /etc/httpd/conf.d/. Você também pode verificar com:

httpd -M | grep "php5_module"

A saída será semelhante a:

Manipuladores de php no Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php é o manipulador PHP mais antigo, ele torna o PHP parte do apache e não chama nenhum processo PHP externo. Este módulo é instalado por padrão em todos os repositórios de distribuição do Linux, então habilitar / desabilitar este módulo é muito fácil.

Se você estiver usando FastCGI como manipulador de PHP, poderá definir várias versões de PHP para serem usadas por contas diferentes em seu servidor.

FastCGI ie mod_fastcgi é uma extensão de mod_fcgid , onde como mod_fcgid é uma alternativa de alto desempenho de CGI ie mod_cgi. Ele inicia um número suficiente de instâncias de CGI para lidar com solicitações simultâneas da web. Ele também usa suexec para oferecer suporte a diferentes usuários com suas próprias instâncias de PHP e melhora a segurança da web.

A execução de arquivos ruby ​​no Apache precisa que o mod_ruby esteja ativado. O Apache também pode lidar com arquivos ruby ​​por meio do FastCGI. É possível usar várias versões do ruby ​​com a ajuda de mod_fcgid, ou seja, FastCGI.

Você também pode instalar o passageiro apache e configurar o Apache para usá-lo para servir páginas ruby.

(Phusion Passenger, também conhecido como " passageiro ", é um módulo de servidor da web gratuito projetado para se integrar com Apache e Nginx)

Passos para instalar mod_ruby em seu servidor -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-includes = / usr / include / apr-1façofaça a instalação

Como executar Ruby com Apache

Temos que adicionar o módulo mod_ruby à configuração do Apache, ou seja, /etc/httpd/conf.d/ruby.conf e adicionar a seguinte linha.

LoadModule ruby_module modules / mod_ruby.so

Se você quiser habilitar ou desabilitar esses módulos, você deve editar o arquivo de configuração do apache e comentar ou descomentar esses módulos, se o servidor web já estiver compilado com esses módulos.

Como proteger o servidor da Web Apache

Proteger o seu servidor web é muito importante, significa permitir que outros vejam apenas as informações pretendidas e proteger seus dados e restringir o acesso.

Essas são coisas comuns que aumentam a segurança dos servidores da web Apache.

1) Ocultar a versão do Apache e as informações do sistema operacional:

O Apache exibe sua versão e o nome do sistema operacional com erros, conforme mostrado na captura de tela abaixo.

Um hacker pode usar essas informações para lançar um ataque usando as vulnerabilidades publicamente disponíveis na versão específica do servidor ou sistema operacional.

A fim de evitar que o servidor da web Apache exiba essas informações, temos que modificar

Opção de “assinatura do servidor” disponível no arquivo de configuração do apache. Por padrão, ele está “ligado”, precisamos defini-lo como “desligado”.

vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod

Também definimos “ServerTokens Prod” que diz ao servidor web para retornar apenas o apache e suprimir a versão principal e secundária do sistema operacional

Depois de modificar o arquivo de configuração, você deve reiniciar / recarregar seu servidor web apache para torná-lo efetivo.

reinicialização de httpd de serviço

2) Desativar lista de diretórios

Se o diretório raiz do documento não tiver um arquivo de índice, por padrão, o servidor da web apache mostrará todo o conteúdo do diretório raiz do documento.

Este recurso pode ser desligado para um diretório específico através da “diretiva de opções” disponível no arquivo de configuração do Apache.

Opções - Índices

3) Desativando módulos desnecessários

É uma boa prática desabilitar todos os módulos desnecessários que não estão em uso. Você pode ver a lista de módulos habilitados disponíveis em seu arquivo de configuração do apache -

[root @ amsterdam ~] #httpd -Mperl_module (compartilhado)php5_module (compartilhado)proxy_ajp_module (compartilhado)python_module (compartilhado)ssl_module (compartilhado)

Muitos dos módulos listados podem ser desabilitados como likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, visto que dificilmente são usados ​​por quaisquer servidores web de produção.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

Depois de comentar o módulo, salve o arquivo.

Reinicie os serviços apache com o seguinte comando.

/etc/init.d/httpd restart

4) Restringir o acesso a arquivos fora do diretório raiz da web

Se você quiser ter certeza de que os arquivos que estão fora do diretório raiz da web não estão acessíveis, você deve ter certeza de que o diretório está restrito com “Permitir” e “Negar opção” em seu arquivo de configuração do servidor web.

Opções NenhumAllowOverride NenhumNegar pedido, permitirNegar de todos

Depois de restringir o acesso fora do diretório raiz da web, você não conseguirá acessar nenhum arquivo localizado em qualquer outra pasta em seu servidor web, você receberá o código de retorno 404.

5) Usando mod_evasive para refutar o ataque DoS

Se você gostaria de proteger seu servidor web de Dos (ou seja, Denial of Service), você deve habilitar o módulo mod_evasive. É um módulo de terceiros que detecta o ataque Dos e evita que o ataque cause tantos danos quanto faria se não fosse executado. Ele pode ser baixado aqui.

Baixe o arquivo acima

6) Usando mod_security para melhorar a segurança do apache

Este módulo funciona como um firewall para o Apache e permite monitorar o tráfego em tempo real. Também evita que o servidor da web contra ataques de força bruta. O módulo mod_security pode ser instalado com o gerenciador de pacotes padrão de sua distribuição.

7) Limitar o tamanho do pedido

O Apache não tem nenhuma restrição quanto ao tamanho total da solicitação http que poderia levar a um ataque DoS. Você pode limitar o tamanho da solicitação de uma diretiva do Apache “LimitRequestBody” com a tag de diretório. O valor pode ser definido de 0 a 2 GB (ou seja, 2147483647 bytes) de acordo com sua necessidade.

LimitRequestBody 512000

Formato de registro Apache

Os logs do Apache fornecem informações detalhadas que ajudam a detectar problemas comuns com o servidor.

Para criar logs de acesso, mod_log_configmodule deve ser habilitado.

Três diretivas disponíveis no arquivo de configuração do apache, ou seja

  • TransferLog: Criando um arquivo de log.
  • LogFormat: especificando um formato personalizado.
  • CustomLog: Criação e formatação de um arquivo de log.

A diretiva TransferLog está disponível no arquivo de configuração do apache e gira os arquivos de log do host virtual de acordo com os parâmetros definidos.

ServerAdmin O endereço de e-mail address está sendo protegido de spambots. Você deve habilitar o JavaScript para visualizá-lo.DocumentRoot / usr / www / example / httpd / htdocs /Nome do servidor www.example.comServerAlias ​​example.com www.exampleErrorLog / usr / www / example / httpd / logs / error_logTransferLog / usr / www / example / httpd / logs / accesslogCustomLog / usr / www / example / httpd / logs / accesslog combinado

Dois tipos de formato de registro do Apache

  • Formato de registro comum
  • Formato de registro combinado.

Você pode habilitá-los editando o arquivo de configuração do apache, ou seja, apache2.conf (Debian / ubuntu) ou arquivo httpd.conf (sistemas baseados em rpm)

Formato de registro comum

LogFormat "% h% l% u% t \"% r \ "%> s% b" comumCustomLog logs / access_log common

Log comum gerado pelo Apache

[Quarta, 11 de outubro, 14:32:52 de 2000] [erro] [cliente 127.0.0.1] cliente negado pela configuração do servidor: / export / home / live / ap / htdocs / test

Formato de registro combinado

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" combinadoCustomLog log / access_log combinados

Aqui,

  • % h é o host remoto
  • % l é a identidade do usuário determinada por identd
  • % u é o nome de usuário determinado pela autenticação HTTP
  • % t é a hora em que o servidor terminou de processar a solicitação.
  • % r é a linha de solicitação do cliente. ("GET / HTTP / 1.0")
  • %> s é o código de status enviado do servidor para o cliente (500, 404 etc.)
  • % b é o tamanho da resposta ao cliente (em bytes)
  • Referer é a página vinculada a este URL.
  • O agente do usuário é a string de identificação do navegador.

Log combinado gerado pelo Apache:

199.187.122.91 - - [06 / mar / 2014: 04: 22: 58 +0100] "GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (compatível; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) "

O log personalizado cria um arquivo de log separado para cada host virtual em seu servidor. Ele precisa ser especificado na seção de host virtual do arquivo de configuração.

Você pode ver a configuração do host virtual mencionada abaixo, o log gerado será personalizado para esse host virtual e o formato será combinado.

Configure o seu primeiro servidor de produção da Web

1. Para ter um servidor web de produção em execução, você precisa de um dedicado (físico / virtual ou instância de nuvem) executando Linux / Unix, Windows, MacOS etc.

2. O servidor da Web deve ter uma conexão de rede direta e um endereço IP estático configurado nele.

3. Ele precisa ter todos os módulos necessários para a execução de páginas da web. Se um servidor da web processa páginas PHP, ele precisa ter o módulo PHP ativado.

  1. Ele também precisa ter um bom aplicativo antivírus configurado e em execução para proteger o servidor da Web contra ataques de malware ou vírus. Você também precisa de um mecanismo para atualizar o aplicativo antivírus / antimalware configurado regularmente, sem qualquer intervenção manual, a fim de obter o máximo benefício deles.
  2. Se você tiver centenas de domínios a serem hospedados em seu servidor web, deverá implementar limitações na cota do sistema de arquivos para cada domínio, número de bancos de dados que cada domínio pode criar, número de contas de e-mail por domínio etc.
  3. Se o seu servidor web foi configurado para serviços de hospedagem compartilhada, os usuários em seu servidor web precisam ser restringidos . Um usuário de hospedagem compartilhada deve ter o mínimo de privilégios de usuário para que ele não danifique arquivos importantes e quebre o servidor inteiro. O Apache não fornece nenhuma funcionalidade e precisa de diferentes aplicativos de terceiros e customização do sistema operacional para conseguir isso.
  4. Se você estiver adicionando um novo domínio em seu servidor web, será necessário editar centenas de arquivos de configuração para ativar todos os recursos para o domínio adicionado.
  5. Se um dos domínios hospedados exigir uma configuração de PHP diferente do resto dos domínios, implementar isso no servidor da web Apache central é muito complexo e precisa de personalização de seu servidor da web em grande medida.
  6. Um servidor da web de produção precisa de um firewall para bloquear o tráfego indesejado que pode causar alta carga em seu servidor. Implementar regras IPTABLE com linha de comando é muito complexo. Ele precisa de experiência em ambiente Linux / Unix para escrever regras de firewall eficazes para bloquear tráfego indesejado. IPTABLE é baseado no módulo netfilter; é um firewall de nível de sistema operacional que permite a um administrador criar regras para o tráfego de entrada / saída no servidor.
  7. Um servidor web de produção requer vários aplicativos diferentes, como e- mail , FTP para upload de arquivos, Sistema de nomes de domínio para domínios estacionados. Gerenciar todos esses aplicativos em um sistema Linux / Unix central requer conhecimento nas respectivas tecnologias.

Assim, pode-se dizer que gerenciar um servidor web para múltiplos domínios é uma tarefa muito complexa e requer a edição de centenas de arquivos de configuração, customizando cada aplicação para atender o resultado desejado. Solucionar qualquer falha de configuração será muito difícil para iniciantes.

A solução usando Cpanel ou software semelhante

O Cpanel fornece uma maneira gráfica de gerenciar seu servidor web . Destina-se a fornecer serviços de hospedagem em massa fáceis de usar e configurar. cPanel reduziu as barreiras técnicas para a entrada no gerenciamento de hospedagem e servidor web. Ele torna a tarefa complexa mais fácil, fornece muitas interfaces da web úteis e fáceis de usar que realizam tarefas comuns de administração do sistema necessárias para operar um servidor da web.

cPanel compila sua própria versão de software.

Se você tiver que recompilar seu servidor web, ou seja, apache na plataforma Linux normal, você deve selecionar / pesquisar manualmente o módulo que é necessário. cPanel fornece a funcionalidade Easyapache que é um método de compilação de servidor web baseado em script.

Ele não apenas fornece serviços da web, mas também Mail, DNS, FTP e muitos outros serviços necessários para o seu aplicativo da web.

Uma tarefa que precisa de experiência no núcleo de hospedagem baseada em Linux / Unix, como instalação de SSLs, recompilação do Apache com diferentes módulos PHP, atualização da Web Security, configuração de regras IPTABLE eficazes, adição de usuários ftp, criação de contas de correio para cada domínio, varredura de sua raiz de documentos com antivírus e criar bancos de dados é fácil de completar com cPanel.

Ele fornece muitos scripts que corrigem, instalam e solucionam problemas de tarefas administrativas comuns.

Ele fornece uma funcionalidade de backup e restauração, eliminando a necessidade de copiar manualmente os arquivos para o armazenamento de backup. Se você estiver fazendo backup do seu domínio, cPanel criará um arquivo tar que conterá a pasta raiz do documento, contas de e-mail e e-mails, contas ftp, bancos de dados, registros DNS e outros aplicativos.

Ele também fornece uma documentação robusta e tem uma grande comunidade de usuários onde você pode discutir e obter soluções para seus problemas.

Assim, pode-se dizer que cPanel é a melhor aplicação para gerenciar seu servidor web com as funcionalidades requeridas. Ele fornece a você uma interface fácil de usar para gerenciar seu domínio e um mecanismo para evitar a complexidade de gerenciar o servidor Web principal.

Existem muitos produtos concorrentes do cPanel como Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel etc.

Artigos interessantes...