Tutoriais Apache para iniciantes
O Que É Apache?
Apache é uma peça notável de software de Aplicação. É a aplicação de servidor Web mais utilizada no mundo, com mais de 50% de participação no mercado de servidores Web comerciais. Apache é a aplicação de servidor Web mais utilizada em sistemas operacionais Unix-like, mas pode ser usada em quase todas as plataformas como Windows, OS X, OS/2, etc. A palavra, Apache, foi retirada do nome da tribo nativa americana ‘Apache’, famosa por suas habilidades em guerra e elaboração de estratégias.
é uma aplicação modular, baseada em processos web server que cria um novo thread com cada conexão simultânea. Ele suporta uma série de recursos; muitos deles são compilados como módulos separados e estendem sua funcionalidade principal, e podem fornecer tudo, desde o Suporte de linguagem de programação do lado do servidor até o mecanismo de autenticação. Hospedagem Virtual é uma característica que permite que um único servidor web Apache sirva uma série de sites diferentes.
Como instalar o Apache
Existem várias maneiras de instalar o pacote ou aplicação. Há alistados abaixo –
- uma das características desta aplicação web de código aberto é que qualquer um pode fazer instalador de acordo com o seu próprio ambiente. Isso permitiu vários fornecedores como Debian, Red Hat, FreeBSD, Suse etc. para personalizar a localização do arquivo e configuração do apache levando em conta outras aplicações instaladas e o sistema operacional base.
- Além de instalá-lo a partir de um instalador baseado no fornecedor, há sempre a opção de construí-lo e instalá-lo a partir do código fonte. A instalação do Apache a partir do ficheiro de código é uma plataforma independente & funciona para todos OS So.
o servidor web apache é uma aplicação modular onde o administrador pode escolher a funcionalidade necessária e instalar diferentes módulos de acordo com o seu requisito.
Todos os módulos podem ser compilados como Objetos Compartilhados dinâmicos (DSO é um arquivo de objetos que pode ser compartilhado por vários aplicativos enquanto eles estão executando) que existe separadamente do arquivo apache principal. A abordagem DSO é altamente recomendada, tornando a tarefa de Adicionar/Remover/atualizar módulos da configuração dos servidores muito simples.
Install Apache:Linux Platform
On Red Hat or rpm based systems
If you are using an rpm (RedHat Package Manager is a utility for installing application on Linux systems) based Linux distribution i.e. Red Hat, Fedora, CentOs, Suse, você pode instalar este aplicativo pelo Gerenciador de pacotes específico do Fornecedor ou diretamente construir o arquivo rpm a partir do pacote de código disponível.
pode instalar o Apache através do Gestor de pacotes predefinido disponível em todas as distribuições baseadas no Red Hat, como CentOs, Red Hat e Fedora.
# yum install httpd
o tarball de código apache pode ser convertido em um arquivo rpm usando o seguinte comando.
# rpmbuild -tb httpd-2.4.x.tar.bz2
é obrigatório ter-devel pacote instalado no seu servidor para a criação .ficheiro rpm do Código.
Depois de converter o ficheiro de código para um instalador rpm, poderá usar o seguinte comando para instalar o Apache.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Após a instalação, o servidor não iniciar automaticamente, a fim de iniciar o serviço, você tem que usar qualquer um dos seguintes comando no Fedora, CentOs ou Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
instalar o Apache a partir do Código
Instalar o apache a partir do Código necessita que o pacote –devel seja instalado no seu servidor. .Você pode encontrar a última versão disponível do Apache, você pode baixá-la aqui. Depois de transferir o ficheiro de código, mova-o para a pasta /usr/local/src.
cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26
para ver todas as opções de configuração disponíveis para o Apache, você pode usar .opção / configure-help. A opção de configuração mais comum é-prefix={install directory name}.
o exemplo acima mostra a compilação do Apache dentro da pasta /usr/local/apache com a capacidade DSO. A opção-enable-so, pode carregar os módulos necessários para apache em tempo de execução através do mecanismo DSO ao invés de exigir uma recompilação.
Uma vez terminada a instalação, poderá navegar na página predefinida dos servidores web com o seu navegador favorito. Se a firewall estiver activa no seu servidor, terá de abrir uma excepção para a porta 80 na sua firewall do so. Você pode usar o seguinte comando para abrir a porta 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
serviço iptables save
pode ver o ecrã de Boas-Vindas por omissão do Apache2 navegando pelo seu endereço IP do servidor.
o que é a máquina Virtual?
um servidor web Apache pode hospedar vários sites no mesmo servidor. Você não precisa de máquinas de servidor separadas e software apache para cada site. Isto pode ser conseguido usando o conceito de Host Virtual ou VHost.
qualquer domínio que queira hospedar no seu servidor web terá um item separado no ficheiro de configuração apache.
tipos de Virtualhost Apache
- host virtual baseado em nome
- host virtual baseado em Endereço ou IP e.
host virtual baseado no nome
host virtual baseado no nome Host é usado para hospedar vários sites virtuais em um único endereço IP.
a fim de configurar hospedagem virtual baseada em nome, você tem que definir o endereço IP no qual você vai receber os pedidos Apache para todos os sites desejados. Você pode fazer isso pela Diretriz NameVirutalHost dentro da configuração apache, ou seja, httpd.conf / apache2.ficheiro conf.
Apache virtual host Example:
NameVirtualHost *:80<VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
pode adicionar quantas máquinas virtuais, de acordo com a sua exigência. Você pode verificar seus arquivos de configuração da web com:
#httpd –tSyntax OK
Se o arquivo de configuração tem algumas sintaxe errada, ele irá lançar um erro
# httpd -tSyntax 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
IP-based Virtual host
No programa, com base no IP virtual hosting, você precisa de mais do que um endereço IP configurado no seu servidor. Assim, o número de vhost apache dependerá do número de endereços IP configurados no seu servidor. Se o seu servidor tem 10 endereços IP, você pode criar 10 hosts virtuais baseadas em IP.
No diagrama acima de dois sites example1.com e example2.com foram atribuídos diferentes IPs e estão usando baseada em IP virtual hosting.
Listen 192.168.0.100:80<VirtualHost 192.168.10.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.10.109:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
o que o Apache precisa para executar o ficheiro Php?
correr ficheiros Php no Apache necessita de mod_ PHP activo no seu servidor. Permite que o Apache interprete .Ficheiros Php. Ele tem manipuladores de Php que interpretam o código Php no apache e enviam HTML para o seu servidor web.
Se o mod_ PHP estiver activo no seu servidor, terá um ficheiro chamado php.conf in / etc/httpd / conf.d / directory. Você também pode verificar com:
httpd -M | grep "php5_module"
A saída será semelhante a:
Php manipuladores no Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis mais antigas do PHP manipulador, isso faz com que o PHP parte do apache e não chamar qualquer externos PHP processo. Este módulo é instalado por omissão em todos os repositórios de distribuição Linux, por isso activar/desactivar este módulo é muito fácil.
Se estiver a usar o FastCGI como seu manipulador de PHP, poderá definir várias versões do PHP para serem usadas por diferentes contas no seu servidor.
FastCGI ou seja, mod_fastcgi é uma extensão do mod_fcgid, onde como mod_fcgid é uma alternativa de alto desempenho do CGI ou seja, mod_cgi . Ele começa o número suficiente de instâncias de CGI para lidar com solicitações simultâneas da web. Ele também usa o suexec para apoiar diferentes usuários com suas próprias instâncias de PHP e melhora a segurança da web.
a execução de ficheiros ruby no Apache necessita que o mod_ Ruby esteja activo. 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 passenger e configurar o Apache para usá-lo para servir páginas de ruby.
(Phusion de Passageiros, também conhecido como “passageiro” é um módulo do servidor web que é projetado para se integrar com o Apache e o Nginx )
os Passos para instalar mod_ruby no 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-1makemake install
Como executar o Ruby com o Apache
temos que adicionar o mod_ruby módulo de configuração do Apache é /etc/httpd/conf.d / ruby.conf e adicione a seguinte linha.
LoadModule ruby_ Module modules / mod_ruby.então
Se quiser activar ou desactivar estes módulos, terá de editar o ficheiro de configuração do apache e comentar ou descomentar estes módulos, se o servidor web já estiver compilado com estes módulos.
Como Proteger o Servidor Web Apache
Proteger o seu servidor web é muito importante, significa permitir que outros para ver apenas as informações pretendidas & proteção de seus dados e restringir o acesso.
estas são coisas comuns que melhoram a segurança dos seus servidores Web Apache.
1) esconder a versão Apache e a informação so:
Apache exibe a sua versão e o nome do sistema operacional em erros, como mostrado abaixo.
Um hacker pode usar essa informação para lançar um ataque usando disponíveis para o público vulnerabilidades na versão específica do servidor ou sistema operacional.
para evitar que o servidor web do Apache exponha esta informação, temos de modificar a opção
“assinatura do servidor” disponível no ficheiro de configuração do apache. Por padrão, é “on”, nós precisamos ativá-lo”off”.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
também definimos” ServerTokens Prod ” que diz ao servidor web para devolver apenas o apache e suprimir a versão principal e menor do so
Após modificar o ficheiro de configuração, você tem que reiniciar/recarregar o seu servidor web apache para torná-lo eficaz.
service httpd restart
2) Desativar Listagem de Diretório
Se o seu diretório raiz de documentos não tem um arquivo de índice, por padrão, o servidor web apache irá mostrar todo o conteúdo do diretório raiz de documentos.
Este recurso pode ser desligado para um diretório específico, através da “directiva de opções”, disponível no arquivo de configuração do Apache.
<Directory /var/www/html> Options -Indexes</Directory>
3) Desabilitar módulos desnecessários
é uma boa prática para desativar todos os módulos que não estão em uso. Você pode ver a lista de habilitados módulo disponível no arquivo de configuração do apache –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
Muitos dos listados os módulos podem ser desativados likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, como eles são pouco utilizados por qualquer servidores web de produção.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
Uma vez que você comentou o módulo, salve o arquivo.
reiniciar os Serviços apache com o seguinte comando.
/etc/init.d/httpd restart
4) restringir o acesso a ficheiros fora do directório raiz web
Se quiser certificar-se de que os ficheiros fora do directório raiz web não estão acessíveis, tem de se certificar de que o directório está restrito com “Permitir” e “recusar” no seu ficheiro de configuração do servidor web.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
Uma vez que você restringir o acesso fora da raiz directoy web, você não será capaz de acessar qualquer arquivo localizado em qualquer outra pasta em seu servidor web, você vai obter 404 código de retorno.
5) Usando mod_evasive para refutar o ataque DoS
Se você gosta de proteger o seu servidor web a partir do ms-Dos (por exemplo, ataques de Negação de Serviço) você deve habilitar o módulo mod_evasive. É um módulo de terceiros que detecta o dos attack e impede o ataque de fazer tanto dano como faria se à esquerda para executar o seu curso. Pode ser baixado aqui.
baixe o ficheiro acima
6) Usando mod_ segurança para melhorar a segurança do apache
Este módulo funciona como uma firewall para o Apache e permite-lhe monitorizar o tráfego em tempo real. Ele também impede o servidor web de ataques de Força bruta. O módulo mod_ segurança pode ser instalado com o Gestor de pacotes predefinido da sua distribuição.
7) Limitar o tamanho do pedido
o Apache não tem qualquer restrição sobre o tamanho total da solicitação http, que pode levar a um ataque DoS. Você pode limitar o tamanho do pedido de uma diretiva 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 a sua exigência.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Log Format
Apache logs provide detailed information that help to detect common issues with server.
para criar registos de acesso, o mod_ log_ configmodule deverá estar activo.
três directivas disponíveis no ficheiro de configuração apache, ou seja,
- TransferLog: criação de um ficheiro de Registo.
- LogFormat: especificando um formato personalizado.
- CustomLog: criação e formatação de um ficheiro de Registo.
TransferLog directive está disponível no ficheiro de configuração do apache e roda os ficheiros de registo da máquina virtual de acordo com os parâmetros definidos.
<VirtualHost www.example.com> ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it. 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 Registo Apache
- formato de registo comum
- formato de Registo combinado.
pode activá-los editando o ficheiro de configuração apache, ou seja, o apache2.conf (Debian / ubuntu) ou httpd.conf (rpm based systems) arquivo
Common Log Format
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
Common Log gerado pelo Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
Combinado Formato de Registo
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
Aqui
- %h é o host remoto
- %l é a identidade do usuário determinado pelo identd
- %u o nome de usuário determinado pela autenticação HTTP
- %t é o tempo em que o servidor terminar de processar o pedido.
- %r é a linha de pedido do cliente. (“GET / HTTP / 1.0”)
- %>s é o código de Estado enviado do servidor para o cliente (500, 404 etc.)
- %b é o tamanho da resposta ao cliente (em bytes)
- Referer é a página que está ligada a este URL.
- User-agent é o texto de identificação do navegador.
Registo combinado gerado pelo Apache:
199.187.122.91 - - "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)"
log personalizado cria um ficheiro de registo separado para cada máquina Virtual no seu servidor. Ele precisa ser especificado na seção host virtual do arquivo de configuração.
pode ver abaixo a configuração virtual da máquina, o registo gerado será personalizado para essa máquina virtual e o formato será combinado.
Configure o seu primeiro servidor Web de produção
1. Para ter um servidor web de produção em execução, você precisa de um nó dedicado (física/Virtual ou instância de nuvem) executando Linux/Unix, Windows, MacOS, etc. 2. O servidor Web deve ter uma conexão direta de rede e um endereço staticIP configurado nele. 3. Ele precisa ter todos os módulos necessários para executar páginas web. Se um servidor web processa páginas PHP, ele precisa ter o módulo PHP ativado.
- , também É preciso ter um bom Antivírus aplicativo configurado e em execução para garantir que o Servidor Web de Malware ou ataques de Vírus. Você também precisa de mecanismo para atualizar o aplicativo Antivirus/anti malware configurado em base regular, sem qualquer intervenção manual, a fim de obter o máximo benefício deles.
- Se você tem centenas de domínios para ser hospedado em seu servidor web, você deve ter que implementar limitações na quota do sistema de arquivos para cada domínio, número de bases de dados que cada domínio pode criar, número de contas de E-mail por domínio, etc. se o seu servidor web foi configurado para serviços de hospedagem compartilhados, os usuários do seu servidor web precisa ser restrito. Um usuário de hospedagem compartilhada deve ter o menor privilégio do Usuário para que ele não danifique arquivos importantes & quebre todo o servidor. O Apache não fornece qualquer funcionalidade e precisa de diferentes aplicações de terceiros, personalização do SO para conseguir isso.
- Se você está adicionando um novo domínio no seu servidor web, ele precisa editar centenas de arquivos de configuração para ativar todas as funcionalidades para o domínio adicionado.
- Se um dos domínios hospedados requer diferentes PHP definição do que o resto dos domínios, implementar isso no núcleo do Apache web server é muito complexo e precisa de personalização do seu servidor web em grande medida.
- um servidor web de produção precisa de uma firewall para bloquear o tráfego indesejado que pode causar alta carga no seu servidor. Implementar regras IPTABLE com linha de comando é muito complexo. Ele precisa de experiência no núcleo Linux / Unix para escrever regras de firewall eficazes para bloquear o tráfego indesejado. O IPTABLE é baseado no módulo netfilter; é uma firewall de nível OS que permite a um administrador criar regras para o tráfego de entrada/saída no servidor.
- um servidor web de produção necessita de várias aplicações diferentes, como Email, FTP para envio de ficheiros, sistema de nomes de domínio para domínios estacionados. Gerenciar todas essas aplicações em um sistema Linux/Unix básico requer experiência nas respectivas tecnologias.
assim, pode-se dizer que gerir um servidor web para vários domínios é uma tarefa muito complexa e requer a edição de centenas de ficheiros de configuração, personalizando cada aplicação para cumprir o resultado desejado. Solucionar qualquer configuração de falhas será muito difícil para iniciantes.
a solução usando Cpanel ou software similar
Cpanel fornece uma forma gráfica de gerir o seu servidor web. Ele é destinado a fornecer serviços de hospedagem em massa que é fácil de usar e configurar. a cPanel reduziu as barreiras técnicas para a entrada na hospedagem e gestão de servidores web. Ele torna a tarefa complexa mais fácil, ele fornece muitas interfaces web úteis e fáceis de usar que executam tarefas comuns de administração do sistema necessárias para operar um servidor web.
cPanel compila sua própria versão de software.
Se tiver de recompilar o seu servidor web, i.e. apache na plataforma Linux normal, você tem que selecionar/Procurar manualmente o módulo que é necessário. o cPanel fornece a funcionalidade Easyapache que é um método de compilação de servidores web baseado em script.
não só fornece serviços web, mas também Correio, DNS, FTP e muitos outros serviços que são necessários para a sua aplicação web.
uma tarefa que necessita de experiência no núcleo de hospedagem baseada em Linux/Unix, como a instalação de SSLs, recompilando o Apache com diferentes módulos de PHP, a actualização da segurança da Web, a configuração de regras IPTÁVEIS eficazes, a adição de utilizadores de ftp, a criação de contas de E-mail para cada domínio, a digitalização da raiz do seu documento com antivírus e a criação de bases de dados são fáceis de completar com o cPanel.
ele fornece um monte de scripts que corrigem, instalam e resolvem tarefas administrativas comuns.
ele fornece uma cópia de segurança e restaurar a funcionalidade, eliminando a necessidade de copiar manualmente arquivos para armazenamento de backup. Se estiver a salvaguardar o seu domínio, o cPanel irá criar um ficheiro tar que irá conter a pasta raiz do documento, contas de E-mail e E-mails, contas ftp, bases de dados, Registos DNS e outras aplicações.
ele também fornece uma documentação robusta, e tem uma grande comunidade de usuários onde você poderia discutir e obter a solução de seus problemas.
assim, pode-se dizer que o cPanel é uma melhor aplicação para gerenciar seu servidor web com recursos necessários. Ele fornece-lhe, fácil de usar interface para gerenciar o seu domínio e um mecanismo para evitar a complexidade de gerenciar o servidor Web core. existem muitos produtos concorrentes para a cPanel como Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel, etc.