mCrypt không xuất hiện sau khi nâng cấp Ubuntu lên 13.10


92

Sau khi tôi đã nâng cấp hệ thống của mình từ Ubuntu 13.04 lên 13.10, một số sự cố đã xảy ra với cấu hình apache, mysql và php.

Tôi đã giải quyết hầu hết chúng nhưng dường như tôi không thể làm cho thư viện mCrypt hoạt động. Gói đã được cài đặt nên tôi không cần phải tải xuống. Máy chủ hoạt động và mọi thứ có vẻ ổn, nhưng khi tôi cố gắng chạy php artisan servevới Laravel 4, tôi nhận được thông báo rằng cần có mCrypt.

Tôi đã làm php --ri mcryptvà đầu ra là Extension 'mcrypt' not present. tôi đã cố gắng đưa extension=mcrypt.sovào /etc/php5/apache2/php.ininhưng nó không hoạt động.

Bất kỳ ý tưởng?

Đầu ra của 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

Bạn có chắc là nó đã được cài đặt khôngdpkg --get-selections | grep php5
tlenss

apt-get cài đặt php5-mcrypt?
Lajos Veres

1
Tôi đã cập nhật câu hỏi với đầu ra của lệnh @tlenss. sudo apt-get install php5-mcryptkết quả đầu ra rằng nó đã được cài đặt và phiên bản mới nhất
Vuk Stanković

2
Có thể câu trả lời ở đây sẽ giúp bạn hỏiubuntu.com/questions/360646/
tlenss

Đã tìm thấy lỗi bệ phóng trên trang đó và đã cho tôi giải pháp. Cảm ơn
Vuk Stanković

Câu trả lời:


273

Tôi nghĩ rằng tôi đã tìm thấy giải pháp tại Launcpad.net .

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

Điều này đã làm việc cho tôi.


Cảm ơn câu trả lời này, trong OpenCart 1.5.6, sự cố này đã gây ra lỗi ... Lỗi nghiêm trọng: Gọi đến hàm không xác định mcrypt_create_iv () trong / <đường dẫn tại đây> /system/library/encryption.php trên dòng 8
AndyGaskell

Đáng chú ý, giải pháp này không làm việc cho tôi với Laravel / Artisan cho đến khi tôi cũng SYM-liên kết trong /etc/php5/cli/conf.d
David M

Tôi nhận được mã này error.Which tôi phải cập nhật Trong đó tập tin tôi cần phải cập nhật Vui lòng đề nghị ..?
user2089987

Điều này khiến Webgility không đồng bộ hóa. Cài đặt nó cố định nó lên đúng đẹp. Cảm ơn!
Ryan

2
Với Ubuntu 14.04 / PHP5.5, dòng đầu tiên không cần thiết. php5enmod tạo liên kết.
Wolk

27

Tôi gặp sự cố này với Ubuntu 14.04 và tôi đã làm như sau để giải quyết nó:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
Đây là những gì phù hợp với tôi, tôi có Phiên bản PHP 5.5.9-1ubuntu4.4 và tôi không có thư mục /etc/php5/conf.d.
flcoder

14

Tôi cũng gặp sự cố này với Ubuntu 14.04 sau khi cài đặt.

Đầu tiên hãy bật mcrypt

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

Thêm lệnh này vào bất kỳ dòng nào

extension=mcrypt.so

Tạo thư mục conf.d trong / etc / php5

sudo mkdir conf.d

Và bên trong thư mục đó tạo tệp mcrypt.ini

sudo gedit mcrypt.ini 

Sau đó, thêm lệnh này vào tệp đó

extension=mcrypt.so

Sau đó, tạo một liên kết đến tệp

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

Bật mô-đun mcrypt

sudo php5enmod mcrypt

Khởi động lại apache

sudo service apache2 restart

3
Bạn không cần extension=mcrypt.sovào php.ini. Nó cũng hoạt động mà không cần nó, vì các phần mở rộng php (như mcrypt) nằm trong .inicác tệp riêng biệt .
machineaddict

@machineaddict Đối với tôi, việc thêm 'extension = mcrypt.so' đã hoạt động sau khi cài đặt mcrypt. Lubuntu 14.04 Trusty Thar. Tôi không được tải tự động
Clain Dsilva

11

Từ Ubuntu 13.10 đến 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Làm việc cho tôi.


Đối với tôi: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Tuy nhiên, tệp đã được đặt ở một nơi khác. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/và chạy các lệnh trên. Lấy từ www.devraju.com
machineaddict

3

Tôi cũng gặp sự cố này với Ubuntu 14.04 và Nginx, nhưng mẹo cho tôi là khởi động lại dịch vụ FPM, vì vậy tôi đã làm:

Cài đặt thư viện

apt-get cài đặt php5-mcrypt

Tìm đường đi

updatedb && xác định vị trí mcrypt.so

Đặt đường dẫn của mcrypt.so bên trong tệp mcrypt.ini nằm trong /etc/php5/mods-available/mcrypt.ini

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

Và sau đó khởi động lại dịch vụ FPM

khởi động lại dịch vụ php5-fpm


Tôi chỉ cần apt-get install php5-mcrypt và khởi động lại dịch vụ php5-fpm trên ubuntu 14.04 của mình.
deanpodgornik

Tuyệt vời..Trong trường hợp của tôi, tôi cần tìm lib mcrypt theo cách thủ công vì phần mở rộng trống trong tệp mcrypt.ini.
Deric Lima

0

Một giải pháp khác nếu gói đã được cài đặt:

sudo aptitude reinstall php5-mycript

Điều này đã làm việc cho tôi sau khi thực hiện nâng cấp


0

Hãy thử mã này:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart

0

Tôi đã gặp vấn đề tương tự với PHP 5.5.14 chạy trên Mac OS X Yosemite. Tôi đang cố gắng cài đặt Laravel 5.0. Và khi tôi cố gắng tạo một dự án mới, tôi đã gặp lỗi như bên dưới (ngay cả khi tôi cố gắng khởi động máy chủ laravel với php Artian 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$ 

Vì vậy, tôi vừa thêm dòng bên dưới vào cuối tệp php.ini của mình bằng trình chỉnh sửa nano:

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

Cuối cùng, chỉ cần khởi động lại Terminal và khởi động lại máy chủ ứng dụng laravel với

php artisan serve

Và nó hoạt động tốt!


0

vừa tìm thấy trên php.net

Lưu ý, đối với Ubuntu, chỉ cần cài đặt php5-mcrypt đã không làm cho mcrypt hoạt động. Bạn cần thực hiện các lệnh sau với tư cách là người chủ để kích hoạt nó:

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

Đôi khi, "sự cố" này xảy ra do bạn đã nhập một lệnh thủ công trên máy cục bộ thay vì trên máy ảo. Nếu bạn đang sử dụng Homestead, mcrypt đã được cài đặt. Hãy coi đó là một lời nhắc nhởhomestead ssh

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.