2013-04-12 58 views
3

我想安裝mcrypt以在本地機器開發環境中使用。我需要這個來安裝Magento。如何鏈接mcrypt?

我用這個答案install mcrypt,但出現以下錯誤:

$ brew link mcrypt 
Linking /usr/local/Cellar/mcrypt/2.5.8... Warning: Could not link mcrypt. Unlinking... 

Error: Could not symlink file: /usr/local/Cellar/mcrypt/2.5.8/include/mutils/mcrypt.h 
Target /usr/local/include/mutils/mcrypt.h already exists. You may need to delete it. 
To force the link and delete this file, do: 
    brew link --overwrite formula_name 

To list all files that would be deleted: 
    brew link --overwrite --dry-run formula_name 

試圖覆蓋鏈接,比如不允許建議。

$ brew link --overwrite mcrypt 
Linking /usr/local/Cellar/mcrypt/2.5.8... Warning: Could not link mcrypt. Unlinking... 

Error: Permission denied - /usr/local/include/mutils/mcrypt.h 

將此命令與「sudo」掛在一起不能解決此問題,因爲這也是不允許的。

運行php -m不顯示mcrypt的作爲已安裝的模塊,並且還引發以下錯誤:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/mcrypt.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/mcrypt.so, 9): image not found in Unknown on line 0 

這一切看來,我不能鏈接這是相關的事實,我做不到似乎解決了這個問題。有沒有人遇到過這個?感謝您的任何幫助,您可以提供。

+0

你使用的是什麼linux發行版,你是否嘗試以root用戶身份安裝? –

+0

@ R.S - 'brew'命令表示他在使用'homebrew',這表示他在使用OS X. –

+0

是的,我正在使用OS X山獅。對不起,我從一開始就沒有提到這一點。 – Thomas

回答

3

托馬斯,從我可以在上面看到它看起來像你正在嘗試使用自制的mcrypt包安裝到您的系統,但mcrypt已經被另一個軟件包管理系統安裝(或默認出貨在OS X版本 - 我不要這些東西)

跟上由於mcrypt的是已經在你的* nix系統上安裝,你需要做的是安裝PHP擴展爲的mycrypt,或安裝一個支持mcrypt的PHP版本。

我通常喜歡使用hp-osx.liip.ch包(這似乎是Marc Liyanage的舊版entropy.ch包的後繼者)。這會將一個獨立版本的PHP安裝爲二進制文件,並且應該有運行Magento所需的庫。

+0

我的印象是'brew install mcrypt php53-mcrypt'安裝了php的擴展名 - 你知道這是否正確嗎?如果這是正確的,我已經安裝了擴展,只需要鏈接,但一直無法這樣做。 – Thomas

+0

@thomas我更多的是'ports'人,這個東西是無盡的排列級聯,但是希望這會有所幫助:命令'brew install mcrypt'安裝'mycrypt'。命令'brew install php53-mcrypt'安裝帶有mycrypt擴展名的PHP 5.3。命令'brew install mcrypt php53-mcrypt'安裝'mcrypt',然後安裝帶有mcrypt擴展名的PHP 5.3。 Homebrew不會創建mcrypt的符號鏈接,因爲**在/ usr/local中已經有mcrypt **。有了自制啤酒,這可能是一個壞主意。這聽起來像你所需要的只是使用mcrypt的PHP。 –

+0

@Thomas你得到PHP錯誤,因爲它無法加載擴展:)我有同樣的問題。如果你運行locate命令。例如。找到mcrypt.so它會顯示它所在的位置。然後假定你正在使用股票PHP編輯/etc/php.ini找到mcrypt行並替換路徑。如果在我的Mac上失敗了,我會用真正的LAMP堆棧來運行magento開發,並且它的工作效果會更好。 –

3

我其實第二次遇到這個問題。不記得我是如何第一次解決它的。這次爲我工作的是我實際上刪除了mutils下的mcrypt.h文件。然後當我運行brew link --overwrite mcrypt它成功鏈接。然後我跑了brew install php53-mcrypt,這似乎有伎倆。同時重新啓動服務器。

如果這不適用於每個人,但它對我而言並不會感到驚訝。