Apache-2.4.66

Introdução ao Apache HTTPD

O pacote Apache HTTPD contém um servidor HTTP de fonte aberto. Ele é útil para criar sítios web locais de intranet ou executar grandes operações de serviço web.

[Nota]

Nota

Esse pacote é conhecido por construir e funcionar adequadamente usando-se uma plataforma LFS 13.0.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/httpd/httpd-2.4.66.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 57b22503d04bf666a9ea829becc755e7

  • Tamanho da transferência: 7,2 MB

  • Espaço em disco estimado exigido: 88 MB

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Transferências Adicionais

Dependências do Apache HTTPD

Exigidas

Apr-Util-1.6.3

Opcionais

Brotli-1.2.0, Doxygen-1.16.1, jansson-2.15.0, libxml2-2.15.1, Lua-5.4.8, Lynx-2.9.2 ou Links-2.30 ou ELinks, nghttp2-1.68.0, OpenLDAP-2.6.12 (Apr-Util-1.6.3 precisa ser instalado com suporte ldap), rsync-3.4.1, Berkeley DB (obsoleto) e Distcache

Instalação do Apache HTTPD

Por motivos de segurança, executar o servidor como um(a) usuário(a) e grupo sem privilégios é fortemente encorajado. Crie o seguinte grupo e usuário(a) usando os seguintes comandos como root:

groupadd -g 25 apache &&
useradd -c "Servidor Apache" -d /srv/www -g apache \
        -s /bin/false -u 25 apache

Construa e instale o Apache HTTPD executando os seguintes comandos:

patch -Np1 -i ../httpd-blfs_layout-1.patch             &&

sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in       &&

sed -e '/HTTPD_ROOT/s:${ap_prefix}:/etc/httpd:'       \
    -e '/SERVER_CONFIG_FILE/s:${rel_sysconfdir}/::'   \
    -e '/AP_TYPES_CONFIG_FILE/s:${rel_sysconfdir}/::' \
    -i configure  &&

./configure --enable-authnz-fcgi                    \
            --enable-layout=BLFS                    \
            --enable-mods-shared="all cgi"          \
            --enable-mpms-shared=all                \
            --enable-suexec=shared                  \
            --with-apr=/usr/bin/apr-1-config        \
            --with-apr-util=/usr/bin/apu-1-config   \
            --with-suexec-bin=/usr/lib/httpd/suexec \
            --with-suexec-caller=apache             \
            --with-suexec-docroot=/srv/www          \
            --with-suexec-uidmin=100                \
            --with-suexec-userdir=public_html       \
            --with-suexec-logfile=/var/log/httpd/suexec.log &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install  &&

mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &&
chgrp apache          /usr/lib/httpd/suexec &&
chmod 4754             /usr/lib/httpd/suexec &&

chown -v -R apache:apache /srv/www

Explicações do Comando

sed '/dir.*CFG_PREFIX/s@^@#@'...: Força o utilitário apxs a usar nomes absolutos de caminho para módulos, quando instruído a fazê-lo.

sed -e '/HTTPD_ROOT/s ...: Corrige alguns caminhos.

--enable-authnz-fcgi: Construa autenticação e autorização baseada no autorizador FastCGI (módulo CGI rápido mod_authnz_fcgi.so).

--enable-mods-shared="all cgi": Os módulos deveriam ser compilados e usados como Dynamic Shared Objects (DSOs) de forma que possam ser incluídos e excluídos a partir do servidor usando as diretivas de configuração de tempo de execução.

--enable-mpms-shared=all: Essa chave garante que todos os Multi Processing Modules (MPM) sejam construídos como Dynamic Shared Objects (DSOs), de forma que o(a) usuário(a) consiga escolher qual usar em tempo de execução.

--enable-suexec: Essa chave habilita a construção do módulo suEXEC do Apache que pode ser usado para permitir que os(as) usuários(as) executem conjuntos de comandos sequenciais CGI e SSI sob IDs de usuário(a) diferentes do ID de usuário(a) do servidor web chamante.

--with-suexec-*: Essas chaves controlam o comportamento do módulo suEXEC, tais como a raiz padrão do documento, UID mínimo que pode ser usado para executar o conjunto de comandos sequenciais sob o suEXEC. Por favor, observe que, com UID mínimo de 100, você não consegue executar conjuntos de comandos sequenciais CGI ou SSI sob o suEXEC como o(a) usuário(a) apache.

