我在Windows机器上。这似乎应该是不必要的,但是当我这样做的时候,一切都突然发生了。我的路线有问题吗?我是否需要添加一些内容以避免必须复制DLL?为什么我必须将libmysql.dll复制到apache/bin目录才能正确加载PHP扩展?
回答
我不知道MySQL和Apache的内部。
我的想法是这样的。内部的应用程序正在使用libmysql.dll。而且似乎路径不合适,所以它在PATH环境变量中搜索。 apache/bin将在PATH目录中。所以它正在从这条路走dll。如果该DLL不在该路径中,我认为它无法加载,因此失败。
编辑:添加这是在评论
尝试重新启动您的计算机加入的解决方案。我有与mysqlpp库相同的问题。路径指向mysql bin dir,但它仍然无法找到libmysql.dll - Daniel(1月26日6:55)
Apache可能运行时使用的凭据与您自己的凭据不同(几乎肯定是这样,如果您运行它作为服务。)尝试将路径中的目录放置在SYSTEM路径中,而不是USER路径。 - moocha(18小时前)
阿帕奇像任何应用程序将假定文件位于同一目录下的当前目录路径(看看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问题。只需简单地为正在运行的应用程序添加一个过滤器,并让它只能嗅探文件读取。
- 1. 为什么我必须重新加载页面才能正确显示地图?
- 2. 必须加载PHP扩展“mcrypt”。
- 3. 必须加载PHP扩展“curl”
- 4. 安装 - 必须加载PHP扩展“pdo_mysql”
- 5. 必须加载php扩展mcrypt
- 6. 必须加载memcache扩展才能使用此后端
- 7. 我必须打开什么VS扩展/设置才能使用此功能?
- 8. 为什么我必须utf8_decode()我的MySQL列值才能正确显示?
- 9. 为什么ttk.Separator不能正确扩展?
- 10. 为什么我必须添加System.Data.Entity才能使用System.Data.Objects?
- 11. 为什么我必须点击刷新才能让js滑块正确渲染?
- 12. 为什么PHP不加载SQLite扩展?
- 13. PHP-GD:PHP扩展GD必须加载及无法找到包
- 14. Erlang新手:为什么我必须重新启动才能加载新代码
- 15. 为什么我必须将FTP流复制到另一个变量才能将其返回给调用方法?
- 16. Magento:必须加载cURL扩展
- 17. 为什么我必须总结才能找到重复的号码?
- 18. 为什么我必须双击才能激活jquery功能?
- 19. 为什么不将jQuery加载到我的Chrome扩展中?
- 20. 为什么我必须在后台登录两次才能登录?
- 21. 为什么我必须用HoloEverywhere扩展S ***活动?
- 22. 为什么我必须使用“this”从扩展类中调用扩展方法?
- 23. 为什么next_post_link必须调用两次才能正常工作?
- 24. 为什么我必须重复输入才能让我继续前进?
- 25. Symfony 1.4&APC - “必须加载apc扩展才能使用此后端!”
- 26. Zend错误:必须加载apc扩展才能使用此后端
- 27. 为什么我必须施展此声明才能获得结果?
- 28. 为什么const类成员必须是静态的才能正确优化?
- 29. 我必须运行我的宏两次才能正确
- 30. 为什么我必须多次按下键才能移动?
宾果,就是这样。 – 2009-01-26 05:46:44