Janeiro 22, 2022

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

Deixe uma resposta

O seu endereço de email não será publicado.