我在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