后来发现,原来又是Apache没配置 好,是apache的mod_authz_host模块在起控制作用。 1.如果不启用vhosts 只需修改 httpd.conf 默认Directory节如下,注意红色部分,表示目录/usr/local/apache/htdocs允许所有 主机访问 . 代码如下: <Directory "/usr/local/apache/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # #Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory>
由于主目录被指到别的地方了,所以将蓝色部分/usr/local/apache/htdocs换成你新的主目录就OK了。 2.启用vhosts 启 用vhosts的话,你就可以不作上面的修改了,因为VirtualHost可以单独配置这个节的属性,所以我们在VirtualHost这个节里配置的 话就更方便了,下面的配置中,我把我的网站放在/var/vhosts/www.test.cn下。 . 代码如下: /usr/local/apache/conf/extra/httpd-vhosts.conf <VirtualHost *:80> <Directory "/var/vhosts/www.test.cn" > #Deny from all Allow from all </Directory> DocumentRoot "/var/vhosts/www.test.cn" ServerName www.test.cn </VirtualHost>
如果把Deny from all的注释去掉,那么服务器就会拒绝所有访问(和我们刚开始把主目录移动到htdocs外而没做任何配置修改时一样,哈哈) 补充一点: 如果你是写个index.php放在目录下测试,可要注意了,记得加上默认主页index.php DirectoryIndex index.html index.php