Страница 1 из 2

КриптоПро расширение для PHP 7

Добавлено: 20 июл 2020, 11:42
rozen
Добрый день!
Кто-то установил расширение для PHP от КриптоПро?
Кто как это сделал, какие трудности подстерегают на пути?
У меня свой сервер с Ubuntu Linux 20.04, PHP Version 7.4.5, Server API: FPM/FastCGI

Есть пара ссылок с пошаговыми инструкциями, но у меня только один сервер в работе. :D
https://www.cryptopro.ru/forum2/default ... ts&t=14875
https://cpdn.cryptopro.ru/content/cades ... stall.html

Re: КриптоПро расширение для PHP 7

Добавлено: 21 июл 2020, 10:09
support
Я через пару недель добавлю документацию по этому вопросу.

Re: КриптоПро расширение для PHP 7

Добавлено: 09 окт 2020, 06:37
rozen
Установка КриптоПро расширения для PHP еще в разработке.
https://docs.rukovoditel.net.ru/index.php?p=102

Re: КриптоПро расширение для PHP 7

Добавлено: 21 окт 2020, 09:31
support
Обновил инструкцию по ЭЦП https://docs.rukovoditel.net.ru/index.php?p=84
И так же добавлена инструкция по установке модуля КриптоПро https://docs.rukovoditel.net.ru/index.php?p=102
Сообщите получилось ли установить расширение. Возможно инструкция требует каких то корректировок.

Re: КриптоПро расширение для PHP 7

Добавлено: 21 окт 2020, 12:34
rozen
support писал(а): 21 окт 2020, 09:31 Обновил инструкцию по ЭЦП https://docs.rukovoditel.net.ru/index.php?p=84
И так же добавлена инструкция по установке модуля КриптоПро https://docs.rukovoditel.net.ru/index.php?p=102
Сообщите получилось ли установить расширение. Возможно инструкция требует каких то корректировок.
Спасибо. Работаем по установке. Сообщу.

Re: КриптоПро расширение для PHP 7

Добавлено: 26 окт 2020, 09:57
rozen
Пункт 3
КриптоПро ЭЦП SDK

Код: Выделить всё

sudo dpkg -i \
> cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb \
> lsb-cprocsp-devel_5.0.11535-4_all.deb \
> cprocsp-pki-phpcades_2.0.0-1_amd64.deb

dpkg:
ошибка: cannot access archive 'lsb-cprocsp-devel_5.0.11535-4_all.deb': No such file or directory

В cades_linux_amd64.tar.gz нет lsb-cprocsp-devel_5.0.11535-4_all.deb

Попытка установить по одному:

Код: Выделить всё

sudo dpkg -i cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb
(Чтение базы данных … на данный момент установлено 207905 файлов и каталогов.)
Подготовка к распаковке cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb …

CryptoPro ECP browser plug-in requires rdr_gui_gtk package from CryptoPro CSP. Install it before installing this package.
dpkg: ошибка при обработке архива cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb (--install):
new cprocsp-pki-plugin-64 package pre-installation script subprocess returned error exit status 1

При обработке следующих пакетов произошли ошибки:
cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb

Далее:

Код: Выделить всё

sudo dpkg -i cprocsp-rdr-gui-gtk-64_5.0.11455-5_amd64.deb
Выбор ранее не выбранного пакета cprocsp-rdr-gui-gtk-64.
(Чтение базы данных … на данный момент установлено 207905 файлов и каталогов.)
Подготовка к распаковке cprocsp-rdr-gui-gtk-64_5.0.11455-5_amd64.deb …
libgtk-x11-2.0.so.0 was not found!
Try to install GTK+ 2 library on your system first.

dpkg: ошибка при обработке архива cprocsp-rdr-gui-gtk-64_5.0.11455-5_amd64.deb (--install):
new cprocsp-rdr-gui-gtk-64 package pre-installation script subprocess returned error exit status 1

При обработке следующих пакетов произошли ошибки:
cprocsp-rdr-gui-gtk-64_5.0.11455-5_amd64.deb

Re: КриптоПро расширение для PHP 7

Добавлено: 26 окт 2020, 10:17
Oleg

Re: КриптоПро расширение для PHP 7

Добавлено: 26 окт 2020, 10:49
rozen
Oleg писал(а): 26 окт 2020, 10:17 Может это поможет
https://www.cryptopro.ru/forum2/default ... post119974
Спасибо, но нет. Тут CentOS, у них с Ubuntu много разницы, но для информации хорошо.
Думаю это лучше зайдет: https://forum.ubuntu.ru/index.php?topic=300549.0
Попробую.

