Tutoriais Apache para iniciantes

O que é Apache?

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

É um aplicativo de servidor web modular baseado em processo que cria um novo thread a cada execução simultânea.neoconexão conosco. 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 no servidor até mecanismo de autenticação. A hospedagem virtual é um recurso que permite que um único servidor Web Apache atenda vários sites diferentes.

apache

Como instalar o apache

Existem inúmeras maneiras de instalar o pacote ou aplicativo. Estão listados abaixo -

  1. Uma das características desta abertura aplicativo da web de origem é 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 dos arquivos e a configuração do Apache levando em consideração outros aplicativos instalados e o sistema operacional base.
  2. Além de instalá-lo a partir de um instalador baseado em fornecedor, há sempre a opção de compilá-lo e instalá-lo a partir do código-fonte. Instalar o Apache a partir do arquivo fonte é uma plataforma independente e funciona para todos os sistemas operacionais.

O servidor web apache é uma aplicação modular onde o administrador pode escolher a funcionalidade necessária e instalar diferentes módulos conforme sua necessidade.

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

Instale Apache:Plataforma Linux

Em sistemas baseados em Red Hat ou rpm

Se você estiver usando uma distribuição Linux baseada em rpm (RedHat Package Manager é um utilitário para instalação de aplicativos em sistemas 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 seguintewing 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 seguintewing 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 é necessário utilizar qualquer um dos seguinteswing comando no Fedora, CentOs ou Red Hat.

[root@amsterdam ~]# /usr/sbin/apachectl start

[root@amsterdam ~]# service httpd start

[root@amsterdam ~]# /etc/init.d/httpd start

Instale o Apache da fonte

A instalação do Apache a partir da fonte requer que o pacote –devel seja instalado em seu servidor. .Você pode encontrar a versão mais recente disponível do Apache, você pode baixá-la SUA PARTICIPAÇÃO FAZ A DIFERENÇA . Depois de baixar o arquivo fonte, 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 no 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 do servidor web com seu navegador favorito. Se o firewall estiver habilitado em seu servidor, você deverá abrir uma exceção para a porta 80 no firewall do seu sistema operacional. Você pode usar o seguintewing comando para abrir a porta 80.

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

serviço iptables salva

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

Instale o Apache da fonte

O que é host virtual?

Um servidor web Apache pode hospedar vários sites no MESMO servidor. Você não precisa de uma máquina de servidor e software Apache separados para cada site. Isto pode ser alcançado usando o conceito de Host Virtual or VHost.

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

Host Virtual

Tipos de host virtual Apache

  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.

Host virtual baseado em nome

Para configurar a hospedagem virtual baseada em nome, você deve definir o endereço IP no qual receberá as solicitações 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 *:80

<VirtualHost 192.168.0.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com      

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.0.108:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

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

[root@amsterdam ~]#httpd –t
Syntax OK

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

[root@115 conf.d]# httpd -t

Syntax error on line 978 of /etc/httpd/conf/httpd.conf:

Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

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ê poderá criar 10 hosts virtuais baseados em IP.

Host virtual baseado em IP

No diagrama acima, dois sites example1.com e example2.com receberam IPs diferentes e usam hospedagem virtual baseada em IP.

Listen 192.168.0.100:80

<VirtualHost 192.168.10.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com      

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.10.109:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

O que o Apache precisa para executar o arquivo PHP?

Executando arquivos PHP nas necessidades do Apache 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:

O que o Apache precisa para executar o arquivo PHP

Manipuladores PHP no Apache

  • mod_php
  • CGI
  • CGI rápido
  • suPHP

mod_phpé o manipulador PHP mais antigo, faz do 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 Linux, portanto ativar/desativar este módulo é muito fácil.

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

FastCGI, ou seja mod_fastcgi é uma extensão de mod_fcgid, enquanto mod_fcgid é uma alternativa de alto desempenho ao CGI, ou seja, 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 habilitado. O Apache também pode lidar com arquivos Ruby através do FastCGI. É possível usar várias versões do Ruby com a ajuda do mod_fcgid, ou seja, FastCGI.

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

(Passageiro Phusion também conhecido como “passageiro”é um módulo de servidor web gratuito projetado para integração com Apache e Nginx)

Passos para instalar o mod_ruby em seu servidor –

cd /tmp

wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz

tar zxvf mod_ruby-1.2.6.tar.gz

cd mod_ruby-1.2.6/                    

./configure.rb --with-apr-includes=/usr/include/apr-1

make

make install

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 o seguintewing linha.

LoadModule ruby_module módulos/mod_ruby.so

Se você deseja ativar ou desativar esses módulos, você deve editar o arquivo de configuração do apache e comentar ou descomentar esses módulos, caso o servidor web já esteja compilado com esses módulos.

Execute Ruby com Apache

Como proteger o servidor Web Apache

Proteger o seu servidor web é muito importante, significa permitirwing outros vejam apenas as informações pretendidas e protejam seus dados e restrinjam o acesso.

Estas são coisas comuns que melhoram a segurança dos seus servidores web Apache.

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

O Apache exibe sua versão e o nome do operasistema com erros, conforme mostrado na imagem abaixo.

Ocultando a versão do Apache e informações do sistema operacional

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

Para evitar que o servidor web Apache exiba essas informações, temos que modificar

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

vim /etc/httpd/conf/httpd.conf
ServerSignature Off

ServerTokens Prod

Também definimos “ServerTokens Prod” que informa 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 eficaz.

service httpd restart

Ocultando a versão do Apache e informações do sistema operacional

2) Desativar listagem de diretório

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

Desativar listagem de diretório

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

<Directory /var/www/html>

    Options -Indexes

</Directory>

Desativar listagem de diretório

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 –M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)

