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.