我将Windows Server 2008上运行的Web服务器作为64位虚拟主机进行pipe理。 所有服务软件都是独立运行的,而不是作为AMP堆栈的一部分。 数据驱动器几乎已经满了,我的系统pipe理员已经configuration了一个新的虚拟驱动器,有更多的空间。 我的任务是将一切从旧卷复制到新卷。
在创build卷时,我确保它是使用相同的卷types,文件系统,块大小等创build的。我停止了所有相关的服务(Apache,MySQL,它们都从C 运行 ,但其数据全部位于D :,包括日志),并复制所有的文件。
从这里,我尝试了两种不同的方法来使服务取决于新的数量,而忘记旧的。 MySQL没有任何问题,但Apache无法使用任何一种方法作为服务启动。 以下是系统事件日志中显示的内容:
Apache2.2服务终止服务特定的错误错误的function
没有任何内容出现在error.log 。
首先,我试着简单地改变盘符。 我拿了旧的D:并把它改成了任意的东西,并把D:分配给新的音量。 这产生了上面的错误。 我尝试用新的驱动器名称重新启动服务器,“以防万一”,但发生了同样的错误。 因为我没有完全理解Windows挂载点,所以我将驱动器号改回原来的状态,并确认Apache服务启动正常。
其次,我尝试更新所有的Apache和MySQLconfiguration文件。 每一次出现“D:”(不区分大小写)都改为F :(新的盘符)。 我知道configuration文件,所以我知道我发现每一个事件。 上面的错误再次发生,完全一样的方式。 为了让Web服务器备份并运行,我恢复了所有的更改,并成功启动了服务。
我收集的更多信息:
httpd.exe -k runservice )。 我还没有testing过的一件事是尝试只移动其中一个数据和日志位置到新的驱动器,而留下另一个。 我不认为这可能会有所作为。
这就是说,我实际上并不知道这里发生了什么。 我想不出为什么Apache只能通过改变日志文件和数据的位置来作为服务运行。
我非常感谢在这个问题上的任何build议或build议。 我很乐意进一步调查回应的build议。 如果你们中的任何人认为值得尝试只移动其中一个项目(日志或数据),我会尝试。 同样,如果你们中的任何一个人认为我太贴切的折扣权限,我会做一个更彻底的考试。
任何和所有的input是欢迎的! 我用尽了所有的想法。
第二天,在禁用服务器主要function的分配时间段内,我去尝试一些新的东西,并有一个新的想法,最终解决了这个问题! 细节如下,在我采取的步骤的上下文中。
我从最初的问题开始重复第二种方法。 我停止了服务,重新复制所有文件(在最后一天捕获修改),并编辑Apache和MySQLconfiguration文件以指向新驱动器(F :)。 我确认Apache正在产生同样的错误。 因为我已经打开了configuration文件,所以我决定尝试一下我最初没有尝试过的(真的应该有):
access.log和error.log ),所以我强制进行权限更改:只读添加/删除(以防万一),确保apache用户通过目录和文件本身recursion写访问。 我所学到的:其实我并不完全确定。 如果我对调查的各个步骤没有这么彻底,我会怀疑有问题的文件句柄或什么的,但是我看不到在重新启动后怎么可能。 但是,我已经确认了在解决问题的同时不能太快解除可能性的价值。 正如我在问题中提到的,我不认为今天的调查方式可能会有所作为,我仍然不知道为什么这样做! 但是你不能与结果争论。
结论:我的问题已经解决,但我不知道为什么。 如果有人有理论,请分享!
我不知道为什么更改驱动器号导致问题。 但是,错误The service terminated with service-specific error Incorrect function的错误The service terminated with service-specific error Incorrect function Windows服务中的The service terminated with service-specific error Incorrect function通常是由于物理RAM短缺造成的。
检查Apache文档的最低系统要求,如果需要,请尝试closures不必要的程序。
我刚刚遇到与使用WSGIPythonHome mod_wsgi相同的问题。 从nmjk的回答中,我决定检查权限,并意识到Apache用户对WSGIPythonHome目录没有权限。 添加适当的权限后,Apache正常启动。
也许值得仔细检查configuration中指定的所有path的权限,并逐行注释掉任何包含path的configuration,以找出导致问题的path。
我的问题是相同的,我已经把日志文件夹移动到一个新的驱动器。 我遵循了关于重命名error.log文件的指示,并尝试启动Apache,但是失败时出现了同样的错误。 所以我重启了我的Windows 10机器,Apache成功启动了。