2014-06-20 17 views
0

我的本地Apache有问题。 当我启动服务,我的Apache的error.log中充满了:Apache rotatelogs意外失败

管道日志程序“C:/ Program Files文件(86)/ Apache软件基金会/ APACHE2.2 /斌/ ROTATELOGS.EXE C:/ Program Files(x86)/ Apache Software Foundation/Apache2.2/logs/access-%Y-%m-%d.log 86400 +120'意外失败

无法识别“C:\ Program”作为内部或外部命令...

有没有人知道问题是什么? 我想原因是路径中的空格字符。 我的httpd.conf看起来是这样的:

CustomLog "|C:/Program Files (x86)/Apache Software Foundation/Apache2.2/bin/rotatelogs.exe C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/access-%Y-%m-%d.log 86400 +120" common 
ErrorLog "|C:/Program Files (x86)/Apache Software Foundation/Apache2.2/bin/rotatelogs.exe C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/error-%Y-%m-%d.log 86400 +120" 

当我把它写在报价的迹象,我想空白就没有问题了。 任何人都可以在这里帮忙吗?

我使用Apache 2.2.22

+0

如果设置一个VAR它的工作原理(比如'APACHE_HOME = C:/ Program Files(x86)/ Apache Software Foundation/Apache2.2')并且以这种方式运行它? – fxm

+0

谢谢你的回复。试过了,没有区别:( –

回答

0

该路径包含空格。在这种情况下应该被引用:

'C:/Program Files (x86)/Apache Software Foundation/Apache2.2/bin/rotatelogs.exe' 

全样本:

ErrorLog "|'C:/Program Files (x86)/Apache Software Foundation/Apache2.2/bin/rotatelogs.exe' 'C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/error-%Y-%m-%d.log' 86400 +120" 

此外,rotatelog路径可以用相对路径被称为:

ErrorLog "|bin/rotatelogs.exe 'C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/error-%Y-%m-%d.log' 86400 +120"