现在我在WINDOW XP系统机器上装apache-httpd-2.2.19-win32-x86-no_ssl.msi,是在32位机器上安装的,当安装到最后的时候碰到了这么一个错误,图片如下
我就很纳闷,是进来这一个周很纳闷,这个安装文件我明明在WINDOWS 7上安装成功了,却在WINDOW XP上卡了壳,实在是不应该啊,按说XP系统比WIN7系统的兼容性要号的多啊,再说这个文件我是在官方网站上下载的,上面都是英文,大体意思是在WINDOWS系统上都能运行,这不坑爹吗。      我大体上看了一下MS-DOS下那些英文的意思,大体上看懂了,英语水平不是很好。现在翻译如下。************************************正在安装apache2.2服务Apache2.2服务成功安装测试httpd.conf文件……显示在这里的错误必须在服务能够启动之前修改过来。Httpd.exe:错误发生在35行后面没看懂Httpd.conf:Server Root必须有正确的指向。看看上面的错误,然后解决****************************************      然后我就一直纳闷啊,那个httpd.conf文件不都是写好了的吗,怎么会出现指向错误呢,没明白,毕竟这个安装文件在WIN7上好好的啊。      带着郁闷与疑问我上网查了一下,有用信息几乎木有啊,难为情啊,最终找到了点有用的,以下为网络内容,看是看懂了,就是道题apache自己的想法是什么,参考文档大部分都是英文的,很不好用。到现在没弄明白。      查阅了很多资料,对于apache中Server Root的解释基本都是这样的。Server Root用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个Server Root定义的路径之下。       1安装完apache,我的apache目录如下d:/myphp/apache2.2/,查看httpd.conf文件,发现Server Root定义为:Server Root “d:/myphp/apache2.2/”,不明白的是,apache的进程文件httpd.exe是位于d:/myphp/apache2.2/bin/的啊?和官方的解释又不一致,Server Root定义的牧师具体是以什么为标准定义的?       2同样以我安装的为例,假如我把Server Root的定义直接改为Server Root “,“,那这是具体指定的目录为? 我也是初学者,配置的环境是LAMP,和你的不太一样。但我感觉官方说的和你说的么有矛盾。HTTP的运行目录,他的安装目录,这是两个概念。比如DOS下的DIR命令,你可以在许多路径下运行他,但他的安装目录只有一个的。进程在运行中是可以改变运行目录的,因此你在设置文件中指定的是相对路径,那就是在D:/MYPHP/APACHE2.2/,而不是D:/MYPHP/apache2.2/bin/。      对于问题3,我个人的感觉是具体目录应该是,D://MYPHP/APACHE2.2/BIN,因为我对具体的源代码没有阅读,在这里猜测,在HTTPD运行后,他会根据Server Root改变当前运行环境,但你指定的是“,”,所以还是在当前目录。当这么设置可能会引发很多问题或错误,引发服务器不能正常运行或错误。