O Apache segundo pesquisas é o servidor web mais utilizado do mundo, sendo um incrivel software demonstrando agilidade, facilidade de implantação, modularização, gerenciamento personalizado e uma fácil manutenção. É um sistema Open Source mantido pela “Apache Software Foundation”, possuindo uma estrutura modularizada sendo possivel compila-la de forma personalizavel, tendo aindo como possibilidade de você construir o seus próprios módulos utilizando sua API disponivel.

Não existe uma receita de bolo pronta para efetuar uma implantação deste software, até porque cada necessidade possui uma  configuração diferenciada, levando em conta ainda a disponibilidade de recursos de hardware existente na máquina servidora.

Se você achou estranho eu ter começado esta postagem com elogios ao Servidor apache e agora dizer que não existe uma configuração que resolve todos os problemas, não se aflinja pois eu também achava isto no começo, mas ao decorrer desta  postagem verá o quão poderoso é este software.

O fato de não existir um configuração padrão é simplesmente porque o apache atende a diversas necessidades o tornando flexivel e robusto.

Uma dica muito legal para usuário que estão mergulhando nesta área, quando for efetuar uma instalação, faça um  levantamento e planeje minuciosamente todas as necessidades e recursos disponiveis para você tirar o melhor proveito de seu servidor web.

Então vamos ao que interessa, compilar e instalar o Apache. Primeiramente devemos efetuar o download do arquivo que contém o código fonte diretamente da página do software em http://httpd.apache.org/download.cgi. Você vai reparar que existe várias versões disponiveis para download, como “1.3”, “2.0” e “2.2” surgindo então a dúvida, qual versão instalar ?

O obvio você deve instalar a versão mais recente, a menos é claro que você necessite de algum módulo que somente exita para as versões anteriores ao “Apache 2.2”, ou você já possui uma instalação em seu servidor é não deseja ter dor de cabeça na hora da implantação.

Compilação

Bom, vamos compilar o Apache e instala-lo fazendo alguns comentários, supondo é claro que você já
efetuou o download do arquivo citado acima.

Uma observação a fazer é se ouver a necessidade de instalar o servidor apache com SSL, você deverá instalar alguns softwares extras para o correto funcionamento, como:


apt-get install openssl openssl-dev

ou


yum install openssl openssl-devel

Efetuado o download vamos descompactar o arquivo.


tar -xvf httpd-x.x.xx.tar.gz
cd httpd-x.x.xx

Vou colocar uma linha de compilação que atende a bastante requisitos de servidores web como alias, redirecionamento, ssl, autenticação e etc.


./configure --prefix=/usr/local/apache2 \
--with-mpm=prefork \
--with-port=80 \
--sysconfdir=/etc/httpd/conf \
--enable-rewrite \
--enable-cgi \
--enable-suexec \
--with-suexec-docroot=/home \
--with-suexec-userdir=public_html \
--with-suexec-logfile=/usr/local/apache2/logs/suexec_log \
--enable-ssl \
--enable-actions \
--enable-alias \
--enable-auth-basic \
--enable-authn-file \
--enable-authz-default \
--enable-authz-groupfile \
--enable-authz-host \
--enable-authz-user \
--enable-autoindex \
--enable-dir \
--enable-env \
--enable-mime \
--enable-setenv \
--enable-status \
--enable-negotiation \
--enable-deflate

Coloquei desta forma para uma melhor didática, mas o comando acima deve ser digitado tudo em
uma única linha ou coloque um barra invertida para entrar em uma nova linha (\).

Acima vamos configurar o Apache para rodar a partir do local espeficicado em “–prefix”,
também especificamos o local dos arquivos de configuração, o local onde situará o conteúdo dos
domínios gerados “–with-suexec-docroot” e ativamos alguns módulos opcionais.

Devemos ficar atento as dependências de bibliotecas emiticas pelo comando de configuração, se tudo
ocorreu bem basta entrar com os comandos:


make
make install

Após a compilação e instalaçao devemos agora colocar o Apache para despertar com a
inicialização do sistema Linux.

Vamos criar um arquivo em “/etc/init.d/” chado de “http” e colorar nele o seguinte conteudo


#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#              HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf

# Source function library.
. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache2/bin/apachectl
httpd=/usr/local/apache2/bin/httpd
pid=$httpd/logs/httpd.pid
prog=httpd
RETVAL=0

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd $pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f $pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status"
echo $"|fullstatus|graceful|help|configtest}"
exit 1
esac

exit $RETVAL

E então configurar com os comandos:


[servido #] chkconfig --add httpd
[servido #] chkconfig --level 2345 httpd on
[servido #] chkconfig --list

Pronto servidor web funcionando, para checar reinicialize o sistema e verifique no seu browser
digitando http://localhost e irá aparecer um página com a menssagem “It works!”.

Bom, Até a próxima …