Phần mở rộng Mcrypt bị thiếu trong máy chủ 14.04 cho mysql


112

Phần mở rộng php mcrypt trên Ubuntu 14.04 cho thấy nó được cài đặt đúng cách, nhưng phpmyadmin nói:

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

Cấu hình php hiện tại của tôi là ở đây . Nếu bạn cần thêm thông tin, xin vui lòng liên hệ với tôi thông qua các ý kiến.

$ 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
Câu trả lời được chấp nhận không phải là thực hành tốt nhất. Các câu trả lời đơn giản nhất, và chính xác: http://askubuntu.com/a/477608/139249 cũng có nhiều phiếu nhất.
mike stewart

Đối với tài liệu tham khảo của người khác, câu trả lời "đơn giản nhất" không phù hợp với tôi. php5enmod mcryptđóng băng Apache. php5dismod mcryptgiải phóng nó một lần nữa. Tôi đã đi với câu trả lời được chấp nhận và sửa đổi đường dẫn cho extension=..và lần này php5enmod mcryptđã làm việc. Vì vậy, có, nó toàn diện và nên là câu trả lời được chấp nhận.
Oliver Williams

Câu trả lời:


138

Thử đi:

sudo updatedb 
locate mcrypt.ini

Nên hiển thị nó ở / etc / php5 / mods-Available

locate mcrypt.so

Chỉnh sửa mcrypt.ini và thay đổi tiện ích mở rộng để khớp đường dẫn đến mcrypt.so, ví dụ:

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

Bây giờ điều này:

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

Xác minh rằng các tệp mới tồn tại ở đây (chúng phải được tạo tự động từ sự cố ở trên)

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

Nếu không thì làm như sau

Tạo liên kết biểu tượng ngay bây giờ

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

Khởi động lại Apache

sudo service apache2 restart

Khởi động lại php5 hoặc php5-fpm

sudo service php5 restart

Cái này sai! Tôi nghĩ bạn có ý gì đó như: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini Và không phải là cách khác.
sói

14
Làm chỉ php5enmod mcryptlàm việc trơn tru cho tôi.
diosney

3
Chạy php5enmod mcryptsẽ tạo ra những liên kết tượng trưng cho bạn. Không cần phải làm điều đó bằng tay (tức là bạn có thể bỏ qua các ln -slệnh).
Serrano

1
chạy php5enmod mcryptlà cách Ubuntu / Debian chính xác. Câu trả lời này mặc dù sẽ làm việc, là cồng kềnh và không phải là một thực hành tốt nhất.
mike stewart

1
nhiều bước trên không cần thiết Xem câu trả lời của @ MURATSPLAT.
Raptor

155

Hãy thử làm điều này:

sudo php5enmod mcrypt

Và sau đó:

sudo service apache2 restart 

Tôi đã cài đặt Ubuntu 14.04 mới (phiên bản dành cho máy tính để bàn) vào máy tính của mình. Cách này hoạt động để cho phép mcrypt đã được cài đặt.


5
Lưu ý, nếu bạn đang chạy nginx với php5-fpm - thì php5-fpm service restart(hoặc tải lại nếu cuối cùng nó đã được vá)
mike stewart

2
Hai lệnh này làm gì: dòng thứ 1 đang kích hoạt mô-đun có tên 'mcrypt', sau đó khởi động lại apache2 để cập nhật cấu hình. Bạn có thể thấy mô-đun kích hoạt từ /etc/apache2/mods-available. Tận hưởng cuộc sống LAMP :)
itiskj

sudo service apache2 reloadlà đủ, không cần khởi động lại thực sự (dù sao vào ngày 14.04, đó là những gì tôi đã thử)
Jasper

55

Cài đặt mcrypttiện ích mở rộng cho PHP, Kích hoạt nó và Khởi động lại Apache. Sau đây là các lệnh để làm:

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

1
Đơn giản. Hoàn hảo. Hoạt động không có vấn đề, ít nhất là đối với tôi trên Ubuntu 14.04.1 LTS (đáng tin cậy)
Gor

Nó cũng hoạt động trên Ubuntu 14.10
Coca Akat

Tôi khuyên bạn không nên bao gồm mcrypttrong dòng đầu tiên của bạn. Nó được cài đặt hoàn toàn như một phần phụ thuộc của nó php5-mcrypt, nhưng nếu bạn cài đặt một cách rõ ràng thì apt-get sẽ không biết gỡ bỏ nó nếu sau đó bạn chọn hủy cài đặt ph5-mcryptgói.
beldaz

@beldaz có ít nhất một máy chủ nơi php5-mcrypt được cài đặt theo apt-get nhưng mcrypt bị thiếu do mô-đun pnp không được kích hoạt dẫn đến sự cố cài đặt j Joomla. vì vậy bao gồm mcrypt có ý nghĩa đối với tôi.
tagMacher

6

Các php5-Mcrypt Ubuntu gói cài đặt các tập tin cấu hình mcrypt.inivào /etc/php5/conf.d/đó là bố trí thư mục PHP cấu hình cũ.

