通过常规的apache设置,在浏览器中输入localhost
或127.0.0.1
将导致apache尝试提供~/public_html
以外的文件。我想知道~
部分是如何解决的,因为 http请求中没有关于系统用户的信息,并且多个用户可能同时使用相同的apache服务,因此无法根据“当前登录用户”解决。那么apache如何知道如何解决~
?
答案 0 :(得分:0)
Apache提供User
指令。
User
指令设置服务器将回答的用户ID 要求。要使用此指令,必须运行服务器 最初为root
。如果以非root用户身份启动服务器,则为 将无法更改为较低权限的用户,而是将改为 继续以原始用户身份运行。
答案 1 :(得分:0)
涉及几个不同的概念。
浏览器使用底层操作系统DNS解析器将所有名称解析为IP地址,该解析器通常是本地地址的文本文件和远程DNS服务器的网络查询(以及相应的缓存)的组合
localhost
是127.0.0.1的标准别名(换句话说,本地计算机)。在浏览器中加载localhost
的任何其他人都将连接到他的机器,而不是你的机器。
~
是Unix shell用来表示当前用户主目录的语法糖。
默认Apache设置不会从主目录加载任何内容。但是,许多第三方软件包都会改变这种情况。
有一个可选的Apache模块(mod_userdir),可以从嵌套在主站点的主目录中提供自动定制站点。语法是使用(http://example.com/~john
)模仿~
shell语法(但它是一个不同的东西)并且与localhost
无关。