Ubuntu를 13.10으로 업그레이드 한 후 mCrypt가 없음


92

시스템을 Ubuntu 13.04에서 13.10으로 업그레이드 한 후 apache, mysql 및 php 구성에 몇 가지 문제가 발생했습니다.

나는 그들 대부분을 해결했지만 mCrypt 라이브러리가 작동하지 않는 것 같습니다. 패키지가 설치되어 있으므로 apt-get 할 필요가 없습니다. 서버가 작동하고 모든 것이 괜찮아 보이지만 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
— 되었습니까?

apt-get install php5-mcrypt?
— Lajos Veres 2013 년

1
@tlenss 명령의 출력으로 질문을 업데이트했습니다. sudo apt-get install php5-mcrypt이 설치되어 출력과 최신 버전
— 부크 스탄코비치

2
아마도 여기에 대한 대답이 도움이 될 것입니다. askubuntu.com/questions/360646/…
— tlenss

해당 페이지에서 해결책을 제시 한 런치 패드 버그를 발견했습니다. 감사합니다
— Vuk Stanković

답변:


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 / 장인과 나를 위해 일을하지 않았다 또한 /etc/php5/cli/conf.d에 연결된 SYM
— 데이비드 M을

? 나는 친절하게 제안 내가 갱신에 필요한 파일 i가 업데이트해야이 error.Which 코드를 얻고있다 ..
— user2089987

이로 인해 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

/ etc / php5에 conf.d 폴더 생성

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. mcrypt와 같은 PHP 확장이 별도의 .ini파일에 있기 때문에 그것 없이도 작동 합니다.
— machineaddict 2014-08-12

@machineaddict mcrypt를 설치 한 후 'extension = mcrypt.so'를 추가하면 작동했습니다. 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 찾기

/etc/php5/mods-available/mcrypt.ini에있는 mcrypt.ini 파일에서 mcrypt.so의 경로를 설정하십시오.

확장자 = / usr / lib / php5 / 20121212 / mcrypt.so

그런 다음 FPM 서비스를 다시 시작하십시오.

서비스 php5-fpm 다시 시작


php5-mcrypt를 apt-get 설치하고 우분투 14.04에서 서비스 php5-fpm을 다시 시작해야했습니다.
— deanpodgornik

Nice .. 내 경우에는 mcrypt.ini 파일에서 확장자가 비어 있기 때문에 mcrypt lib를 수동으로 찾아야했습니다.
— Deric Lima

0

패키지가 이미 설치된 경우 다른 솔루션 :

sudo aptitude reinstall php5-mycript

이것은 업그레이드 후 나를 위해 일했습니다.


0

이 코드를 시도하십시오.

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

0

Mac OS X Yosemite에서 실행되는 PHP 5.5.14에서 동일한 문제가 발생했습니다. 라 라벨 5.0을 설치하려고했습니다. 그리고 새 프로젝트를 만들려고 할 때 아래와 같은 오류가 발생했습니다 ( php artisan serve로 laravel 서버를 시작하려고 할 때도

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$ 

그래서 nano 편집기를 사용하여 php.ini 파일 끝에 아래 줄을 추가했습니다.

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

마지막으로 터미널을 다시 시작하고 다음을 사용하여 laravel 앱 서버를 다시 시작하십시오.

php artisan serve

그리고 잘 작동합니다!


0

방금 php.net에서 찾았습니다.

Ubuntu의 경우 단순히 php5-mcrypt를 설치해도 mcrypt가 작동하지 않습니다. 활성화하려면 루트로 다음 명령을 실행해야합니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.