Пример сборки phpcades


Конфигурация:

Ubuntu 18.04 x64
КриптоПро CSP 5.0.11455
КриптоПро ЭЦП SDK 2.0
PHP 7.3.12


Последовательность необходимых действий:

  1. Установить пакеты:

    • libboost-dev
    • php-dev
    • libxml2-dev

    # apt-get install libboost-dev php-dev libxml2-dev

  2. Скачать архив с исходниками PHP и распаковать этот архив:

    tar xvf php-7.3.12.tar.gz

  3. Скачать архив с КриптоПро CSP 5.0, распаковать этот архив:

    tar xvf linux-amd64_deb.tgz

    и установить минимальный набор пакетов КриптоПро CSP:

    cd linux-amd64_deb
    # ./install.sh

  4. Скачать архив с КриптоПро ЭЦП SDK, распаковать этот архив:

    tar xvf cades_linux_amd64.tar.gz

    и установить следующие пакеты:

    • cprocsp-pki-2.0.1-cades
    • lsb-cprocsp-devel
    • cprocsp-pki-2.0.1-phpcades

    cd cades-linux-amd64
    # dpkg -i \
    cprocsp-pki-cades_2.0.0-1_amd64.deb \
    lsb-cprocsp-devel_5.0.11535-4_all.deb \
    cprocsp-pki-phpcades_2.0.0-1_amd64.deb

  5. Перейти в директорию с исходниками PHP:

    cd ~/php-7.3.12

    и выполнить:

    ./configure --prefix=/opt/php

  6. В файле:

    /opt/cprocsp/src/phpcades/Makefile.unix

    указать путь к директории с исходниками PHP в переменной PHPDIR.

  7. Скопировать файл патча для PHP 7 в директорию с исходниками расширения:

    # cp ./php7_support.patch /opt/cprocsp/src/phpcades

  8. Установить g++-6 и сделать g++-6 версией для g++ по умолчанию:

    # apt-get install g++-6
    # update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10
    # update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10
    # update-alternatives --config g++

  9. Перейти в директорию с исходниками расширения:

    cd /opt/cprocsp/src/phpcades

    и выполнить команды:

    # patch -p0 < ./php7_support.patch
    # eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix

  10. Вывести путь к расширениям PHP:

    php -i | grep extension_dir

  11. Создать в директории с расширениями символическую ссылку на собранную библиотеку libphpcades.so:

  12. В файле php.ini добавить расширение:

    extension=libphpcades.so


Информация на сайте разработчика.