2009-01-26 23 views

回答

1

我不知道MySQL和Apache的内部。

我的想法是这样的。内部的应用程序正在使用libmysql.dll。而且似乎路径不合适,所以它在PATH环境变量中搜索。 apache/bin将在PATH目录中。所以它正在从这条路走dll。如果该DLL不在该路径中,我认为它无法加载,因此失败。

编辑:添加这是在评论

  1. 尝试重新启动您的计算机加入的解决方案。我有与mysqlpp库相同的问题。路径指向mysql bin dir,但它仍然无法找到libmysql.dll - Daniel(1月26日6:55)

  2. Apache可能运行时使用的凭据与您自己的凭据不同(几乎肯定是这样,如果您运行它作为服务。)尝试将路径中的目录放置在SYSTEM路径中,而不是USER路径。 - moocha(18小时前)

+0

宾果,就是这样。 – 2009-01-26 05:46:44

1

阿帕奇像任何应用程序将假定文件位于同一目录下的当前目录路径(看看http://en.wikipedia.org/wiki/Working_directory)。如果它不在。当前工作目录通常与httpd.exe(主要可执行文件)所在的目录相同,但如果您执行类似以下操作,它实际上可能会不同: C:\ Apache2> bin \ httpd.exe

在这种情况下,Current工作目录是C:\ Apache2而不是C:\ Apache2 \ bin。

如果没有找到文件,那么应用程序自然会遍历PATH环境变量。 PATH环境变量是一个分号或逗号分隔的路径列表)来查找文件。

开始 - >运行 - >输入“cmd.exe”,然后在命令提示符下输入“echo%PATH%”查看当前的路径。

最后,如果文件没有找到,它只会出错。

作为提示,您可以使用Process Monitor实际跟踪应用程序尝试加载的文件以及加载它们的位置。 http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

我已经使用此工具来解决Apache之前和其他应用程序中的加载DLL问题。只需简单地为正在运行的应用程序添加一个过滤器,并让它只能嗅探文件读取。

相关问题