a2enmod module
的简单事情;要禁止模块,命令是a2dismod module
。这些程序实际上只创建(或删除)/etc/apache2/mods-enabled/
中的符号链接,它们指向真实文件(存储在 /etc/apache2/mods-available/
中)。
/etc/apache2/ports.conf
中所配置的),并且为来自 /var/www/html/
目录的页面提供服务(如在 /etc/apache2/sites-enabled/000-default.conf
中所配置的)。
mod_ssl
)。它只需要用 a2enmod ssl
来启用,然后所需的指令必须添加到配置文件中。配置示例提供在 /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. Unfortunately the version packaged for Debian had serious issues and even security implications and is therefor not part of the Debian Bullseye release.
/etc/apache2/sites-enabled/000-default.conf
文件中定义;如果没有发现与客户端发送的请求相匹配的主机的话,这个虚拟主机将被使用。
/etc/apache2/sites-available/
中存储的文件来描述。这样,为 falcot.org
域设置网站就是创建后面的文件,然后通过 a2ensite www.falcot.org
启用虚拟主机这样简单的事情。
例 11.13. /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
指令来更改)。这样,很好理解去定制这个日志文件的格式来使它包含虚拟主机的名称。这可以通过创建为所有日志文件定义了新格式的 /etc/apache2/conf-available/customlog.conf
文件来进行,并通过 a2enconf customlog
来启用。还必须从 /etc/apache2/sites-available/000-default.conf
文件中删除(或注释掉) CustomLog
行。
Directory(目录)
块;它们允许为依赖于所服务的文件的位置的服务器指定不同行为。这样的块通常包括 Options
和 AllowOverride
指令。
例 11.15. 目录块
<Directory /srv/www> Options Includes FollowSymlinks AllowOverride All DirectoryIndex index.php index.html index.htm </Directory>
DirectoryIndex
指令包含当客户端请求匹配目录时尝试的文件列表。列表中存在的第一个文件被使用,并作为响应来发送。
Options
指令后面是被启用的选项列表。None
值禁止了所有的选项;相应地,All
全部启用它们,除了MultiViews
。可用选项包括:
ExecCGI
指示可以执行 CGI 脚本。
FollowSymlinks
告诉服务器可以跟随符号链接,并且响应应该包含这个链接目标的内容。
SymlinksIfOwnerMatch
also tells the server to follow symbolic links, but only when the link and its target have the same owner.
Includes
启用 Server Side Includes(服务器一侧包含)(缩写为 SSI)。这些指令嵌入 HTML 页面中,并对每个请求动态执行。
IncludesNOEXEC
允许 Server Side Includes(服务器一侧执行)(缩写为 SSI),但禁止 exec
命令并对文本/标记文件限制 include
指令。
Indexes
告诉服务器如果由客户端发送的 HTTP 请求指向没有索引文件的目录(也就是DirectoryIndex
指令提到的文件不存在于这个目录中时),那么列出目录的内容。
MultiViews
启用了内容协商;这可以被服务器使用,来返回与浏览器中配置的所需语言相匹配的 web 页面。
AllowOverride
指令列出可以由 .htaccess
文件的方式启用或禁止的所有选项。这个选项通常用于限制 ExecCGI
,从而管理员选择哪些用户在 web 服务器身份(www-data
用户)下允许运行程序。
mod_auth*
modules.
/etc/apache2/authfiles/htpasswd-private
文件包含用户和密码的列表;它通常由 htpasswd
命令来操作。例如后面的命令用于添加用户或更改他们的密码:
#
htpasswd /etc/apache2/authfiles/htpasswd-private user
New password: Re-type new password: Adding password for user user
/etc/awstats/awstats.conf
文件。Falcot 公司的管理员只更改后面的参数,而保持其它不变:
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
和 LogFormat
参数描述了日志文件以及其包含的信息;SiteDomain
和 HostAliases
列出了获知主网站的各个名称。
DNSLookup
通常应该不设置为 1
;对于较小的网站,如上面描述的 Falcot 公司的网站,这个设置允许得到可读性更好的报告,它除了包括原始 IP 地址,还包括全部的机器名称。
/etc/awstats/awstats.www.falcot.org.conf
。
例 11.18. 用于虚拟主机的 AWStats 配置文件
Include "/etc/awstats/awstats.conf" SiteDomain="www.falcot.org" HostAliases="falcot.org"
/usr/share/awstats/icon/
directory. In order for these icons to be available on the web site, the Apache configuration needs to be adapted to include the following directive (check out /usr/share/doc/awstats/examples/apache.conf
for a more detailed example):
Alias /awstats-icon/ /usr/share/awstats/icon/