위 url과 https://zetawiki.com/wiki/%EC%9A%B0%EB%B6%84%ED%88%AC16_php-mcrypt_%EC%84%A4%EC%B9%98 과 https://solbel.tistory.com/38 과 https://websiteforstudents.com/install-php-7-2-mcrypt-module-on-ubuntu-18-04-lts/ 등등을 참고하여봤습니다만 apache2를 대상으로 한 글은 작동하지 아니하였고 php7.2부터는 mcrypt가 보안으로 인하여 php의 기본 모듈에서 제외되어서 pecl을 이용해서 다운로드 해야하는데 no valid packages found라는 오류밖에 나타나지 않습니다ㅠㅠ

환경은 nginx 1.18.0

ubuntu 20.04

php-fpm 7.4 정도입니다.

  • ?
    7.2까지는 억지로 쓸 수 있었지만... 7.4면 그냥 Sodium이나 OpenSSL 쓰세요.
  • ? ?
    음,,,ㅜㅠ 그게 github에서 오픈소스를 갖다가 사용하려하는데 mcrypt가 없으면 설치가 불가능하여서요,,, 답변 감사합니다!
  • Lv5
    7.2 쓰면 되지 않을까요?
  • Lv5 ?
    다른 프로젝트도 같이 하고 있는 서버라서 이 소스 때문에 7.2로 내리긴 힘들것 같습니다. 답변 감사합니다!
  • Lv36

    우분투 20.04 + PHP 7.4에서 pecl을 통해 mcrypt 설치 잘 됩니다.

    링크하신 글처럼 1.0.1 같은 오래된 버전을 지정하지만 않으면 됩니다.

     

    apt install libmcrypt-dev php-dev php-pear

    pecl install mcrypt (설치 도중 뭘 물어보면 엔터한번 쳐줘야 합니다)

    echo "extension=mcrypt.so" > /etc/php/7.4/mods-available/mcrypt.ini

    ln -s /etc/php/7.4/mods-available/mcrypt.ini /etc/php/7.4/cli/conf.d/20-mcrypt.ini

    ln -s /etc/php/7.4/mods-available/mcrypt.ini /etc/php/7.4/fpm/conf.d/20-mcrypt.ini

    PHP 재시작

  • Lv36 ?
    기진곰님 감사합니다! 덕분에 설치를 잘 하였습니다. 그런데 3번째 문장에서 echo "extension=mcrypt.so"가 아니라 echo 없이 extension=mcrypt.so를 해야 php가 알아듣는 것 같습니다.
  • ? Lv36
    저 명령을 그대로 터미널에 복붙하면 따옴표 안의 내용만 해당파일에 들어갑니다.
    따옴표 안에 있는 내용을 파일에 저장하라는 명령이니까요.
    물론 파일을 직접 편집하신다면 echo와 따옴표는 제거하셔야 합니다.
  • Lv36 ?
    아 터미널이 아니라 vi /etc/php/7.4/mods-available/mcrypt.ini를 해서 파일을 직접 수정해서 echo "extension=mcrypt.so"가 작동 안했던 것 같습니다. 감사합니다!
  • ?
    pecl 쓰니까 잘 되네요..;;;;