Установка OpenCV + php-opencv
Исходные данные:
— сервер Ubuntu 20;
— панель Hestia;
— установлены две версии PHP: 7.4 и 8.0.
Требуется к обеим версиям PHP подключить модуль php-opencv.
Если на сервере другая конфигурация, например, установлена одна версия PHP, то могут измениться пути и устанавливаемые пакеты PHP, но принцип остаётся тот же самым.
Установка OpenCV из исходных текстов.
Устанавливаю необходимые пакеты:
# apt-get update
# apt-get upgrade
# apt install php8.0-dev php7.4-dev cmake
Исходники собираю в /usr/local/src/
:
# cd /usr/local/src/
Клонирую два репозитория:
# git clone https://github.com/opencv/opencv.git
# git clone https://github.com/opencv/opencv_contrib.git
Создаю каталог для сборки:
# mkdir /usr/local/src/opencv/build
# cd /usr/local/src/opencv/build
Подготовка сборки:
# cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/usr/local/src/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
Собственно сборка. Параметр меняю в зависимости от количества ядер CPU. В данном случае используется четыре ядра:
# make -j4
После успешной сборки — установка:
# make install
Установка модуля php-opencv из исходных текстов.
Клонирую репозиторий:
# cd /usr/local/src/
# git clone https://github.com/php-opencv/php-opencv.git
# cd /usr/local/src/php-opencv
Дальше начинаются тонкости, связанные с конкретной системой.
Для начала собираю модуль для PHP 7.4.
Переключаюсь на ветку 7.4:
# git checkout php7.4
#/usr/bin/phpize7.4
# ./configure --with-php-config=/usr/bin/php-config7.4
# make
# make install
При этом файл opencv.so
падает в каталог /usr/lib/php/20190902
Подключаю расширение php-opencv
к версии PHP 7.4
:
# echo "extension=opencv.so" > /etc/php/7.4/mods-available/opencv.ini
# ln -s /etc/php/7.4/mods-available/opencv.ini /etc/php/7.4/cli/conf.d/20-opencv.ini
# ln -s /etc/php/7.4/mods-available/opencv.ini /etc/php/7.4/fpm/conf.d/20-opencv.ini
Аналогичные действия выполняются для PHP 8.0
# cd /usr/local/src/php-opencv
# make clean
Переключаюсь на ветку 8.0:
# git checkout php8.0
# /usr/bin/phpize8.0
# ./configure --with-php-config=/usr/bin/php-config8.0
# make
# make install
При этом файл opencv.so
падает в каталог /usr/lib/php/20200930
Подключаю расширение php-opencv
к версии PHP 8.0
:
# echo "extension=opencv.so" > /etc/php/8.0/mods-available/opencv.ini
# ln -s /etc/php/8.0/mods-available/opencv.ini /etc/php/8.0/cli/conf.d/20-opencv.ini
# ln -s /etc/php/8.0/mods-available/opencv.ini /etc/php/8.0/fpm/conf.d/20-opencv.ini
Контрольная перезагрузка сервисов:
# systemctl restart apache2
# systemctl restart php7.4-fpm.service
# systemctl restart php8.0-fpm.service
That’s all folks!
Добавить комментарий