Muitos dos módulos listados podem ser desabilitados como mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, pois dificilmente são usados ​​por qualquer servidor 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 following comando.

/etc/init.d/httpd restart

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

Se você deseja ter certeza de que os arquivos que estão fora do diretório raiz da web não estão acessíveis, você deve certificar-se de que o diretório está restrito com “Permitir” e “Opção Negar” no arquivo de configuração do servidor web.

<Directory/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

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

Restringindo o acesso a arquivos fora do diretório raiz da web

5) Usando mod_evasive para refutar o ataque DoS

Se você deseja proteger seu servidor web contra Dos (ou seja, negação de serviço), você deve habilitar o módulo mod_evasive. É um módulo de terceiros que detecta ataques Dos e evita que o ataque cause tantos danos quanto causaria se fosse deixado seguir seu curso. Ele pode ser baixado aqui.

Baixe o arquivo acima

6) Usando mod_security para aumentar a segurança do Apache

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

Usando mod_security para aprimorar a segurança do Apache

7) Limitando o tamanho da solicitação

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

<Directory "/var/www/html/uploads">

   LimitRequestBody 512000

</Directory>

Formato de registro Apache

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

Para criar logs de acesso, mod_log_configmodule deve estar 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: Criando e formatando 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.

<VirtualHost www.example.com>

  ServerAdmin webmaster@example.com

  DocumentRoot /usr/www/example/httpd/htdocs/

  ServerName www.example.com

  ServerAlias example.com www.example

  ErrorLog /usr/www/example/httpd/logs/error_log

  TransferLog/usr/www/example/httpd/logs/accesslog

  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

Dois tipos de formato de log Apache

  • Formato de registro comum
  • Formato de log 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" common

CustomLog logs/access_log common

Log comum gerado pelo Apache

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

Formato de registro combinado

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined

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 é o horário em que o servidor terminou de processar a solicitação.
  • %r é a linha de solicitação do cliente. (“OBTER/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.
  • User-agent é 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 (compatible; 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.

Log combinado gerado pelo Apache

Configure seu primeiro servidor Web de produção

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

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

3. Precisa ter todos os módulos necessário para executar páginas da web. Se um servidor web processa páginas PHP, ele precisa ter o módulo PHP habilitado.

Configurar servidor Web de produção

  1. Também precisa ter um bom antivirus aplicativo configurado e em execução para proteger o servidor 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ê tem centenas de domínios para serem hospedados em seu servidor web, você deve 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 email contas 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 restritos. Um usuário de hospedagem compartilhada deve ter menos privilégios de usuário para não danificar arquivos importantes e quebrar todo o servidor. O Apache não fornece essa funcionalidade e precisa de diferentes aplicativos de terceiros e personalização do sistema operacional para conseguir isso.
  4. Se você estiver adicionando um novo domínio em seu servidor web, é necessário editar centenas de arquivos de configuração para habilitar todos os recursos do domínio adicionado.
  5. Se um dos domínios hospedados exigir configuração PHP diferente do que o resto dos domínios, implementar isso no servidor web Apache principal é muito comumplex e precisa em grande parte da personalização do seu servidor web.
  6. Um servidor web de produção precisa de um firewall para bloquear tráfego indesejado que pode causar alta carga em seu servidor. Implementando IPTABLE regras com linha de comando são muito comunsplex. É necessário conhecimento do ambiente central Linux/Unix para escrever regras de firewall eficazes para bloquear tráfego indesejado. IPTABLE é baseado no módulo netfilter; é um firewall no nível do sistema operacional que permite ao 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, Domain Name System para domínios estacionados. Gerenciar todos esses aplicativos em um sistema Linux/Unix central requer conhecimento nas respectivas tecnologias.

Então, pode-se dizer que gerenciar um servidor web para múltiplos domínios é muito comum.plex tarefa e requer a edição de centenas de arquivos de configuração, personalizando cada aplicativo para atingir o resultado desejado. Solucionar qualquer configuração incorreta será muito difícil para iniciantes.

A solução usando Cpanel ou software similar

Cpanel fornece uma maneira gráfica de gerenciar seu servidor web. O objetivo é fornecer serviços de hospedagem em massa fáceis de usar e configurar. O cPanel reduziu as barreiras técnicas de entrada na hospedagem e gerenciamento de servidores web. Isso faz complex tarefa mais fácil, ele fornece muitas interfaces da web úteis e fáceis de usar que executam tarefas comuns de administração do sistema necessárias para operate um servidor web.

A solução usando Cpanel ou software semelhante

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ê terá que selecionar/pesquisar manualmente o módulo necessário. cPanel fornece funcionalidade Easyapache que é um método de compilação de servidor web baseado em script.

A solução usando Cpanel ou software semelhante

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

Uma tarefa que requer experiência em hospedagem baseada em Linux/Unix, como instalar SSLs, recompilar Apache com diferentes módulos PHP, atualizar Web Security, configurar regras IPTABLE eficazes, adicionar usuários FTP, criar mail contas para cada domínio, verificar a raiz do documento com antivírus e criar bancos de dados são fáceis de concluir com o cPanel.

Ele fornece muitos scripts que corrigem, instalam e solucionam problemas administrativos comuns.

Ele fornece 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, o cPanel criará um arquivo tar que conterá a pasta raiz do documento, email contas e mails, contas FTP, bancos de dados, registros DNS e outros aplicativos.

Ele também fornece uma documentação robusta e possui um grande comunicador.unity de usuários onde você pode discutir e obter solução para seus problemas.

Então, pode-se dizer que cPanel é o melhor aplicativo para gerenciar seu servidor web com os recursos necessários. Ele fornece uma interface fácil de usar para gerenciar seu domínio e um mecanismo para evitar comunicações.plexcapacidade de gerenciar o servidor Web principal.

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