... /usr/lib/httpd/suexec: Esses comandos colocam o envolucrador suexec no local apropriado, já que ele não se destina a ser executado diretamente. Eles também ajustam as permissões adequadas do binário, tornando-o setgid do apache.

chown -R apache:apache /srv/www: Por padrão, o processo de instalação instala arquivos (documentação, mensagens de erro, ícones padrão, etc.) com a titularidade de propriedade do(a) usuário(a) que extraiu os arquivos a partir do arquivo tar. Se quiser mudar a titularidade de propriedade para outro(a) usuário(a), você deveria fazê-lo neste ponto. O único requisito é o de que os diretórios de documentos precisam ser acessíveis pelo processo httpd com permissões (r-x) e os arquivos precisam ser legíveis (r--) pelo(a) usuário(a) apache.

Configurando o Apache

Arquivos de Configuração

/etc/httpd/httpd.conf e /etc/httpd/extra/*

Informação de Configuração

Veja-se file:///usr/share/httpd/manual/configuring.html para instruções detalhadas relativas a personalizar o teu arquivo de configuração do servidor de HTTP Apache.

Não existe razão, pelo menos para sítios voltados para a Internet, para não usar encriptação SSL. Configurar um sítio seguro não custa nada, exceto instalar uma pequena ferramenta adicional e alguns minutos de trabalho de configuração. Use esta diretriz em https://wiki.linuxfromscratch.org/blfs/wiki/Securing_a_website para criar certificados aceitos mundialmente e renová-los regularmente.

Unidade do systemd

Se você quiser que o servidor Apache inicie automaticamente quando o sistema for inicializado, instale a unidade httpd.service incluída no pacote blfs-systemd-units-20251204:

make install-httpd

Conteúdo

Aplicativos Instalados: ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter, htcacheclean, htdbm, htdigest, htpasswd, httpd, httxt2dbm, logresolve e rotatelogs
Bibliotecas Instaladas: Várias bibliotecas sob /usr/lib/httpd/modules/
Diretórios Instalados: /etc/httpd, /srv/www, /usr/include/httpd, /usr/lib/httpd, /usr/share/httpd, /var/log/httpd e /var/run/httpd

Descrições Curtas

ab

é uma ferramenta para avaliar comparativamente o teu servidor de HTTP Apache

apachectl

é uma estrutura de interação direta com o(a) usuário(a) para o servidor de HTTP Apache o qual foi projetado para ajudar o(a) administrador(a) a controlar o funcionamento do processo de segundo plano httpd do Apache

apxs

é uma ferramenta para construir e instalar módulos de extensão para o servidor de HTTP Apache

checkgid

é um aplicativo que verifica se pode setgid para o grupo especificado. Isso é para ver se é um grupo válido para o Apache2 usar em tempo de execução. Se o(a) usuário(a) (deveria ser executado como superusuário(a)) estiver nesse grupo, ou puder setgid para ele, ele retornará 0

dbmmanage

é usado para criar e atualizar os arquivos no formato DBM usados para armazenar nomes de usuário(a) e senhas para autenticação básica de usuários(as) HTTP

fcgistarter

é uma ferramenta para iniciar um programa FastCGI

htcacheclean

é usado para limpar o cache do disco

htdbm

é usado para manipular as bases de dados de senha DBM

htdigest

é usado para criar e atualizar os arquivos simples usados para armazenar nomes de usuário(a), domínios e senhas para autenticação de resumo dos(as) usuários(as) HTTP

htpasswd

é usado para criar e atualizar os arquivos simples usados para armazenar nomes de usuários(as) e senhas para autenticação básica dos(as) usuários(as) HTTP

httpd

é o aplicativo servidor de HTTP Apache

httxt2dbm

é usado para gerar arquivos DBM a partir de texto, para uso no RewriteMap

logresolve

é um aplicativo de pós-processamento para resolver endereços IP nos arquivos de registro de acesso do Apache

rotatelogs

é um aplicativo simples para uso em conjunto com o recurso de arquivo de registro canalizado do Apache

suexec

permite que os(as) usuários(as) executem aplicativos CGI e SSI como um(a) usuário(a) diferente