我正在尝试让 apache rotatelogs.exe 工作(Apache 2.4,Windows 10 Pro)
这是配置:
ErrorLog "C:/Temp/logs/error.log"
ErrorLog "|C:/Temp/rotatelogs C:/Temp/logs/error.log 10" #option 1
<VirtualHost ...>
ErrorLog "|C:/Temp/rotatelogs C:/Temp/logs/error.log 10" #option 2
</VirtualHost>
apache 所在的文件夹位于“C:/Program files (x86)/apache/...”内,因此,为了防止出现空格转义问题,我将该位置移到了临时文件夹。(除了 rotatelogs.exe)
我收到错误:
(OS 2)The system cannot find the file specified. : AH00089: Couldn't start ErrorLog process 'C:/Temp/rotatelogs C:/Temp/logs/error.log 10'.
AH00015: Unable to open logs
我正在启动 apache 作为服务。我授予Local Service
该C:/Temp/logs
文件夹完全控制权限。
如果我使用选项#1(VirtualHost 之外的 ErrorLog 指令),则不会创建 ErrorLog,并且 apache 无法启动。
如果我使用选项#2(VirtualHost 内的 ErrorLog 指令),则会C:/Temp/logs/error.log
创建,但会因相同的Couldn't start ErrorLog process
错误而无法启动。
有没有什么办法可以让它工作?
答案1
我没有在 Windows 上使用 Apache httpd 的经验,但我希望二进制文件的名称有一个.exe
扩展名,并且您需要使用c:/Temp/rotatelogs.exe
而不是c:/Temp/rotatelogs
(当这是安装 rotatelogs 程序/二进制文件的路径时)。