Cách làm việc hiện tại để kích hoạt các mô-đun trong PHP5 là đặt các tệp ini trong /etc/php5/mods-availablethư mục. Sau đó, để kích hoạt mô-đun trong PHP5, bạn phải tạo một liên kết tượng trưng đến các tệp ini liên quan từ /etc/php5/apache2/conf.dthư mục để bật mô-đun khi PHP được sử dụng trong Apache hoặc / và /etc/php5/cli/conf.dnếu bạn muốn bật mô-đun này khi bạn sử dụng PHP bên ngoài Apache, trong các kịch bản chạy ở dòng lệnh hoặc từ crontab.

Cũng lưu ý rằng trong conf.dthư mục, bạn có thể tạo liên kết đến tệp ini bằng cách đặt một số ở phía trước để có các mô-đun được tải theo một thứ tự cụ thể. Sử dụng đầy đủ khi bạn cần tải một mô-đun tùy thuộc vào một mô-đun khác.

Tất nhiên, đừng quên khởi động lại Apache nếu bạn đã kích hoạt mô-đun cho Apache:

 sudo service apache2 restart

4

Chỉ cần cài đặt máy chủ 14.04 của tôi (sau khi cài đặt php5-mcrypt)

sudo php5enmod mcrypt
sudo service apache2 restart

3

Nếu sự cố vẫn xảy ra,

kích hoạt mô-đun bằng cách thêm: extension=mcrypt.sovào

/etc/php5/cli/php.ini

/etc/php5/apache2/php.ini


1
Đối với tôi, việc thêm 'extension = mcrypt.so' đã hoạt động sau khi cài đặt mcrypt. Lubfox 14.04 Trusty Thar
Clain Dsilva

Điều này hoạt động và là CÁCH đơn giản hơn sau đó câu trả lời được chấp nhận ... cũng sẽ bị hỏng khi cập nhật.
Eric

Tôi làm theo mọi chỉ dẫn ở đây và ở những nơi khác nhưng vô ích. ubfox 14.04.3 - PHP 5.5.9-1ubfox4.14 - nginx / 1.8.1 - Phiên bản máy chủ: 5.7.10 - MySQL - Phiên bản máy khách cơ sở dữ liệu: libmysql - 5.5.47 - Phiên bản phpMyAdmin: 4.0.10deb1 .... có ai có ý kiến ​​gì không?
Jadeye

2

Trong Ubuntu 16.04 LTS, để kích hoạt mô-đun mcrypt, với php 5.6:

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

hoặc với php 7.0:

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

và sau đó

sudo service apache2 restart

1

Với PHP 7

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

$ sudo phpenmod mcrypt CẢNH BÁO: Tệp mô-đun mcrypt ini không tồn tại trong /etc/php/7.1/mods-av Available
Yevgeniy Afanasyev

$ sudo /etc/init.d/apache2 khởi động lại sudo: /etc/init.d/apache2: không tìm thấy lệnh
Yevgeniy Afanasyev

0

Bạn sẽ có thể cài đặt phần mở rộng mcrypt cho PHP bằng cách chạy:

sudo apt-get install php5-mcrypt

tốt, nó nói rằng nó (dòng lệnh) được cài đặt đúng, nhưng bằng cách nào đó nó bị thiếu khỏi máy chủ như đã đề cập ở trên
matthapkidokarate

1
@ jkt123: Tôi nhận thấy rằng khi bạn cài đặt một số mô-đun php như php5-mcrypt trong Ubuntu, tất cả các tệp đều ở đó nhưng mô-đun không được bật trong cấu hình PHP chính. Bạn phải kích hoạt nó bằng tay như được mô tả trong câu trả lời được chấp nhận.
Benoit

nó không hoạt động mà không thêm phần mở rộng = mcrypt.so vào php.ini
Eric

0

Lưu ý rằng trong Ubuntu 14.04, php5-mcrypt nằm trong kho vũ trụ có thể bị vô hiệu hóa. Trong trường hợp này để cài đặt nó, bạn phải kích hoạt kho lưu trữ với:

sudo add-apt-repository universe

0

Bạn cần kích hoạt mô-đun mcrypt:

sudo php5enmod mcrypt
sudo service apache2 restart

0

Đây là cách tốt nhất để thêm tiện ích mở rộng php 5.5 mcrypt trên 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

Câu trả lời của @ Kevsin làm việc cho tôi, nhưng tôi phải chạy mkdir -p /etc/php5/apache2/conf.d/và tự chạy sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.iniđể đi làm. sudo php5enmod mcryptlàm việc tốt cho các liên kết đầu tiên.

Lưu ý: Tôi đang chạy PHP5-FPM. Đó có thể là sự khác biệt.


0

Đối với những người tìm thấy điều này, đối với Ubuntu 16.04 (sử dụng PHP7), đây là những gì tôi đã làm để kích hoạt mcrypt:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.