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 corretamente
          usando uma plataforma LFS 12.4.
        
        
          Informação do Pacote
        
        
          
            - 
              
                Transferência (HTTP): https://archive.apache.org/dist/httpd/httpd-2.4.65.tar.bz2
              
             
            - 
              
                Transferência (FTP): 
              
             
            - 
              
                Soma de verificação MD5 da transferência:
                7274bb6fa215925fd697451a0f133483
              
             
            - 
              
                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 e pcre2-10.45
        
        
          Opcionais
        
        
          Brotli-1.1.0, Doxygen-1.14.0, jansson-2.14.1, libxml2-2.14.5, Lua-5.4.8, Lynx-2.9.2 ou Links-2.30 ou
          ELinks, nghttp2-1.66.0, OpenLDAP-2.6.10
          (Apr-Util-1.6.3 precisa ser instalado com
          suporte ldap), rsync-3.4.1, Berkeley
          DB (deprecated) 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
          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".
          
          
            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, [então] instale a
            unidade "httpd.service"
            incluída no pacote "" "blfs-systemd-units-20241211":
          
          make install-httpd