PHP5에서 mcrypt를 얻을 수 없습니다


29

나는 이것을 여러 번했다 :

sudo aptitude install php5-mcrypt

sudo apache2ctl restart

적성은 mcrypt가 설치되었다고 말합니다. 이미 3 번 다시 설치했습니다. 아파치를 설치 한 후 약 20 회 정도 다시 시작했습니다. phpInfo를 볼 때 mcrypt가 표시되지 않습니다. 내 코드를 실행하려고하면 mcrypt 함수 (하나를 선택하십시오)가 존재하지 않습니다. mcrypt가 명확하게 활성화되어 있지 않습니다.

누구든지 무엇이 잘못 될 수 있는지 알고 있습니까? 나는이 조각들이 어디에 어떻게 어떻게 있어야하는지 모릅니다.

PHP 5.5.3을 설치했습니다


패키지 관리자 ( apt-get/ aptitude)에서도 PHP를 설치 했습니까 ? 패키지 php5-mcryptphp.ini"알고있는" 확장 만 구성 할 수 있습니다 . 둘째, 이제 apache2ctl모듈을 다시로드 하지 않습니다 . 아파치를 다시 시작하는 "일반적인"방법은 다음과 같습니다 sudo service apache2 restart. 셋째, PHP는 어떻게 아파치에 연결되어 있습니까? (f) cgi 또는 php-fpm과 같은 것을 사용한다면 (mod-php와 대조적으로), 아마도 아파치를 다시 시작하는 것 자체로 PHP를 다시 시작했을 것입니다.
Henning Kockerbeck

우리는 적성을 사용하여 모든 것을 설치했습니다. apache2ctl이 아파치를 중지했다가 다시 시작합니다. 설치 후 컴퓨터를 여러 번 다시 시작했습니다. 우리가 PHP뿐만 아니라 php5-mcrypt를 설치 한 이후로 아파치가 "다시 시작되었다"고 말할 때 저를 믿으십시오. PHP5는 아파치 모듈로 잘 작동합니다-PHP로 작성된 웹 사이트이므로 PHP가 아파치 모듈로 설치되어 있다고 가정합니다. / etc / apache2 / mods-enabled로 이동하면 php5가 해당 목록에 있습니다. / etc / php5 / mods-available에 mcrypt가 표시되지 않지만 sudo aptitude search mcrypt를 수행하면 libmcypt4, mcrypt 및 php5-mcrypt-????
webDeveloperDave

(약 5 ~ 7 번째 출품작) php.ini의 결과에 어느 것이 phpinfo있습니까? 의 파일이어야합니다 /etc/php5/. 해당 파일에서에 대해 검색하면 mcrypt무엇이 나옵니까?
Henning Kockerbeck

php.ini는 /etc/php5/apache2/php.ini에 있습니다. mcrypt.algorithms_dir과 mcrypt.modes_dir에 두 가지 설정이있는 mcrypt 섹션이 있습니다. 위의 주석은 기본값이 / usr / local / lib / libmcrypt-해당 디렉토리가 없습니다. 이것이 적성을 말했지만 mcrypt가 설치되지 않을 수도 있다는 사실을 처음으로 알게 한 것입니다. 내가 aptitude info를하면 mcrypt는 패키지 상태가 버전 2.6.8-1.3으로 설치되었다고 말합니다-충돌이라고합니다 : mcrypt-무슨 말입니까? 이 패키지 자체와 충돌합니까? 사용자 정보를 암호화하는 더 좋은 방법이 있습니까?
webDeveloperDave

mcrypt패키지 를 신경 쓸 필요가 없습니다 . PHP 확장과 마찬가지로 libmcrypt를 사용하는 명령 줄 프로그램입니다. 따라서 패키지 libmcrypt4가 설치되어 있는지 확인해야합니다 . 에 php.ini스 니펫이 /etc/php5/conf.d/mcrypt.ini있습니까? lib를로드해야합니다. 그 스 니펫은 PHP에 의해로드 phpinfo되었습니까? 다시, sudo service apache2 restart대신에 Apache를 다시 시작하려고 apache2ctl했습니까?
Henning Kockerbeck

답변:


62

이 시도

sudo php5enmod mcrypt

sudo service apache2 restart

잘 작동했고 symlink (전체 복사)가 +1입니다. 그래서 공감!
Stefano Mtangoo

4
이것은 나를 위해 일했습니다. 그러나 첫 번째 명령은 필요하지 않았습니다 (ln). /etc/php5/apache/conf.d 폴더 내에 mcrypt.ini가 없습니다. sudo php4enmod mcrypt 실행이 작동했습니다. 지금 신청하십시오. 서버가 작동합니다!. 고마워
peterept

1
잘 작동합니다. 그러나 "sudo php5enmod mcrypt"를 사용한 명령에 대해 알고 싶습니다. 이 명령을 사용하는 목적은 무엇입니까?
Elavarasan

1
"sudo php5enmod mcrypt"는 "/etc/php5/conf.d"디렉토리에 우선 순위 번호 (기본값 20)로 심볼릭 링크를 생성하므로 "sudo php5dismod mcrypt"로 ini 파일을 수정하지 않고 제거 할 수 있습니다
Vizjerai

11

우분투 13.10에서도 비슷한 문제가있었습니다. composer install을 실행하면 동일한 오류가 발생하여 끝났습니다.

****Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-update-cmd event returned with an error

  [RuntimeException]  
  Error Output:****   

나는 설치 mcrypt하고 php5-mcrypt여전히 적성, 그리고 php -m보이지 않았다 mcrypt로드 된 확장으로 :

aptitude install mcrypt
aptitude install php5-mcrypt

나는를 실행 updatedb한 후,하고 locate mcrypt. 에서를 찾았 mcrypt.ini습니다 /etc/php5/conf.d. 그러나 다른 모든 확장명 (json과 같은)에는 .ini 파일이 /etc/php5/apache2/conf.d및에 /etc/php5/cli/conf.d있습니다. 이 둘은에 대한 링크 ../../mods.available였습니다.

그래서, 다음 이동 mcrypt.ini/etc/php5/available-modules링크를 설정하고 :

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

그리고 비슷합니다 /etc/php5/apache2/conf.d.

그리고 짜잔 php -m!


이 답변에 정말 감사합니다. 완전히 나를 분류했습니다. /etc/php5/conf.d/mcrypt.ini를 옮기지 않았지만, 기호 링크를 설정하여 해당 위치를 가리 키도록 설정했는데, 향후 mcrypt에 대한 향후 업데이트가 자동으로로드 될 것입니까?
alexleonard

2

Apache가 PHP를 호출 할 때 libmcrypt를로드하는 ini 코드 조각이없는 것 같습니다. /etc/php5/apache2/conf.d/mcrypt.ini다음 내용으로 불리는 파일이 있어야합니다

; configuration for php MCrypt module
extension=mcrypt.so

시스템에 설치된 내용에 따라 /etc/php5/cli/conf.d/mcrypt.ini또는 같은 다른 PHP 통합 기능에서 복사 할 수 있어야합니다 /etc/php5/conf.d/mcrypt.ini.


2

mcrypt 모듈은 기본적으로 활성화되어 있지 않습니다. mcrypt 모듈을 활성화 한 다음 아파치를 다시 시작하십시오 ( credit )

sudo php5enmod mcrypt
sudo service apache2 restart

1

이게 다야 때때로 우리는 '엔 모드'처럼 단순한 것을하는 가장 복잡한 방법을 찾고있는 것 같습니다. )처럼 Boinst는 말한다 sudo php5enmod mcrypt. 그런 다음 아파치를 다시로드하십시오.

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