UPD: 27.10.2020

Исходники закачал и распаковал в /download/php
Прописал в файл Makefile.unix

Перешел в директорию с исходниками PHP и выполнил настройку конфигурации:

Код: Выделить всё

./configure --prefix=/opt/php
Ругается на то, что нет sqlite3 нужной версии.
Решение: скачать и установить пакет

Код: Выделить всё

sudo apt install sqlite-devel.x86_64
....

Re: КриптоПро расширение для PHP 7

Добавлено: 27 окт 2020, 11:24
rozen
Удалил CSP, почистил папки. Снова поставил. Закачал исходник PHP, применил патч.
Попытка компиляции:

Код: Выделить всё

eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix
g++ -std=c++98 -D_GLIBCXX_USE_CXX11_ABI=0 -DLINUX  -DUNIX -DHAVE_LIMITS_H  -D_COMPACT -DHAVE_STDINT_H  -I/opt/cprocsp/include/ -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/pki -I/opt/cprocsp/include/pki/atl -I/opt/cprocsp/include/pki/cppcades -I/opt/cprocsp/include/pki/cplib -I/download/php -I/download/php/main -I/download/php/Zend -I/download/php/TSRM  -DSIZEOF_VOID_P=8 -fPIC -DPIC -c -o PHPCadesCPSigners.o PHPCadesCPSigners.cpp
In file included from stdafx.h:39:0,
                 from PHPCadesCPSigners.cpp:1:
/opt/cprocsp/include/cpcsp/CSP_WinDef.h:484:152: note: #pragma message: Your application will require at least CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions.
 #      pragma message ("Your application will require at least CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions.")
                                                                                                                                                        ^
In file included from /usr/include/x86_64-linux-gnu/bits/statx.h:31:0,
                 from /usr/include/x86_64-linux-gnu/sys/stat.h:446,
                 from /download/php/Zend/zend_stream.h:26,
                 from /download/php/Zend/zend.h:38,
                 from /download/php/main/php.h:33,
                 from stdafx.h:92,
                 from PHPCadesCPSigners.cpp:1:
/usr/include/linux/stat.h:59:2: error: declaration does not declare anything [-fpermissive]
  __s32 __reserved;
  ^~~~~
make: *** [Makefile.unix:30: PHPCadesCPSigners.o] Error 1
Ругается на версию CSP

Код: Выделить всё

 dpkg -l | grep cprocsp
ii  cprocsp-curl-64                       5.0.11823-6                                                    amd64        CryptoPro cURL shared library and application. Build 11823.
ii  cprocsp-pki-cades-64                  2.0.14071-1                                                    amd64        CryptoPro ECP SDK
ii  cprocsp-pki-phpcades-64               2.0.14071-1                                                    amd64        CryptoPro ECP SDK PHP extension
ii  lsb-cprocsp-base                      5.0.11823-6                                                    all          CryptoPro CSP directories and scripts. Build 11823.
ii  lsb-cprocsp-ca-certs                  5.0.11823-6                                                    all          CryptoPro CA certificates. Build 11823.
ii  lsb-cprocsp-capilite-64               5.0.11823-6                                                    amd64        CryptoPro CSP. CryptoAPI Lite libraries and applications. Build 11823.
ii  lsb-cprocsp-devel                     5.0.11863-5                                                    all          CryptoPro CSP developer headers and examples. Build 11863.
ii  lsb-cprocsp-kc1-64                    5.0.11823-6                                                    amd64        CryptoPro CSP KC1. Build 11823.
ii  lsb-cprocsp-rdr-64                    5.0.11823-6                                                    amd64        CryptoPro CSP common libraries and utilities. Build 11823.

Re: КриптоПро расширение для PHP 7

Добавлено: 27 окт 2020, 12:42
rozen
В файле Makefile.unix в строке после -fPIC -DPIC (Установка флагов компилятора) нужно добавить -fpermissive, потом повторить сборку.
Пояснение: /usr/include/linux/stat.h не наш хедер.

Далее:
Eval делайте именно под рутом, так как sudo как-то не так отрабатывает: Eval ...
Убедитесь что пакет lsb-cprocsp-devel стоит:

Код: Выделить всё

dpkg -l | grep cpro
После этого у меня расширение собралось. g++-7 стоит по умолчанию.