2014-09-30 88 views
7

我在線上關於在Ubuntu上安裝magento的教程,但我在配置中得到這個錯誤:php extension mcrypt must be loaded。我已經嘗試過了:sudo apt-get install php5-mcrypt但這對我沒有用。我與curl有同樣的問題,但當我嘗試:sudo apt-get install php5-curl它確實爲我工作。我如何解決這個與mcrypt?我已經嘗試重新啓動網絡服務器。必須加載php擴展mcrypt

+0

「沒有工作」究竟意味着什麼?它嘗試安裝和錯誤?它安裝了,但mcrypt在PHP中不可見?它是否自發地燃燒你的服務器? – 2014-09-30 08:51:56

+0

@MarkBaker顯然我的意思是刪除錯誤... – Loko 2014-09-30 08:54:17

+0

這不是顯而易見的,但仍然不明顯.....當sudo apt-get install php5-mcrypt'時會顯示什麼輸出?是否顯示任何錯誤消息?我當然無法分辨mcrypt或curl的安裝是否失敗,或者如果您只是沒有正確配置PHP來使用它們 – 2014-09-30 09:01:33

回答

31

希望你的系統是Ubuntu的,因爲你添加了標籤。

在Ubuntu上運行sudo apt-get install php5-mcrypt時,它實際上並沒有將擴展安裝到mods-available中。你需要將它符號鏈接起來。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini 

然後啓用擴展並重新啓動Apache。

sudo php5enmod mcrypt 
sudo service apache2 reload 
+2

我不確定你需要符號鏈接步驟,因爲當我調用'php5enmod'時,它總是放在正確的位置。另外,你可能會在Apache上使用'reload'而不是'restart'。 – Treffynnon 2014-09-30 08:57:24

+2

@Treffynnon,正確的,只是php5enmod會在這裏工作。是的,我們可以重新加載而不是重新啓動。編輯相同。謝謝... – 2014-09-30 09:07:14

+0

在Ubuntu 14.04中,只需啓用擴展並重新啓動apache即可。另見http://magento.stackexchange.com/q/36954/26260和http://askubuntu.com/q/380280/18928。 – user272735 2015-05-14 17:43:08

0

您應該編輯php.ini並刪除;在加載extension = php_mcrypt的行之前(你應該在之後重新啓動apache)。

+0

在什麼地圖是php.ini使用apache btw時? – Loko 2014-09-30 08:54:58

+0

run'<?php phpinfo(); ?>'並搜索'Loaded configuration file' – giorgio 2014-09-30 08:55:41

1

我不知道爲什麼你的PHP.INI與我的略有不同。或者爲什麼我不需要使用PHP5ENMOD。

這是我如何解決同樣的問題:

1)確保它是安裝在我的分佈,這是不是大多數人所遇到的問題。

2)檢查PHP配置,確保它已加載(不是)。以下是PHP配置信息頁的代碼:

<?php 
phpinfo(); 
?> 

在瀏覽器中運行它。如果這個Mcrypt啓用(這是),你會看到專門爲它simmilar信息的整個表(你會看到這個版本):

mcrypt 
mcrypt support enabled 
mcrypt_filter support enabled 
Version  2.5.8 
Api No 20021217 
Supported ciphers cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes 
Supported modes  cbc cfb ctr ecb ncfb nofb ofb stream 

Directive Local Value Master Value 
mcrypt.algorithms_dir no value no value 
mcrypt.modes_dir no value no value 

3)在同一頁上找位置你的PHP.INI文件。例如:

Configuration File (php.ini) Path /etc/php5/apache2 
Loaded Configuration File /etc/php5/apache2/php.ini 

我的分佈具有不同的位置這個文件,但對Linux只需添加或去掉註釋讓您有:

extension=mcrypt.so 

重新啓動Apache服務器,以確保。您現在應該檢查您的配置頁並查看MCRYPT已加載。

+0

'extension = mcrypt.so'做了這個工作 – turson 2016-03-24 09:24:27

0

嗨只是複製此CMD線和終端粘貼

sudo apt-get install php5-intl 
sudo apt-get install php5-xsl 
sudo php5enmod xsl 
sudo service apache2 restart 
0

在我的情況下,使用Nginx的和PHP-FPM,一旦啓用進一步擴展通過這個命令:sudo php5enmod mcrypt我需要重新啓動php5- fpm使用這個命令:sudo service php5-fpm restart