APACHE配置ServerRoot 的问题?

来源:百度知道 编辑:UC知道 时间:2024/07/05 02:40:39
查阅了很多资料,对于apache中ServerRoot的解释基本都是这样的:ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。

1、安装完apache后,我的apache安装目录如下d:\MyPHP\apache2.2\,查看httpd.conf文件,发现ServerRoot定义的目录为:ServerRoot "d:\MyPHP\apache2.2\",不明白的是,apache的进程文件httpd.exe是位于d:\MyPHP\apache2.2\bin\的啊?和官方的解释又不一致,ServerRoot是定义的目录具体是以什么为标准定义的?
2、同样以我安装的为例,假如我把ServerRoot的定义直接改为ServerRoot ".",那这时指定的具体目录又是哪个?

我也是初学者,配置的环境是LAMP,和你的不大一样.但我感觉官方说的和你说的没有矛盾.http的运行目录,它的安装目录这是两个概念.比如DOS下的dir指令,你可以在许多路径下运行它,但它的安装目录肯定只有一个的.进程在运行中是可以改变运行目录的,因此你在设置文件中指定的是相对路径,那就是在d:\MyPHP\apache2.2\下,而不是d:\MyPHP\apache2.2\bin\下.
对于问题3,我个人的感觉具体目录应该是d:\MyPHP\apache2.2\bin\,因为我对具体的源代码没有详细阅读,在这里猜测一下,在httpd运行后,它会根据ServerRoot,改变当前运行环境,但你指定是".",所以还是在当前目录.但这么设置可能会引发一些问题或者错误,引起服务器不能正常运行.

ServerRoot官方解释:apache软件安装的位置,其他指定的目录如果没有绝对路径,则目录是相对路径,和httpd没关系。