Neste tutorial, vou compartilhar o procedimento que uso para instalar o Apache 2.2.21 em um servidor Ubuntu 11.10 (32bits) a partir do código fonte. Para mais informações, leia a documentação oficial em http://httpd.apache.org/docs/2.2/install.html.
Passo 1: Preparação
Confirme a versão do seu servidor Ubuntu, bem como a arquitetura:
$ less /etc/lsb-release
A saída deve ser algo como:
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=11.10 DISTRIB_CODENAME=oneiric DISTRIB_DESCRIPTION="Ubuntu 11.10"
Para verificar a arquitetura:
$ uname -i
A saída do comando deve ser algo como:
i386
Para terminar este passo, crie dois diretórios sob o seu diretório home, para armazenar os pacotes de instalação e o código-fonte a ser compilado. Eu sempre utilizo estes diretórios para armazenar os pacotes de download e os arquivos de código-fonte.
bruno@ubuntu:~$ pwd /home/bruno bruno@ubuntu:~$ mkdir downloads softwares bruno@ubuntu:~$ ls -ltr total 8 drwxrwxr-x 2 bruno bruno 4096 2011-10-14 09:44 softwares drwxrwxr-x 2 bruno bruno 4096 2011-10-14 09:44 downloads bruno@ubuntu:~$
Passo 2: Instalação do make, gcc e autoconf
Para compilar qualquer software a partir do código-fonte, é necessário um conjunto específico de ferramentas. Antes de prosseguir com a instalação, instale os seguintes pacotes, usando o apt-get:
$ sudo apt-get install gcc $ sudo apt-get install g++ $ sudo apt-get install make $ sudo apt-get install autoconf
Passo 3: Download do pacote de instalação
Faça o download do pacote de instalação na página http://httpd.apache.org/download.cgi. Escolha o pacote Unix Source, arquivo httpd-2.2.21.tar.gz. Após fazer o download, copie este arquivo para o diretório /root/downloads. Se preferir, você pode fazer o download direto do servidor, usando o wget:
$ pwd /home/bruno/downloads $ wget http://ftp.unicamp.br/pub/apache//httpd/httpd-2.2.21.tar.gz
Se você for bem paranóico, pode verificar a integridade do pacote de download usando o md5sum:
$ md5sum httpd-2.2.21.tar.gz b24ca6db942a4f8e57c357e5e3058d31 *httpd-2.2.21.tar.gz
Altere o diretório de trabalho para o diretório softwares e descompacte o pacote de instalação:
$ pwd /home/bruno $ cd softwares $ tar --extract --gzip --verbose --file ../downloads/httpd-2.2.21.tar.gz
Passo 4: Antes de configurar…
Antes de configurar a instalação do Apache, é necessário tomar algumas decisões importantes, como qual será o modelo de multi-processamento e quais módulos devem ser carregados. O modelo de multi-processamento define como o Apache irá se comportar em relação à criação de processos-filho e distribuição das requisições entre estes processos. Para um servidor de desenvolvimento, essa decisão não é tão importante, mas em ambientes de produção, pode ter impacto direto no sucesso ou fracasso deste servidor. Para mais informações sobre os modelos de multi-processamento do Apache, visite http://httpd.apache.org/docs/2.2/mpm.html.
Neste tutorial, vou escolher o módulo prefork e vou carregar três módulos adicionais:
- mod_info: Este módulo oferece um Location (/server-info) que apresenta informações detalhadas sobre a instalação do Apache e é recomendada para ambientes de desenvolvimento e produção (com controle de acesso)
- mod_status: Este módulo também oferece um Location (/server-status) que apresenta informações sobre o status do Apache, incluindo quais os módulos carregados e, o mais legal na minha opinião, é a possibilidade de ver um mapa dos processos atuais, bem como o que cada um está fazendo (status)
- mod_rewrite: Este módulo é muito útil para criar regras de re-escrita de URL, que podem ser de muita utilidade na administração deste servidor
Passo 5: Configuração
Executar os comandos abaixo, na ordem especificada. Este comando verificará se o ambiente possui todas as bibliotecas e ferramentas necessárias, de acordo com os parâmetros de configuração:
$ ./configure --prefix=/usr/local/httpd-2.2.1 --with-mpm=prefork --enable-info=shared --enable-status=shared --enable-rewrite=shared
O comando acima configura a instalação para o diretório /usr/local/httpd-2.2.21, define a utilização do módulo de multi-processamento como prefork e habilita o carregamento de três módulos adicionais. O shared nas opções acima define que estes módulos devem ser instalados como objetos compartilhados (Shared Objects). Estes objetos serão criados como arquivos .so no diretório modules sob o diretório de instalação do Apache. Instalar módulos como objetos compartilhados permite carregar estes módulos dinamicante.
Passo 6: Compilação
Executar os comandos abaixo, na ordem especificada:
$ sudo make
Passo 7: Instalação
Executar os comandos abaixo, na ordem especificada:
$ sudo make install
Pronto, a instalação do Apache 2.2.21 foi feita no diretório /usr/local/httpd-2.2.21.
Passo 8: Pós-instalação
Para finalizar, falta apenas fazer algumas alterações no arquivo de configuração e inicializar o Apache através do script apachectl.
Antes, crie um link simbólico para o diretório de instalação:
$ sudo ln --symbolic /usr/local/httpd-2.2.21 /usr/local/httpd
Em seguida, edite o arquivo de configuração localizado em /usr/local/httpd/conf/httpd.conf, removendo os comentários do início das linhas abaixo – os comentários sobre as linhas são bem claros.
Linha 379:
# Server-pool management (MPM specific) Include conf/extra/httpd-mpm.conf
Linha 393:
# Real-time info on requests and configuration Include conf/extra/httpd-info.conf
Linha 405:
# Various default settings Include conf/extra/httpd-default.conf
Agora só falta iniciar o Apache e correr para o abraço… rsrs
$ pwd /usr/local/httpd $ sudo bin/apachectl start
Conclusão
Neste artigo, compartilhei o meu procedimento para a instalação do servidor HTTP Apache 2.2.21 em um servidor Ubuntu 11.10 a partir do código-fonte. Esta instalação utiliza o módulo de multi-processamento prefork e carrega três módulos como objetos compartilhados.
Dúvidas, críticas e/ou sugestões, é só comentar.
Muito bom, mais esse procedimento serve para o ubuntu 64 bits ? E se eu instalar pelo apt-get install apache2 ele já vem atualizado?
Abraço!!
Boa noite… muito obrigado pelo comentário…
Esse procedimento foi testado apenas no Ubuntu 32 bits, mas eu acredito que funcione de forma semelhante para 64 bits, pode tentar que vai. Quanto a utilizar os pacotes do Ubuntu, o apache2 neste caso, você terá de aguardar o ciclo de homologação das versões por parte do Ubuntu, que pode demorar algumas semanas ou até mesmo meses. Por exemplo, se o Apache 3 saísse hoje, você teria de aguardar até que eles homologuem esta versão, criem o novo pacote, resolvam as dependências, etc. Isso pode ser bom, pois você garante que está instalando um software testado por eles, mas também pode ser ruim, caso você precise de configurações específicas. Como sempre, depende das suas necessidades.
Espero ter ajudado.
Obrigado.