Compilação e instalação customizada do Apache httpd no CentOS 7

Publicado por Alex Mendes em 18/06/2018

[ Hits: 6.102 ]

 


Compilação e instalação customizada do Apache httpd no CentOS 7



Este tutorial tem como objetivo a instalação do Apache Web Server compilando o código fonte de modo customizado. O fonte httpd utilizado para este procedimento encontra-se na versão httpd 2.4.33, podendo ser obtida através do site oficial do Apache:
Abaixo seguem as etapas sequencialmente para preparação da compilação do httpd.

Instalação dos pacotes requeridos:

# yum install autoconf automake gcc gcc-c++ expat-devel libtool libnghttp2-devel pcre-devel openssl

Obtendo o fonte do Apache httpd e alocando-o em diretório /opt/ para compilação:

# cd /opt/
# wget http://ftp.unicamp.br/pub/apache//httpd/httpd-2.4.33.tar.bz2
# tar -xjvf httpd-2.4.33.tar.bz2


Neste tutorial, faremos uso do pacote apr compilado em conjunto ao Apache (ele é requerido). Abaixo segue o procedimento.

Obtendo o fonte apr e alocando-o no caminho especificado:

# wget http://mirror.nbtelecom.com.br/apache/apr/apr-1.6.3.tar.gz
# tar -xzvf apr-1.6.3.tar.gz
# cp -r apr-1.6.3/ /opt/httpd-2.4.33/srclib/apr/


Obtendo o fonte apr-util e alocando-o no caminho especificado:

# wget http://mirror.nbtelecom.com.br/apache/apr/apr-util-1.6.1.tar.gz
# tar -xzvf apr-util-1.6.1.tar.gz
# cp -r apr-util-1.6.1/ /opt/httpd-2.4.33/srclib/apr-util/


Feito isso, faremos a compilação customizada do httpd.

Obs.: caso queira customizar com base na sua necessidade, recomendo ler as informações de ajuda:

# ./configure --help

Compilando Apache httpd:

# ./buildconf
# ./configure --prefix=/usr/local/httpd/ \
--sysconfdir=/etc/httpd/conf \
--enable-ssl \
--enable-so \
--enable-http2 \
--with-mpm=event \
--with-included-apr \
--with-ssl=/usr/bin/openssl


Onde:
  • --prefix Apontará o caminho destino de Instalação do Apache httpd.
  • --sysconfdir Apontará o caminho destino dos arquivos .conf do Apache httpd (arquivos de configuração).
  • --enable-ssl Contruirá o Apache com Suporte SSL, possibilitando habilitar HTTPS em suas páginas web.
  • --enable-so Habilitará Módulos Apache carregados dinamicamente. Assim podemos habiltar e desabilitar Módulos sem recompilação.
  • --enable-http2 Habilitará Suporte HTTP/2.
  • --with-mpm Configurará módulos de multiprocessamento para o Apache (Módulos de melhoria de performance).
  • --with-included-apr Este parâmetro utilizará o diretório "srclib" onde colocamos o fonte apr/apr-util.
  • --with-ssl Apontará o compilador para sua versão do OpenSSL instalada (A minha encontra-se em /usr/bin/openssl).

Reconhecimento dos binários do httpd pelo ambiente de sistema:

# vi /etc/profile.d/httpd.sh

# pathmunge /usr/local/httpd/bin

:wq (<-- Salvar e Sair)

Testando o reconhecimento declarado:

# httpd -v

Criação do daemon service httpd:

# vim /etc/systemd/system/httpd.service

Inserir conteúdo abaixo:

[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/httpd/bin/apachectl -k start
ExecReload=/usr/local/httpd/bin/apachectl -k graceful
ExecStop=/usr/local/httpd/bin/apachectl -k graceful-stop
PIDFile=/usr/local/httpd/logs/httpd.pid
PrivateTmp=true

[Install]
WantedBy=multi-user.target

:wq (<-- Salvar e Sair)

Recarregar daemon service:

# systemctl daemon-reload

Habilitar daemon service no init (inicialização):

# systemctl enable httpd.service

Start do serviço httpd:

# systemctl start httpd.service

Feito isso, o Apache deverá sinalizar que está sendo executado:

# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sáb 2018-05-05 13:10:53 -03; 39min ago
  Process: 86133 ExecStop=/usr/local/httpd/bin/apachectl -k graceful-stop (code=exited, status=0/SUCCESS)
  Process: 86140 ExecStart=/usr/local/httpd/bin/apachectl -k start (code=exited, status=0/SUCCESS)
Main PID: 86143 (httpd)
   CGroup: /system.slice/httpd.service
           ├─86143 /usr/local/httpd//bin/httpd -k start
           ├─86144 /usr/local/httpd//bin/httpd -k start
           ├─86145 /usr/local/httpd//bin/httpd -k start
           └─86146 /usr/local/httpd//bin/httpd -k start

Mai 05 13:10:53 centos7 systemd[1]: Starting The Apache HTTP Server...


Outras dicas deste autor

Access denied for user 'root'@'localhost' no MySQL Server Community 5.7 [Resolvido] - CentOS7 x86_64

Virtualbox - Erro: The vboxdrv kernel module is not loaded [Resolvido]

Instalação/Upgrade mysqld 5.7: fatal error: mysql.user table is damaged [Resolvido]

Adicionar caminho ao PATH do Linux

Configurando troca de senha de usuário no próximo login

Leitura recomendada

[RESOLVIDO] Slackware 13.1.x sob CentOS/KVM não reconhece interface de rede

cpb - Copiando arquivos executáveis ...

OpenVZ Web Panel

Cadê o lilo!?

No process in pidfile '/var/run/zabbix/zabbix_server.pid' found running; none killed

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts