我使用的是之前配置的默认 VirtualHost 文件(当时我还不太清楚这些东西的工作原理),我不确定应该保留哪些内容。我不想只是尝试,因为设置一个包含所有这些东西的虚拟机会很麻烦,而且当前配置是在生产环境中,所以反复试验并不是一个真正的选择。以下是文件,名称已更改以保护无辜者:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.my.hostname
ServerAlias my.hostname
DocumentRoot /var/www/mysite
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogFormat "%t %T/%D \"%r\" %>s %b" mysitelog
CustomLog ${APACHE_LOG_DIR}/mysite.access.log mysitelog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
我的问题是:
我应该删除该
<Directory />
阻止吗?注释中指定了$APACHE_HOME/conf.d/security
“这目前破坏了某些 Web 应用程序 Debian 软件包附带的配置”。我应该取消注释此版本并从我的虚拟主机中删除它吗?这只不过是 PHP,所以我猜没有理由保留 cgi 块和别名。
我猜我也可以把这些东西扔掉
doc
。我甚至不确定这些东西是干什么用的,所以如果你能解释一下在“正常”设置下这些东西的用途,那就加分了(其实不是)。
因此,假设我的所有想法都是正确的,我的新 vhost 文件可能如下所示:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.my.hostname
ServerAlias my.hostname
DocumentRoot /var/www/mysite
<Directory /var/www/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogFormat "%t %T/%D \"%r\" %>s %b" mysitelog
CustomLog ${APACHE_LOG_DIR}/mysite.access.log mysitelog
</VirtualHost>
非常欢迎任何其他提示。谢谢!如果需要有关我的配置的更多信息,请告诉我!
答案1
我该解除这个
<Directory />
阻碍吗?
当然!这绝对是可以在服务器级别而不是在虚拟主机中处理的事情。
这只不过是 PHP,所以我猜没有理由保留 cgi 块和别名。
用核武器攻击它。
我猜我也可以摆脱文档的内容。
删除它。它在那里,因此您可以使用新安装的 Web 服务器浏览系统的文档。这是一个可爱的例子,但在我看来,它真的不属于默认配置文件。
在您提议的配置文件上:看起来不错!我提出的一个建议是,如果您不使用文件,请将AllowOverride All
目录块中的更改为- 如果您使用文件,我建议删除它们并将其配置拉入目录块。(AllowOverride None
.htaccess
.htaccess
请参阅此处了解我为什么这么说)