Ekstensi Mcrypt hilang di server 14,04 untuk mysql


112

Ekstensi mcrypt php di ubuntu 14.04 menunjukkan bahwa ia diinstal dengan benar, tetapi phpmyadmin mengatakan:

 The mcrypt extension is missing. Please check your PHP configuration.

Konfigurasi php saya saat ini ada di sini . Jika Anda memerlukan informasi lagi, silakan hubungi saya melalui komentar.

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

7
Jawaban yang diterima bukan praktik terbaik. Jawaban paling sederhana, dan benar: http://askubuntu.com/a/477608/139249 juga memiliki suara terbanyak.
mike stewart

Untuk referensi orang lain, jawaban "paling sederhana" tidak berhasil untuk saya. php5enmod mcryptmembeku Apache. php5dismod mcryptmembebaskannya lagi. Saya pergi dengan jawaban yang diterima dan memodifikasi jalan untuk extension=..dan kali ini php5enmod mcryptberhasil. Jadi ya, itu komprehensif dan harus menjadi jawaban yang diterima.
Oliver Williams

Jawaban:


138

Coba ini:

sudo updatedb 
locate mcrypt.ini

Seharusnya menunjukkannya terletak di / etc / php5 / mods-available

locate mcrypt.so

Edit mcrypt.ini dan ubah ekstensi untuk mencocokkan jalur ke mcrypt.so, contoh:

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

Sekarang ini:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

Pastikan file baru ada di sini (harus dibuat secara otomatis dari masalah di atas)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

Jika tidak, lakukan hal berikut

Buat tautan simbol sekarang

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

Mulai ulang Apache

sudo service apache2 restart

Mulai ulang php5 atau php5-fpm

sudo service php5 restart

Ini salah! Saya pikir Anda memaksudkan sesuatu seperti: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini Dan bukan sebaliknya.
wolfdawn

14
Melakukan hanya php5enmod mcryptbekerja dengan lancar untuk saya.
diosney

3
Menjalankan php5enmod mcryptakan membuat tautan simbolik itu untuk Anda. Tidak perlu melakukan itu secara manual (yaitu Anda dapat melewati ln -sperintah).
Serrano

1
menjalankan php5enmod mcryptadalah cara Ubuntu / Debian yang benar. Meskipun jawaban ini akan berhasil, rumit dan bukan praktik terbaik.
mike stewart

1
banyak langkah di atas tidak diperlukan. Lihat jawaban @ MURATSPLAT.
Raptor

155

Coba lakukan ini saja:

sudo php5enmod mcrypt

Lalu:

sudo service apache2 restart 

Saya telah menginstal Ubuntu 14.04 baru (versi desktop) ke komputer saya. Cara ini berfungsi untuk mengaktifkan mcrypt yang sudah diinstal.


5
Catatan, jika Anda menjalankan nginx dengan php5-fpm - lalu php5-fpm service restart(atau memuat ulang jika akhirnya ditambal)
mike stewart

2
Apa yang dilakukan kedua perintah itu adalah ini: baris pertama mengaktifkan modul bernama 'mcrypt', dan kemudian restart apache2 untuk memperbarui konfigurasi. Anda dapat melihat modul yang diaktifkan dari /etc/apache2/mods-available. Nikmati hidup LAMP :)
itiskj

sudo service apache2 reloadsudah cukup, tidak ada restart sebenarnya diperlukan (pada 14,04 pula, itulah yang saya coba)
Jasper

55

Instal mcryptekstensi untuk PHP, Aktifkan, dan Restart Apache. Berikut adalah perintah yang harus dilakukan:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

1
Sederhana. Sempurna. Bekerja tanpa masalah, setidaknya bagi saya di Ubuntu 14.04.1 LTS (trusty)
Gor

Ini bekerja di ubuntu 14.10 juga
Coca Akat

Saya sarankan Anda tidak memasukkan mcryptdi baris pertama Anda. Secara implisit diinstal sebagai dependensi php5-mcrypt, tetapi jika Anda menginstalnya secara eksplisit, apt-get tidak akan tahu untuk menghapusnya jika nanti Anda memilih untuk tidak menginstal ph5-mcryptpaket.
beldaz

@ Beldaz setidaknya ada satu server di mana php5-mcrypt diinstal sesuai apt-get tetapi mcrypt hilang karena modul pnp yang tidak diaktifkan yang mengarah ke masalah instalasi joomla. jadi termasuk mcrypt masuk akal bagi saya.
tagMacher

6

