mCrypt відсутній після оновлення Ubuntu до 13.10


92

Після оновлення моєї системи з Ubuntu 13.04 до 13.10 з конфігураціями apache, mysql та php виникло кілька проблем.

Більшість з них я вирішив, але, здається, не можу запустити бібліотеку mCrypt. Пакет встановлений, тому мені не потрібно його отримувати. Сервер працює, і все здається нормально, але коли я намагаюся запустити php artisan serveLaravel 4, я отримую повідомлення про необхідність mCrypt.

Я зробив , php --ri mcryptі вихід був Extension 'mcrypt' not present. я спробував покласти extension=mcrypt.soв , /etc/php5/apache2/php.iniале це не спрацювало.

Будь-які ідеї?

Вихідні дані dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

Ви впевнені, що він встановленийdpkg --get-selections | grep php5
tlenss

apt-get install php5-mcrypt?
Лайош Верес

1
Я оновив запитання з виведенням команди @tlenss. sudo apt-get install php5-mcryptвиводить, що він встановлений і найновіша версія
Vuk Stanković

2
Можливо, відповідь тут допоможе вам askubuntu.com/questions/360646/…
tlenss

Знайшов на цій сторінці помилку запуску, яка дала мені рішення. Подяка
Вук Станкович,

Відповіді:


273

Думаю, я знайшов рішення на launchpad.net .

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

Це спрацювало для мене.


Дякуємо за відповідь, у OpenCart 1.5.6 ця проблема спричинила помилку ... Фатальна помилка: Виклик невизначеної функції mcrypt_create_iv () у / <шлях сюди> /system/library/encryption.php у рядку 8
AndyGaskell

Варто зазначити, що це рішення не працювало для мене з Laravel / Artisan, поки я також не зв’язав у /etc/php5/cli/conf.d
Девід М

Я отримую цю помилку. Який код мені потрібно оновити? В якому файлі мені потрібно оновити? Будь ласка,
підкажіть

Це спричинило не синхронізацію Webgility. Встановивши його, це добре виправлено. Дякую!
Райан

2
У Ubuntu 14.04 / PHP5.5 перший рядок не потрібен. php5enmod робить посилання.
Wolk

27

У мене була проблема з Ubuntu 14.04, і я зробив наступне, щоб її вирішити:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
Це те, що мені вдалося, у мене PHP версія 5.5.9-1ubuntu4.4, і я не мав каталогу /etc/php5/conf.d.
flcoder

14

У мене також є проблема з Ubuntu 14.04 після встановлення.

Спочатку увімкніть mcrypt

sudo gedit /etc/php5/apache2/php.ini

Додайте цю команду в будь-який рядок

extension=mcrypt.so

Створіть папку conf.d у / etc / php5

sudo mkdir conf.d

І всередині цієї папки створіть файл mcrypt.ini

sudo gedit mcrypt.ini 

Потім додайте цю команду до цього файлу

extension=mcrypt.so

Потім створіть посилання на файл

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

Увімкнути модуль mcrypt

sudo php5enmod mcrypt

Перезапустіть apache

sudo service apache2 restart

3
Вам не потрібно extension=mcrypt.soв php.ini. Він працює і без нього, оскільки розширення php (наприклад, mcrypt) знаходяться в окремих .iniфайлах.
машинний вирок

@machineaddict Для мене додавання 'extension = mcrypt.so' спрацювало після встановлення mcrypt. Lubuntu 14.04 Trusty Thar. Мене не завантажили автоматично
Clain Dsilva

11

З Ubuntu 13.10 до 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Працює для мене.


Для мене: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Однак файл містився десь в іншому місці. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/і запустив наведені вище команди. Взяті з www.devraju.com
machineaddict

3

У мене також була ця проблема з Ubuntu 14.04 та Nginx, але порадою для мене було перезапустити службу FPM, тому я зробив:

Встановіть бібліотеку

apt-get встановити php5-mcrypt

Знайдіть шлях

updatedb && знайдіть mcrypt.so

Встановіть шлях до mcrypt.so всередині файлу mcrypt.ini, що знаходиться в /etc/php5/mods-available/mcrypt.ini

extension = / usr / lib / php5 / 20121212 / mcrypt.so

А потім перезапустіть службу FPM

служба перезапуску php5-fpm


Мені просто потрібно було apt-get встановити php5-mcrypt, а потім перезапустити службу php5-fpm на моєму ubuntu 14.04.
deanpodgornik

Приємно .. У моєму випадку потрібно було знайти бібліотеку mcrypt вручну, оскільки розширення було порожнім у файлі mcrypt.ini.
Дерік Ліма

0

Інше рішення, якщо пакет вже встановлений:

sudo aptitude reinstall php5-mycript

Це спрацювало для мене після оновлення



0

У мене була та ж проблема з PHP 5.5.14, що працює на Mac OS X Yosemite. Я намагався встановити Laravel 5.0. І коли я спробував створити новий проект, я отримав помилку, як показано нижче (навіть коли я намагався запустити сервер laravel з php artisan serve

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

Тому я просто додав рядок нижче в кінці мого файлу php.ini за допомогою редактора nano:

extension=mcrypt.so
sudo nano /etc/php.ini

Нарешті, просто перезапустіть термінал і перезапустіть сервер додатків laravel за допомогою

php artisan serve

І це чудово працює!


0

щойно знайдений на php.net

Зверніть увагу, що для Ubuntu просто встановлення php5-mcrypt не змусило mcrypt працювати. Вам потрібно виконати такі команди як root, щоб увімкнути його:

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609


0

Іноді ця "проблема" виникає через те, що ви ввели команду майстра на локальній машині, а не на віртуальній машині. Якщо ви використовуєте Homestead, mcrypt уже встановлено. Вважайте це нагадуваннямhomestead ssh

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.