a2enmod módulo
; para desabilitar um módulo, o comando é a2dismod módulo
. Esses programas na verdade apenas criam (ou apagam) ligações simbólicas em /etc/apache2/mods-enabled/
, que apontam para os arquivos reais (armazenados em /etc/apache2/mods-available/
).
/etc/apache2/ports.conf
), e serve páginas a partir do diretório /var/www/html/
(como configurado em /etc/apache2/sites-enabled/000-default.conf
).
mod_ssl
) required for secure HTTP (HTTPS) out of the box. It just needs to be enabled with a2enmod ssl
, then the required directives have to be added to the configuration files. A configuration example is provided in /etc/apache2/sites-available/default-ssl.conf
.
SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN/chain.pem SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt
mod_gnutls
, which is shipped with the libapache2-mod-gnutls package and enabled with the a2enmod gnutls
command.
/etc/apache2/sites-enabled/000-default.conf
; esse host virtual será usado se não for encontrado nenhum host que corresponda à solicitação enviada pelo cliente.
/etc/apache2/sites-available/
. Configurar um site web para o domínio falcot.org
é portanto uma simples questão de criar o seguinte arquivo, e então, habilita o host virtual com a2ensite www.falcot.org
.
Exemplo 11.13. o arquivo /etc/apache2/sites-available/www.falcot.org.conf
<VirtualHost *:80> ServerName www.falcot.org ServerAlias falcot.org DocumentRoot /srv/www/www.falcot.org </VirtualHost>
CustomLog
na definição de hosts virtuais). É, entretanto, boa prática customizar o formato desse arquivo de log para ter incluído o nome do host virtual. Isso pode ser feito criando um arquivo /etc/apache2/conf-available/customlog.conf
, que define um novo formato para todos os arquivos de log (com a diretiva LogFormat
), e habilitando-o com a2enconf customlog
. A linha CustomLog
tem também que ser removida (ou comentada) do arquivo /etc/apache2/sites-available/000-default.conf
.
Directory
; eles permitem especificar diferentes comportamentos para o servidor dependendo da localização do arquivo que está sendo servido. Um bloco desse tipo comumente inclui as diretivas Options
e AllowOverride
.
Exemplo 11.15. Bloco Directory
<Directory /srv/www> Options Includes FollowSymlinks AllowOverride All DirectoryIndex index.php index.html index.htm </Directory>
DirectoryIndex
contém uma lista de arquivos a serem experimentados quando uma requisição do cliente coincide com um diretório. O primeiro arquivo existente da lista é usado e enviado como resposta.
Options
é seguida de uma lista de opções a serem habilitadas. O valor None
desabilita todas as opções; correspondentemente, All
habilita todas elas exceto MultiViews
. As opções disponíveis incluem:
ExecCGI
indicates that CGI scripts can be executed.
FollowSymlinks
tells the server that symbolic links can be followed, and that the response should contain the contents of the target of such links.
SymlinksIfOwnerMatch
also tells the server to follow symbolic links, but only when the link and the its target have the same owner.
Includes
enables Server Side Includes (SSI for short). These are directives embedded in HTML pages and executed on the fly for each request.
IncludesNOEXEC
allows Server Side Includes (SSI) but disables the exec
command and limits the include
directive to text/markup files.
Indexes
tells the server to list the contents of a directory if the HTTP request sent by the client points at a directory without an index file (i.e., when no files mentioned by the DirectoryIndex
directive exists in this directory).
MultiViews
enables content negotiation; this can be used by the server to return a web page matching the preferred language as configured in the browser.
AllowOverride
lista todas as opções que podem ser habilitadas ou desabilitadas pelo arquivo .htaccess
. Um uso comum dessa opção é restringir ExecCGI
, para que o administrador escolha quais usuários tem permissão para rodar programas sob a identidade do servidor web (o usuário www-data
).
Exemplo 11.16. Arquivo .htaccess
para autenticação obrigatária
Require valid-user AuthName "Private directory" AuthType Basic AuthUserFile /etc/apache2/authfiles/htpasswd-private
/etc/apache2/authfiles/htpasswd-private
contém uma lista de usuários e senhas; ele é comumente manipulado com o comando htpasswd
. Por exemplo, o seguinte comando é usado para adicionar um usuário ou alterar a senha:
#
htpasswd /etc/apache2/authfiles/htpasswd-private user
New password: Re-type new password: Adding password for user user
Require
directive controls access restrictions for a directory (and its subdirectories, recursively).
Require
são combinadas dentro de um bloco RequireAll
.
/etc/awstats/awstats.conf
. O administradores da Falcot o mantiveram inalterado, exceto os seguintes parâmetros:
LogFile="/var/log/apache2/access.log" LogFormat = "%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" SiteDomain="www.falcot.com" HostAliases="falcot.com REGEX[^.*\.falcot\.com$]" DNSLookup=1 LoadPlugin="tooltips"
LogFile
e LogFormat
descrevem a localização e o formato do arquivo de log e a informação que ele contém; SiteDomain
e HostAliases
listam os vários nomes pelos quais o site web principal é conhecido.
DNSLookup
geralmente não deveria ser configurado como 1
; para sites menores, como o da Falcot descrito acima, essa configuração permite ter relatórios mais legíveis, que incluem o nome completo da máquina ao invés de simplesmente endereços IP.
/etc/awstats/awstats.www.falcot.org.conf
.
Exemplo 11.18. Arquivo de configuração dO AWStats para um servidor virtual
Include "/etc/awstats/awstats.conf" SiteDomain="www.falcot.org" HostAliases="falcot.org"
/usr/share/awstats/icon/
. Para que esses ícones fiquem disponíveis no site web, a configuração do Apache precisa ser adaptada para incluir as seguintes diretivas:
Alias /awstats-icon/ /usr/share/awstats/icon/