Apache - Servidor Web
- Instalando o servidor Web (apache).
#apt-get install apache2
- Verificando o principal arquivo de configuração.
#vi /etc/apache2/apache.conf
- Diretório padrão para configurações do apache "ServerRoot".
/etc/apache2
- Diretorio padrao dos arquivos do site (DocumentRoot.
/var/www
- Número de processos que vao iniciar:
StartServers 5
- Número minimo de processos adicionais.
MinSpareServers 5
- Número máximo de processos adicionais.
MaxSpareServers 10
- Número máximo de clientes adicionais.
MaxClients 150
- Número máximo de requisições que um processo pode servir.
MaxRequestPerChild 0
- Localização do arquivo de logs de erros.
/var/log/apache2/access.log custon
- Localização do arquivo de logs que registra os acessos ao site.
/var/1og/apache2/acc~ess.1og custom
- Especifica o formato de gravação dentro do arquivo de log.
LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Refererh\" \"%{User-Agenth\"" comb ned
LogFormat "%h %1 %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
- Utilizando um pouco da obscuridade como seguran~a, e altamente recomendado
desativarmos a diretiva que mostra para 0 mundo informa~6es senslveis sobre
nosso sistema operacional e versiio do Apache:
Iserversignature Off
- Podemos modificar a documentaçao apresentada pelo web server.
# AddDefau1tCharset iso-8859-1
OBS: Por padrao esta diretiva vem comentada e a codifca~ao padrao e UTF-8, descomente
somente se ocorrerem problemas de acentuação.
- Porta que o servidor ficará ouvindo para receber conexções:
# vi /etc/apache2/ports.conf
Listen 80
- Teste para conferir o arquivo de configurações.
# apache2ctl -t
- Inicializar o apache.
# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start
- Verifique 0 processo pai e os processos filhos do Apache que foram inializados.
# ps auxf I grep apache2 I grep -v grep
- conferindo as portas abertas pelo servidor Web.
# netstat -nltp I grep apache
Suporte ao PhP5
# aptitude install php5
# aptitude install libapache2-mod-php5
- Verificando se os módulos do PhP5 estão ativados.
ls -l /etc/apache2/mods-enabled
ou
apache2ctl -M
Se ao tentar abrir o PhP pelo navegador, e o mesmo pedir para fazer o download
do arquivo, não executando o programa, teremos que procurar pelo php5.conf
e alterar a linha php_admin_value engine OFF, para a seguinte linha
php_admin_value engine ON.
Caso o módulo php não esteje funcionando, ative-o usando o seguinte comando.
- # a2enmod php5
Aumentando um pouco a segurança do PHP, edite o arquivo de configurações e
ative as seguintes opções:
#vi /etc/php5/apache2/php.ini
safe_mode = On
safe_mode_gid = On
Desta forma toda vez que 0 PHP acessar algum arquivo do sistema sera feita uma checagem
de DID e GID.
Criando domínios virtuais
Nesta versão do apache os domínios são configurados em dois diretórios:
• /etc/apache2/sites-avaiIable: Nesse diret6rio £learn todos os arquivos de configuração
dos domfnios virtuais, mas, mesmo estando dentro dele, na,o significa que esta.o ativados .
• /etc/apache2/sites-enable: Aqui SaG criados Links Simb6licos apontando 0 dominio
virtual dentro do /etc/apache2/sites-available para que ele possa ser ativado.
# vi /etc/apache2/sites-available/seunome
<VirtualHost www.seunome.com.br>
DocumentRoot /var/www/seunome
ServerName seunome.com.br
ServerAdmin webmaster©seunome.com.br
ErrorLog /var/log/apache2/seunome.com.br-error.log
CustomLog /var/log/apache2/seunome.com.br-access.log common
</VirtualHost>
Agora, temos que criar um link simbolico dentro do /etc/apache2/sites-enable,
apontando para a seu dominio virtual dentro do /etc/apache2/sites-available. Mas
nao precisamos fazer o link na mao, 0 Apache2 tem uma ferramenta que faz isso.
# a2ensite
Crie o diretorio onde ficará hospedado o domínio virtual.
# mkdir /var/www/seunome
# mkdir /var/www/testevir/index.html
Para testar a sintex de seu arquivo de virtual host.
# lapachectl -S
Sem parar nosso servidor web e colocar no ar a Virtual Host, recarregue os
arquivos de configuração:
# /etc/init.d/apache2 reload
Reescrita de URL
o Apache permite a reescrita de URL atraves de uso de expressoes regulaTes; para tal e necessaria
ativar 0 modulo rewrite.
# apache2ctl -M
ou
ls -l /etc/apache2/mods-enabled
Se não ative o módulo rewrite.
a2enmod rewrite
Reinie o serviço
# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start
Vamos aproveitar nosso Virtual Host criado no exercicio anterior. Vamos edita-
10 e acrescentar alguns parametros:
<VirtualHost www.seunome.com.br>
DocumentRoot /var/www/seunome
ServerName seunome.com.br
ServerAdmin webmaster@seunome.com.br
ErrorLog /var/log/apache2/seunome/error.log
CustomLog /var/log/apache2!seunome/access.log common
RewriteEngine on
RewriteRule -(.*) [-/J$ / [R,NC,LJ]
</VirtualHost>
• Linha RewriteEngine - Estamos "ligando" 0 modo rewrite .
• Linha RewriteRule - Estamos aplicando uma expressao regular onde qualquer palavra
escrita apos ··http://wv.;w.seunome.com.brj." seja apagada e que nosso web server redirecione
devolta para 0 ../". Isso e muito util quando nao queremos ninguem vasculhando
os sub-diretorios de nosso dominio. As letras dentro dos colchetes significam respectivamente:
[R] reescrever a URL e redirecionar, [NC] case insensitive e [1] aplica somente uma
vez a cada tentativa, isso evita que a regra entre em loop infinito.
Claro que esta nao e a unica forma de utilizar 0 modJewrite, pOl' utilizar expressoes regulares
existem inumeras outras utilidades. Dentre elas, ajudar na reescrita de URL em um web server
com balanceamento de carga, restri~ao de acesso, conteudo diferenciado pOl' honirio, mostrar
conteudo especifico dependendo do browser, entre outros.