Перейти к содержимому

Документация по BlackArch на русском языке

Инструкции, советы, новые программы

Меню
  • Главная
  • Список инструментов
  • HackWare
Меню

PHP Warning: PHP Startup: imap: Unable to initialize module (РЕШЕНО). Как установить imap модуль для PHP в Arch Linux

Опубликовано в 08.04.202308.04.2023 от Alexey

При запуске PHP скрипта в Arch Linux или производных дистрибутивах (Manjaro, BlackArch) в командной строке

php 8.php

Вы можете увидеть следующее предупреждение от PHP:

PHP Warning:  PHP Startup: imap: Unable to initialize module
Module compiled with module API=20210902
PHP    compiled with module API=20220829
These options need to match
 in Unknown on line 0

Warning: PHP Startup: imap: Unable to initialize module
Module compiled with module API=20210902
PHP    compiled with module API=20220829
These options need to match
 in Unknown on line 0

Сообщение гласит, что невозможно инициализировать модуль imap.

Функции модуля imap позволяют работать с протоколом IMAP, а также NNTP, POP3 и локальными методами доступа к почтовому ящику. Однако следует иметь в виду, что некоторые функции IMAP не будут корректно работать c протоколом POP. Также нужно помнить, что модуль IMAP не является потокобезопасным; его не следует использовать со сборками ZTS.

Как сказано в документации PHP, https://www.php.net/manual/en/imap.installation.php, для поддержки imap в PHP необходимо компилировать PHP с опцией --with-imap[=DIR]. Но на самом деле для включения модуля imap в Linux обычно достаточно установить соответствующий пакет (например, php8.2-imap) и включить модуль как расширение в php.ini.

В Arch Linux всё работало аналогично вплоть до выхода версии PHP 8.2. Как сказано в официальном сообщении https://archlinux.org/news/php-82-update-and-introduction-of-legacy-branch/, расширение imap удалено из репозитория, поскольку оно полагается на библиотеку c-client, которая заброшена много лет назад.

В Debian и производных дистрибутивах (Kali Linux, Ubuntu) это никак не мешает иметь расширение php8.2-imap в стандартных репозиториях. Но в Arch Linux, как говориться, «своя атмосфера».

Вариантов выхода из данной ситуации в Arch Linux два:

  1. Отключить расширение imap
  2. Установить расширение imap для PHP 8.2 и последующих версий

Рассмотрим оба этих решения.

Как отключить расширение imap в PHP в Arch Linux

Если вы не используете модуль imap, то вам достаточно его отключить — это совсем просто.


Откройте файл /etc/php/php.ini:

sudo gedit /etc/php/php.ini

найдите там строку

extension=imap

и закомментируйте её, чтобы получилось:

;extension=imap

Всё готово! Сразу после этого предупреждение о невозможности инициализации модуля imap исчезнет.

Как установить расширение imap для PHP в Arch Linux (модуль php82-imap для Arch Linux)

В AUR присутствует расширение imap для различных версий PHP, например:

  • php82-imap
  • php81-imap
  • php80-imap

Подробности о том, как установить пакеты из AUR смотрите в статьях:

  • Как установить программу из Arch User Repository (AUR) – пользовательского репозитория Arch
  • Автоматическая установка и обновление пакетов AUR

Например:

pikaur -S php82-imap

Но рекомендуется перейти на страницу расширения https://aur.archlinux.org/packages/php82-imap и прочитать закреплённый комментарий. Автор расширения создал репозиторий на build.opensuse.org с бинарными файлами. Вы можете добавить этот репозиторий в источники пакетов на своей системы и установить (а при выходе новых версий и обновлять) imap, а также другие расширения для разных версий PHP.

Близкие статьи

  • Особенности использования валидных SSL-сертификатов (64.8%)
  • Ошибка phpMyAdmin «Error: Undefined constant "SODIUM_CRYPTO_SECRETBOX_KEYBYTES"» (РЕШЕНО) (63%)
  • Решение проблемы Unable to load dynamic library 'mcrypt.so' (tried: /usr/lib/php/modules/mcrypt.so (57.4%)
  • Решение проблемы Failed to configure CA certificate chain!, Fatal error initialising mod_ssl, exiting. (55.6%)
  • Решение проблемы «ERROR] Could not open mysql.plugin table. Some plugins may be not loaded» при запуске MariaDB в Arch Linux (55.6%)
  • Решение проблемы «Warn about old perl modules» - предупреждение о старых модулях Perl (RANDOM - 50%)

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo


Поиск


Свежие записи

  • Ошибка «error: failed to commit transaction (conflicting files)» (РЕШЕНО)
  • Как настроить Python в качестве CGI модуля в Apache на Arch Linux (Manjaro, BlackArch)
  • PHP Warning: PHP Startup: imap: Unable to initialize module (РЕШЕНО). Как установить imap модуль для PHP в Arch Linux
  • Как обновить загрузчик GRUB в Arch Linux и производных дистрибутивах (Manjaro, BlackArch)
  • Ошибка «error: failed to commit transaction (invalid or corrupted package)» (РЕШЕНО)

Свежие комментарии

  • Анастасия к записи Как установить и настроить OpenVPN в ArchLinux / BlackArch
  • Alexey к записи Как в Arch Linux найти все программы, установленные из AUR
  • МаксимК к записи Как в Arch Linux найти все программы, установленные из AUR
  • Vova к записи Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP8 и phpMyAdmin) в Arch Linux / BlackArch
  • Furi к записи Приложение в .AppImage не запускается в Arch Linux (РЕШЕНО)




Рубрики

  • Sniffing и Spoofing
  • Архив
  • Без рубрики
  • Взлом Wi-Fi сетей
  • Инструкции
  • Новости
  • Общая информация/новости
  • Разведка
  • Справка и подсказки




Яндекс.Метрика
© 2023 Документация по BlackArch на русском языке | На платформе Minimalist Blog Тема WordPress