Instalando dependências:
# aptitude install debhelper lsb-release libpcre3-dev libssl-dev libcap-dev libxml2-dev autotools-dev
# aptitude install libaprutil1-dev libapr1-dev
# aptitude install autoconf libtool-bin perl
Baixando e descompactando o Apache2:
# cd /usr/src
# wget mirror.nbtelecom.com.br/apache/httpd/httpd-2.4.18.tar.gz
# tar -xzvf httpd-2.4.18.tar.gz
Baixando e organizando os pacotes necessários para os módulos extras.
APR (Apache Portable Runtime)
A missão do projeto Apache Portable Runtime (APR) é criar e manter bibliotecas de software que fornecem uma interface consistente e previsível para implementações específicas da plataforma (Sistema Operacional) utilizada. O objetivo principal é fornecer uma API para que os desenvolvedores possam codificar e ter a certeza de que o seu software funcionará independentemente da plataforma (Sistema Operacional) em que ele foi construído. Quando um SO não suporta determinada função, a APR define uma substituta. Além disso, a APR pode fazer com que um programa seja verdadeiramente portável entre várias plataformas.
# cd httpd-2.4.18/srclib
# wget mirror.nbtelecom.com.br/apache/apr/apr-1.5.2.tar.gz
# tar -xzvf apr-1.5.2.tar.gz
Movendo (renomeando), é necessário, pois segundo o manual do Apache2 não pode ter números de versão nos nomes das pastas:
# mv apr-1.5.2 apr
# wget mirror.nbtelecom.com.br/apache/apr/apr-util-1.5.4.tar.gz
# tar -xzvf apr-util-1.5.4.tar.gz
# mv apr-util-1.5.4 apr-util
Biblioteca de descompressão Zlib:
# wget http://zlib.net/zlib-1.2.8.tar.gz
# tar xvfz zlib-1.2.8.tar.gz
# mv zlib-1.2.8 zlib
PCRE - Perl Compatible Regular Expressions (Biblioteca para o uso de expressões regulares)
Execute:
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
ou
# wget http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.38.tar.gz
# tar xvfz pcre-8.38.tar.gz
# mv pcre-8.38 pcre
Configurando o Apache 2:
Subindo um diretório acima, de /usr/src/httpd-2.4.18/srclib para /usr/src/httpd-2.4.18:
# cd ..
Criando o diretório onde será instalado o Apache2:
# mkdir /opt/apache2
Construindo as bibliotecas baixadas anteriormente:
# ./buildconf
# ./configure --prefix=/opt/apache2 --exec-prefix=/opt/apache2 --enable-file-cache --enable-cache --enable-cache-disk --enable-so --enable-isapi --enable-session --enable-session-cookie --enable-ssl=shared --enable-imagemap --enable-rewrite --enable-alias --enable-cgi --enable-suexec=shared --enable-mods-shared=all --enable-auth-basic --enable-authn-file --enable-authnz-fcgi --enable-ssl --enable-mpms-shared=all --enable-pie --enable-include --enable-deflate --enable-headers --enable-expires --enable-fcgid --with-libxml2=/usr --with-suexec-caller=apache --with-pcre=/usr --with-mpm=event --with-included-apr --with-z=/usr/src/http-2.4.10/srclib/zlib
Deverá terminar:
config.status: executing default commands
# make
Deverá terminar:
make[2]: Leaving directory '/usr/src/httpd-2.4.18/support'
make[1]: Leaving directory '/usr/src/httpd-2.4.18'
# make install
Deverá terminar:
mkdir /opt/apache2/manual
make[1]: Leaving directory '/usr/src/httpd-2.4.18'
Em caso de erro em alguma etapa execute "make clean" estando dentro de httpd-2.4.18, apague e recrie a pasta /opt/apache2 e refaça a operação.
Módulo mod_fcgid -O módulo mod_fcgid serve para resolver o problema de upload de arquivos grandes quando o módulo FastCGI estiver em uso e também proporciona iniciar um número suficientes de instâncias do programa CGI para lidar com várias requisições simultâneas.
# cd ..
# wget mirror.nbtelecom.com.br/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
# tar xvfz mod_fcgid-2.3.9.tar.gz
# cd mod_fcgid-*
apxs - APache eXtenSion tool
É uma ferramenta para compilação e instalação de módulos para o Apache2:
# APXS=/opt/apache2/bin/apxs ./configure.apxs
# make
# make install
# cd ..
Entre no arquivo httpd.conf (vim /opt/apache2/conf/httpd.conf) e descomente as seguintes linhas:
LoadModule session_module modules/mod_session.so #linha ~137
LoadModule rewrite_module modules/mod_rewrite.so #linha ~176
Acrescente localhost ou o IP da sua máquina que responderá pelo servidor Web, na linha 220. Caso dê uma diferença no número da linha no seu arquivo, não se preocupe, é normal:
#ServerName www.example.com:80
ServerName localhost:80
Salve e saia. Iniciando o Apache 2 (não dará nenhuma mensagem de retorno):
# /opt/apache2/bin/apachectl start
Abra o navegador e digite:
localhost
ou
ip_do_servidor_web
Deverá aparecer "It works!".
Para o Apache iniciar com o sistema, abra o arquivo rc.local:
# vim /etc/rc.local
e coloque dentro, antes de exit 0, assim:
...
/opt/apache2/bin/apachectl start
exit 0
Criando um alias para o comando /opt/apache2/bin/apachectl.
Entre no arquivo:
# vim ~/.bashrc
Acrescente no final:
alias apache2='/opt/apache2/bin/apachectl'
Salve e saia do arquivo.
Execute:
# source ~/.bashrc
esse comando efetiva as mudanças sem precisar reiniciar.
Teste digitando no terminal:
# apache2 stop
Abra o navegador e teste.
# apache2 start
# apache2 restart
Para criar novos aliases, siga o mesmo método.
Para quem trabalha muito com a linha de comando, utilizar alias é uma ótima ajuda.