The php5-mcrypt paket Ubuntu menginstal file konfigurasi mcrypt.inike /etc/php5/conf.d/yang merupakan tata letak direktori PHP konfigurasi lama.

Cara saat ini bekerja untuk mengaktifkan modul di PHP5 adalah dengan meletakkan file ini di /etc/php5/mods-availabledirektori. Kemudian, untuk mengaktifkan modul di PHP5, Anda harus membuat tautan simbolis ke file ini terkait dari /etc/php5/apache2/conf.ddirektori untuk mengaktifkan modul ketika PHP digunakan di bawah Apache atau / dan dari /etc/php5/cli/conf.djika Anda ingin memiliki modul ini diaktifkan ketika Anda menggunakan PHP di luar Apache, dalam skrip dijalankan di baris perintah atau dari crontab.

Perhatikan juga bahwa di conf.ddirektori, Anda dapat membuat tautan ke file ini dengan meletakkan nomor di depannya untuk memuat modul dalam urutan tertentu. Berguna ketika Anda perlu memuat modul tergantung yang lain.

Tentu saja, jangan lupa untuk me-restart Apache jika Anda telah mengaktifkan modul untuk Apache:

 sudo service apache2 restart

4

Instalasi server 14,04 saya hanya diperlukan (setelah php5-mcrypt diinstal)

sudo php5enmod mcrypt
sudo service apache2 restart

3

Jika Masalah masih terjadi,

aktifkan modul dengan menambahkan: extension=mcrypt.soke

/etc/php5/cli/php.ini

dan

/etc/php5/apache2/php.ini


1
Bagi saya menambahkan 'ekstensi = mcrypt.so' bekerja setelah menginstal mcrypt. Lubuntu 14.04 Trusty Thar
Clain Dsilva

Ini berfungsi dan WAY lebih sederhana daripada jawaban yang diterima ... yang juga akan rusak ketika pembaruan.
Eric

Saya mengikuti setiap instruksi di sini dan di tempat lain tetapi sia-sia. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Versi server: 5.7.10 - MySQL - Versi klien basis data: libmysql - 5.5.47 - phpMyAdmin Versi: 4.0.10deb1 .... ada yang punya ide?
Jadeye

2

Di Ubuntu 16.04 LTS, untuk mengaktifkan modul mcrypt, dengan php 5.6:

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

atau dengan php 7.0:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

lalu

sudo service apache2 restart

1

Dengan PHP 7

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart

$ sudo phpenmod mcrypt PERINGATAN: File module mcrypt ini tidak ada di bawah /etc/php/7.1/mods-available
Yevgeniy Afanasyev

$ sudo /etc/init.d/apache2 restart sudo: /etc/init.d/apache2: perintah tidak ditemukan
Yevgeniy Afanasyev

0

Anda harus dapat menginstal ekstensi mcrypt untuk PHP dengan menjalankan:

sudo apt-get install php5-mcrypt

baik, ia mengatakan bahwa itu (command line) diinstal dengan benar, tetapi entah bagaimana hilang dari server seperti yang disebutkan di atas
matthapkidokarate

1
@ jkt123: Saya perhatikan ketika Anda menginstal beberapa modul php seperti php5-mcrypt di Ubuntu, semua file ada setelahnya tetapi modul tidak diaktifkan di konfigurasi PHP utama. Anda harus mengaktifkannya secara manual seperti dijelaskan dalam jawaban yang diterima.
Benoit

itu tidak berfungsi tanpa menambahkan ekstensi = mcrypt.so ke php.ini
Eric

0

Perhatikan bahwa di Ubuntu 14.04 php5-mcrypt ada di repositori universe yang bisa dinonaktifkan. Dalam hal ini untuk menginstalnya, Anda harus mengaktifkan repositori dengan:

sudo add-apt-repository universe

0

Anda perlu mengaktifkan modul mcrypt:

sudo php5enmod mcrypt
sudo service apache2 restart

0

Ini adalah cara terbaik untuk menambahkan ekstensi php 5.5 mcrypt di Ubuntu 14.04 Server

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

0

@ Jawaban Kevin bekerja untuk saya, tetapi saya harus menjalankan mkdir -p /etc/php5/apache2/conf.d/dan menjalankan secara manual sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.iniuntuk mulai bekerja. sudo php5enmod mcryptbekerja dengan baik untuk symlink pertama.

Catatan: Saya menjalankan PHP5-FPM. Itu mungkin perbedaannya.


0

Bagi mereka yang menemukan ini, untuk Ubuntu 16.04 (menggunakan PHP7), inilah yang saya lakukan untuk mengaktifkan mcrypt:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.