我刚刚在 Windows 上安装了 apache 2.2,但无法让它对我的更改做出反应。它在默认的 index.html 文件中一直显示“它起作用了!”。我已更改 DocumentRoot、<Document,并在新位置有一个 index.html。
DocumentRoot "C:/PersonalWebsite"
<Directory "C:/PersonalWebsite">
#
# 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>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
我在 URL 末尾没有任何尾部斜杠,并且我检查了目录和文件的权限,一切正常。我可以更改位于 中的文件内容index.html
,C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs
并且可以在浏览器中查看更改。因此,不知何故,在某个地方,它仍然指向旧路径。我在进行更改后还重新启动了服务,它不会因我输入的 URL 而崩溃。我还确保我正在编辑正确的 httpd 配置文件,方法是通过开始->程序->apache->编辑配置文件
- - - - - - 编辑 - - - - - - -
好的,我没有足够的字符来发布我发现的解决此问题的完整解释,所以我将把它发布在这里。
好吧,我尝试了上述方法,但没有成功。然后我尝试了其他方法。
- 我一直在通过 重新启动 apache
start menu->apache->control->restart
,并且我刚刚尝试通过菜单再次停止它。 - 然后我再次打开浏览器,尝试再次查看页面,结果成功了。我检查了托盘中的 apache 符号,发现它仍在运行。然后我通过托盘中的符号(而不是开始菜单)停止了该服务,结果它不再
green-> red
显示已停止。 - 我再次启动它,然后 Windows(非管理员用户帐户)弹出一个提示,询问该
httpd
文件。我单击确定,然后转到浏览器,它成功了!
所以问题是通过菜单重新启动,而不是'真的'重新启动?而且它一直无法工作是因为它仍在使用旧httpd
文件吗?这是 Windows 的问题吗?不是管理员帐户还是其他原因?
不过还是感谢您的建议!
答案1
我不认为你正在覆盖默认网站,因为这是它按你描述的方式工作所必需的。(我的经验是在 Linux 上使用 apache,因此你可能必须转换原则)
基本上,apache 会在某处有一个默认的 httpd.conf 文件,通常在安装文件夹下的 conf\httpd.conf 中,它将指定所有设置,例如 DocumentRoot,如果未在其他地方指定,则会使用这些设置。
我将首先在 httpd.conf 的底部添加以下内容,以声明用于您的网站的名称 VirtualHost;
NameVirtualHost *:80
<VirtualHost *:80>
ServerName myservername.com
#what is your home page
DirectoryIndex index.html
LogLevel warn
# CustomLog logs/somelogfile.log
# ErrorLog /var/log/httpd/someerror.lgo
DocumentRoot "C:/PersonalWebsite"
<Directory "C:/PersonalWebsite">
#
# 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>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
</VirtualHost>
并重新加载 apache。