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