2009-01-26 44 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問題。只需簡單地爲正在運行的應用程序添加一個過濾器,並讓它只能嗅探文件讀取。

相關問題