Apache-2.4.55

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".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

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

  • Transferência (FTP):

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

  • Tamanho da transferência: 7,1 MB

  • Espaço em disco estimado exigido: 87 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 e pcre2-10.42

Opcionais

Brotli-1.0.9, Base de Dados Berkeley-5.3.28, Doxygen-1.9.6, libxml2-2.10.3, Lua-5.4.4, Lynx-2.8.9rel.1 ou Links-2.28 ou ELinks, nghttp2-1.52.0, OpenLDAP-2.6.4 (Apr-Util-1.6.3 precisa ser instalado com suporte a "ldap"), rsync-3.2.7 e Distcache

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/apache

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-2.4.55-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-logfile=/var/log/httpd/suexec.log   \
            --with-suexec-uidmin=100                          \
            --with-suexec-userdir=public_html                 &&
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.

--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 s"uEXEC" como o(a) usuário(a) "apache".

... /usr/lib/httpd/suexec: Esses comandos colocam o envólucro "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), [então] 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".

Unidade do systemd

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

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, [então] 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 aplicativo "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