例如,virtualHost
的文档根目录为/var/www
,服务器名称为aaa.com
。
但是,如果我使用forbidden
和localhost
访问服务器,则apache会告诉我aaa.com
。如果我将Directory
中的http.conf
选项更改为/var/www
,则apache可以正常运行。我不知道为什么?
我想在Directory
中设置httpd-vhosts.conf
选项,而不是httpd.conf
,我该怎么做?
这是我的http.conf
:
这是我的httpd-vhosts.conf
:
答案 0 :(得分:12)
在http.conf
文件中,您应该只为<Directory />
定义选项。您应在httpd-vhosts.conf
个文件中定义VirtualHosts的所有选项。类似的东西:
的httpd.conf:
DocumentRoot "/var/www"
<Directory />
Order deny,allow
Deny from all
Options None
AllowOverride None
</Directory>
的httpd-vhosts.conf:
ServerName aaa.com
DocumentRoot /var/www
<Directory /var/www>
Options FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
答案 1 :(得分:5)
此配置对apache 2.2版有效
首先在终端中输入apachectl -V
来检查您的apache版本。
如果显示类似的内容
Server version: Apache/2.4.27 (Ubuntu)
Server built: 2018-04-18T14:20:05
然后您的apache版本已更新,但您正在使用的配置已弃用。
所以而不是
2.2配置:
Order allow,deny
Allow from all
使用它:
2.4配置:
Require all granted
有关升级的更多文档,请按照官方文档:
答案 2 :(得分:1)
2.4配置:
<Directory />
Options All
AllowOverride All
</Directory>