Как выполнить установку расширения ext-mcrypt для PHP 7.4 в операционной системе macOS Sonoma?

Можете ли вы мне помочь, учитывая, что mcrypt для Homebrew в настоящее время отключен? Я понимаю, что этот вопрос может показаться простым.
  • 1 декабря 2023 г. 19:39
Ответы на вопрос 2
Библиотека mcrypt устарела начиная с PHP 7.1.0 ией и была полностью удалена в PHP 7.2.0. Сообществом PHP это решение было принято в связи с тем, что данная библиотека давно не обновлялась и содержала неисправленные баги.

C PHP 7.4 вы должны использовать другую библиотеку, поддерживающую шифрование, такую как Sodium или OpenSSL. Перейти на них будет наиболее безопасным и долгосрочным решением, при котором вы не столкнетесь со схожими проблемами в будущем.

Вместо mcrypt вам нужно использовать функции openssl_encrypt() и openssl_decrypt():

```
// Before
$data = mcrypt_encrypt($cipher, $key, $plaintext, $mode, $iv);

// After
$data = openssl_encrypt($plaintext, $cipher."-".$mode, $key, $options=0, $iv);
```

В случае, еcли вам все же необходимо установить расширение mcrypt для PHP 7.4 в macOS, то это можно сделать при помощи PECL:

1. Установите PECL и PEAR. Это будет требовать установщик Homebrew:
    ```
    brew install pear
    ```

2. Создайте по умолчанию каталог для расширений .ini (если его еще нет):
    ```
    mkdir -p /usr/local/etc/php/7.4/conf.d
    ```

3. Загрузите и установите mcrypt из PECL:
    ```
    pecl install channel://pecl.php.net/mcrypt-1.0.3
    ```

4. Используйте ваш текстовый редактор для создания файлы mcrypt.ini:
    ```
    nano /usr/local/etc/php/7.4/conf.d/mcrypt.ini
    ```

5. Добавьте следующую строку в файл mcrypt.ini и сохраните его:
    ```
    extension=mcrypt.so
    ```

6. Перезагрузите вашу машину или перезапустите сервер.

Пожалуйста, имейте ввиду, что это решение является временным и может не работать в будущих версиях PHP, поскольку mcrypt больше не поддерживается. Долгосрочное решение заключается в переходе на другую библиотеку для шифрования, которая поддерживается и активно развивается.
Переформулирование: Найдите решение в редактировании формулы, не нужно обращаться к API: перейдите в mcrypt с помощью команды brew edit mcrypt. Найдите строку, которая начинается с !disabled, и удалите ее. Наконец, запустите установку с использованием команды: HOMEBREW_NO_INSTALL_FROM_API=1 brew install mcrypt.
Похожие вопросы