Установка OpenCV + opencv-php в CentOS 7/8
Для начала подготовительный этап, нужно установить некоторые библиотеки.
0. Установка библиотек
Обновление репозитория
1 |
yum -y update |
Установка tar
1 |
yum -y install tar |
Установка ‘Development Tools’
1 |
yum -y groupinstall 'Development Tools' |
Без Development Tools во время установки cmake появляется следующая ошибка:
1 2 |
Cannot find appropriate Makefile processor on this system. Please specify one using environment variable MAKE. |
Установка OpenSSL
1 |
yum -y install openssl-devel |
Даже при установленной библиотеке openssl, при отсутствии openssl-devel во время сборки появляется следующая ошибка:
1 |
Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL. |
Установка pkg-config
Чтоб проверить, установлен ли pkg-config, необходимо выподлнить следующую команду (выведет версию в консоль):
1 |
pkg-config --version |
Если появится ошибка о неизвестной команде, необходимо установить pkg-config:
1 |
yum -y install pkg-config |
1. Сборка и установка CMake из исходников
1 2 3 4 |
cd ~ wget https://github.com/Kitware/CMake/releases/download/v3.17.3/cmake-3.17.3.tar.gz tar -zxvf cmake-3.17.3.tar.gz cd cmake-3.17.3 |
1 2 3 |
./bootstrap make sudo make install |
Команда make может выполняться довольно длительно, особенно на слабых серверах
2. Сборка и установка OpenCV из исходников
Готовые сборки в репозиториях уже устарели и ссылки на репозитории давно не активны, придётся собирать из исходников
1 2 3 |
cd ~ git clone https://github.com/opencv/opencv_contrib.git && git clone https://github.com/opencv/opencv.git cd opencv_contrib && git checkout tags/4.5.0 && cd ../opencv && git checkout tags/4.5.0 && cd .. |
1 |
mkdir build && cd build && cmake -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ../opencv |
Предварительно необходимо узнать количество ядер процессора, для этого необходимо выполнить команду nproc
Далее в команде в параметре -j4 вместо 4 подставьте количество ядер в вашей системе
1 |
make -j4 |
Время сборки зависит от ресурсов сервера, у меня на слабеньком VPS собиралось минут 10.
В некоторых случаях при нехватке оперативной памяти может появляться соответствующая ошибка. Если по каким-либо причинам сборка оборвалась заново запустите команду make, она продолжит компиляцию и сборку с места остановки.
После окончательной сборки необходимо установить opencv
1 2 |
ldconfig make install |
Также необходимо сделать символическую ссылку на файл opencv4.pc
1 2 |
sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/ sudo ldconfig |
Для проверки установленной версии opencv выполните команды opencv_version. Также при корректной установке версия должна отображаться после запуска команды pkg-config --modversion opencv4.
3. Сборка и установка OpenCV модуля для PHP
Будьте внимательны, здесь и далее будут использоваться исходники для PHP 7.4, смените версию PHP на необходимую
Установка php-devel
1 2 |
dnf -y module enable php:remi-7.4 dnf -y install php-devel |
Сборка и установка php-opencv
1 2 3 |
cd ~ git clone https://github.com/php-opencv/php-opencv.git cd php-opencv && git checkout php7.4 && phpize && ./configure --with-php-config=/usr/bin/php-config && make && make install |
Добавление модуля opencv.so в список расширений. Будьте внимательны, чтоб путь к модулю и путь к настройкам php.ini были корректными для вашей системы.
1 2 |
cd /etc/php.d echo "extension=/usr/lib64/php/modules/opencv.so" > opencv.ini |
После установки нужно выполнить перезапуск сервера и, если установлен, перезапуск php-fpm.
1 |
systemctl restart httpd.service |
1 |
systemctl restart php-fpm |
Уборка мусора
Удаление оставшихся файлов с исходниками, чтоб не занимали место (для проверки свободного места есть команда df -h)
1 2 3 4 5 6 7 |
cd ~ rm -rf build rm -rf cmake-3.17.3 rm -rf cmake-3.17.3.tar.gz rm -rf opencv rm -rf opencv_contrib rm -rf php-opencv |
Используемые ресурсы:
Репозиторий php-opencv:https://github.com/php-opencv/
Сборка и установка CMakehttps://www.osradar.com/how-to-install-cmake-on-centos-8/
Статья на хабре:
https://habr.com/ru/post/358902/