a Compilação e instalação do Apache HTTPD a partir do código fonte
a Maioria das distribuições de Linux fornecem uma versão específica do Apache HTTPD pacotes binários a partir de seus repositórios principais. A desvantagem é que esta versão geralmente não é atualizada até o lançamento principal da próxima distribuição.
para tirar proveito dos recursos disponíveis apenas a partir de uma versão mais recente ou para construir um binários personalizados, compilação e instalação do Apache HTTPD a partir do código-fonte é simples.
este tutorial descreve as etapas de compilação e instalação do Apache HTTPD em distribuições Linux baseadas em RPM (Fedora, CentOS, …) e baseadas em Deb (Debian, Ubuntu,…). A versão mais recente disponível (2.4.x) é usado.
código-fonte Apache HTTPD
o diretório / usr / local/ src / é geralmente usado para atividades relacionadas à compilação (requer privilégios de root). Ele é usado neste tutorial como o diretório de compilação.
o código-fonte do Apache HTTPD está disponível como um arquivo tar de: http://httpd.apache.org/download.cgi.
A seguir estão os passos para fazer o download e extrair o código-fonte no diretório de compilação (Os números de versão podem ser alterados conforme a necessidade):
cd /usr/local/src/wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.gztar -xzf httpd-2.4.43.tar.gzls -lcd httpd-2.4.43pwdls
Instalação de dependências de compilação
A compilação do Apache HTTPD requer a instalação das ferramentas de desenvolvimento (compilador, linkeditor, …) e algumas bibliotecas adicionais.
As bibliotecas necessárias estão:
- abr
- apr-util
- openssl
- internacional
- prce
a Maioria das distribuições Linux fornecer a essas bibliotecas a partir dos repositórios principais. Se o sistema incluir uma versão antiga de uma biblioteca, seu código-fonte pode ser baixado e compilado separadamente. Uma seção posterior apresenta como baixar e construir o código-fonte das bibliotecas apr e apr-util como parte do processo de compilação Apache HTTPD.
em distribuições Linux baseadas em RPM (Fedora, Centos,…), os pacotes de desenvolvimento de bibliotecas podem ser instalados usando os seguintes comandos:
yum group install developmentyum install openssl-devel expat-devel pcre-devel apr-devel apr-util-devel
em distribuições Linux baseadas em Deb (Debian, Ubuntu,…), OS Pacotes de desenvolvimento de bibliotecas podem ser instalados usando o seguinte comando:
apt install build-essential libssl-dev libexpat-dev libpcre2-dev libapr1-dev libaprutil1-dev
opções de configuração de Compilação
após o download do código-fonte Apache HTTPD e a instalação das dependências de compilação, as opções de configuração de compilação podem ser definidas (opções do compilador, diretório de instalação, ativar/desativar módulos, …).
como o Apache HTTPD usa o sistema de compilação Autoconf, ele fornece um script chamado Configurar para definir as opções de configuração de compilação e gerar os arquivos Makefile.
a menos que alguns ajustes sejam necessários, os padrões podem ser mantidos. O padrão é compilar a maioria dos módulos e definir o diretório de instalação para /usr/local/apache2/.
para usar os padrões, o script configure é chamado sem argumentos:
cd /usr/local/src/httpd-2.4.43./configure
para listar todas as opções possíveis, o script configure é chamado com o argumento-help:
cd /usr/local/src/httpd-2.4.43./configure --help
as seções a seguir apresentam algumas opções úteis de configuração de compilação.
diretório de instalação: – opção de prefixo
o diretório de instalação é diferente do Diretório de compilação. É onde os binários e arquivos de configuração resultantes serão colocados assim que a compilação for bem-sucedida e o comando make install for executado (apresentado na seção Instalação).
a opção –prefix é usada para selecionar um caminho de instalação diferente. Esta opção é útil se precisarmos construir e instalar diferentes versões do Apache HTTPD.
o exemplo a seguir apresenta como definir o diretório de instalação para/opt / apache-2.4.43/:
cd /usr/local/src/httpd-2.4.43./configure --prefix=/opt/apache-2.4.43/
como ativar / desativar um módulo: – enable-MODULE/ – disable-MODULE
a maioria dos módulos Apache HTTPD são construídos por padrão como bibliotecas dinâmicas. A opção-enable-MODULE pode ser usada para habilitar um módulo ou alterar seu tipo de compilação de dinâmico para estático. A opção-disable-MODULE é usada para desativar a criação de um módulo. O módulo é substituído pelo nome real do módulo.
o exemplo a seguir mostra para construir a reescrita do módulo como uma biblioteca estática:
cd /usr/local/src/httpd-2.4.43./configure --enable-rewrite=static
Opções do compilador
quando necessário, as opções do compilador são passadas para o script de configuração como variáveis de ambiente.
As variáveis são resumidas na tabela a seguir:
CC | Usado para selecionar o compilador C comando. O padrão é cc (o compilador GNU), mas o clang é uma opção muito |
CFLAGS | Usado para passar o compilador de C bandeiras |
LDFLAGS | Usado para passar ligador de sinalizadores |
BIBLIOTECAS | Usado para passar bibliotecas para o vinculador |
opções cppflags | Usado para passar (Objetivo) C/C++ preprocessor bandeiras |
CPP | Usados para passar parâmetros pré-processador C |
O exemplo a seguir apresenta como passar um sinalizador de otimização para o compilador C:
cd /usr/local/src/httpd-2.4.43export CFLAGS=-o2./configure
Compilação e instalação
Após a execução do script configure para definir a configuração de compilação de opções e gerar o Makefile arquivos, o processo de compilação é iniciado com o comando make.
o exemplo a seguir apresenta como iniciar o processo de compilação:
cd /usr/local/src/httpd-2.4.43./configuremake
depois que a compilação for bem-sucedida, a instalação no diretório de instalação poderá ser iniciada com o seguinte comando:
make install
a instalação coloca todos os binários e arquivos de configuração necessários no diretório de instalação /usr/local/apache2. Os arquivos executáveis são colocados em / usr / local / apache2 / bin/. Os arquivos de configuração são colocados em / usr / local / apache2/conf/.
Como a lista módulos compilados
Os módulos compilados pode ser listados usando o comando a seguir:
/usr/local/apache2/bin/httpd -M
Iniciar e parar o serviço de
A nova compilação do Apache pode ser iniciado usando o comando /usr/local/apache2/bin/apachectl.
para iniciar o serviço:
/usr/local/apache2/bin/apachectl start
Para parar o serviço:
/usr/local/apache2/bin/apachectl stop
a Construção de apr e apr-util a partir do código fonte
As bibliotecas necessárias para a compilação do Apache pode ser instalado a partir da distribuição Linux repositórios principais, mas em algumas situações, o Apache requer uma versão mais recente de uma biblioteca que não está disponível a partir destes repositórios. Nesse caso, o código-fonte da biblioteca também pode ser baixado e compilado ao lado do Apache HTTPD.
as bibliotecas apr e apr-util são duas das bibliotecas principais nas quais o Apache HTTPD se baseia para seu trabalho interno para garantir a portabilidade em muitos sistemas operacionais.
o código-fonte Apache HTTPD inclui um subdiretório chamado srclib. Ele é usado para armazenar as bibliotecas que podem ser construídas e usadas pelo servidor em vez de usar as bibliotecas do sistema.
para integrar o código-fonte das bibliotecas apr e apr-util como parte do processo de compilação do Apache HTTPD, seu código-fonte é baixado e extraído dentro do subdiretório srclib.
o exemplo a seguir apresenta como baixar e extrair o código-fonte das duas bibliotecas apr e apr-util. Quando o arquivo tar é extraído, o número da versão deve ser retirado.Eles estão disponíveis para download no site oficial: https://apr.apache.org/download.cgi.
cd /usr/local/src/httpd-2.4.43/srclib/wget https://downloads.apache.org/apr/apr-1.7.0.tar.gztar -xzf apr-1.7.0.tar.gzmv apr-1.7.0 aprlswget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gztar -xzf apr-util-1.6.1.tar.gzmv apr-util-1.6.1 apr-utillscd /usr/local/src/httpd-2.4.43./configuremakemake install
como atualizar a partir da versão 2.x a 2.y
a atualização de um Apache HTTPD instalado a partir do código-fonte é possível. A prática recomendada é usar um diretório de instalação separado para cada versão e copiar o subdiretório de configuração da versão antiga para o novo diretório.
O exemplo a seguir apresenta como actualizar uma já instalado versão 2.4.0 que está instalado em /usr/local/apache-2.4.0, para uma versão mais recente 2.4.43, que será instalado em /usr/local/apache-2.4.43.
Para baixar, compilar e instalar a nova versão:
cd /usr/local/src/wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.gztar -xzf httpd-2.4.43.tar.gzcd httpd-2.4.43./configure --prefix=/usr/local/apache-2.4.43makemake install
Parar o serviço a partir da versão antiga:
/usr/local/apache-2.4.0/bin/apachectl stop
Copie o diretório de configuração da versão antiga do diretório para a nova versão do um:
rm -rf /usr/local/apache-2.4.43/conf/cp -rp /usr/local/apache-2.4.0/conf/ /usr/local/apache-2.4.43/
Iniciar o serviço a partir da nova versão:
/usr/local/apache-2.4.43/bin/apachectl start