mCrypt tidak ada setelah Ubuntu memutakhirkan ke 13.10

92

Setelah saya memutakhirkan sistem saya dari Ubuntu 13.04 ke 13.10 beberapa masalah telah terjadi dengan konfigurasi apache, mysql dan php.

Saya menyelesaikan sebagian besar dari mereka tetapi saya tidak bisa membuat perpustakaan mCrypt berfungsi. Paket sudah diinstal jadi saya tidak perlu apt-get it. Server berfungsi dan semuanya tampak baik-baik saja, tetapi ketika saya mencoba menjalankan php artisan servedengan Laravel 4, saya mendapat pesan bahwa mCrypt diperlukan.

Saya melakukan php --ri mcryptdan output adalah Extension 'mcrypt' not present. saya telah mencoba menempatkan extension=mcrypt.soke /etc/php5/apache2/php.initapi tidak berhasil.

Ada ide?

Output dari 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
Vuk Stanković
sumber
Apakah Anda yakin sudah terpasangdpkg --get-selections | grep php5
tlenss
apt-get install php5-mcrypt?
Lajos Veres
1
Saya telah memperbarui pertanyaan dengan output perintah @tlenss. sudo apt-get install php5-mcryptkeluaran yang telah diinstal dan versi terbaru
Vuk Stanković
2
Mungkin jawabannya di sini akan membantu Anda askubuntu.com/questions/360646/…
tlenss
Menemukan bug launchpad di halaman itu yang memberi saya solusi. Terima kasih
Vuk Stanković

Jawaban:

273

Saya rasa saya menemukan solusinya di launchpad.net .

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

Ini berhasil untuk saya.

Vuk Stanković
sumber
Terima kasih atas jawaban ini, di OpenCart 1.5.6 masalah ini menyebabkan kesalahan ... Kesalahan fatal: Panggilan ke fungsi yang tidak ditentukan mcrypt_create_iv () di / <path here> /system/library/encryption.php on line 8
AndyGaskell
Sebagai catatan, solusi ini tidak berhasil untuk saya dengan Laravel / Artisan sampai saya juga terhubung dengan sym-linked di /etc/php5/cli/conf.d
David M
Saya mendapatkan kesalahan ini. Kode mana yang harus saya perbarui? Di file mana saya perlu memperbarui? Mohon sarankan ..
user2089987
Ini menyebabkan Webgility tidak disinkronkan. Memasangnya memperbaikinya dengan benar. Terima kasih!
Ryan
2
Dengan Ubuntu 14.04 / PHP5.5 baris pertama tidak diperlukan. php5enmod membuat tautan.
Wolk
27

Saya mengalami masalah ini dengan Ubuntu 14.04 dan saya melakukan hal berikut untuk menyelesaikannya:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart
eaykin
sumber
1
Inilah yang berhasil untuk saya, saya memiliki PHP Versi 5.5.9-1ubuntu4.4, dan saya tidak memiliki direktori /etc/php5/conf.d.
flcoder
14

Saya juga memiliki masalah ini dengan Ubuntu 14.04 setelah menginstal.

Pertama aktifkan mcrypt

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

Tambahkan perintah ini di baris mana pun

extension=mcrypt.so

Buat folder conf.d di / etc / php5

sudo mkdir conf.d

Dan di dalam folder itu buat file mcrypt.ini

sudo gedit mcrypt.ini 

Kemudian tambahkan perintah ini ke file itu

extension=mcrypt.so

Kemudian buat tautan ke file

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

Aktifkan modul mcrypt

sudo php5enmod mcrypt

Mulai ulang apache

sudo service apache2 restart
Daroath
sumber
3
Anda tidak perlu extension=mcrypt.somasuk php.ini. Ini juga berfungsi tanpanya, karena ekstensi php (seperti mcrypt) ada dalam .inifile terpisah .
machineaddict
@machineaddict Bagi saya, menambahkan 'extension = mcrypt.so' bekerja setelah menginstal mcrypt. Lubuntu 14.04 Trusty Thar. Saya tidak dimuat secara otomatis
Clain Dsilva
11

Dari Ubuntu 13.10 hingga 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Bekerja untuk saya.

Aleftos
sumber
Bagi saya: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Namun, file tersebut terletak di tempat lain. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/dan menjalankan perintah di atas. Diambil dari www.devraju.com
machineaddict
3

Saya juga mengalami masalah ini dengan Ubuntu 14.04 dan Nginx, tetapi tip bagi saya adalah memulai ulang layanan FPM, jadi saya lakukan:

Instal perpustakaan

apt-get install php5-mcrypt

Temukan jalannya

updatedb && mencari mcrypt.so

Setel jalur mcrypt.so di dalam file mcrypt.ini yang terletak di /etc/php5/mods-available/mcrypt.ini

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

Dan kemudian restart layanan FPM

layanan php5-fpm restart

Deric Lima
sumber
Saya hanya perlu menginstal apt-get php5-mcrypt dan kemudian layanan php5-fpm restart pada ubuntu 14.04 saya.
deanpodgornik
Bagus..Dalam kasus saya, saya perlu mencari mcrypt lib secara manual karena ekstensi kosong di file mcrypt.ini.
Deric Lima
0

Solusi lain jika paket sudah diinstal:

sudo aptitude reinstall php5-mycript

Ini berhasil untuk saya setelah melakukan peningkatan

rreimi
sumber
0

Coba kode ini:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
Indrajeet Singh
sumber
0

Saya memiliki masalah yang sama dengan PHP 5.5.14 yang berjalan di Mac OS X Yosemite. Saya mencoba menginstal Laravel 5.0. Dan ketika saya mencoba membuat proyek baru saya mendapat kesalahan seperti di bawah ini (bahkan ketika saya mencoba memulai server laravel dengan 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$ 

Jadi saya baru saja menambahkan baris di bawah ini di akhir file php.ini saya dengan editor nano:

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

Terakhir, mulai ulang Terminal dan mulai ulang server aplikasi laravel dengan

php artisan serve

Dan itu bekerja dengan baik!

alexventuraio
sumber
0

baru saja ditemukan di php.net

Catatan, untuk Ubuntu, menginstal php5-mcrypt saja tidak akan membuat mcrypt berfungsi. Anda perlu menjalankan perintah berikut sebagai root untuk mengaktifkannya:

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

SharkWeb
sumber
0

Terkadang, "masalah" ini terjadi karena Anda memasukkan perintah artisan pada mesin lokal Anda, bukan pada mesin virtual Anda. Jika Anda menggunakan Homestead, mcrypt sudah diinstal. Anggap saja sebagai pengingat untukhomestead ssh

Chukky Nze
sumber