Мне нужно использовать gnupg_decrypt
, чтобы расшифровать файл, который отправляется нам, но не может заставить его работать.Функция PHP-функции GnuPG PHP показывает пустой массив
Когда я использую gnupg_keyinfo
, чтобы перечислить все открытые ключи, он возвращает пустой массив. Кто-нибудь знает, почему это происходит?
код я использую:
$res = gnupg_init();
$info = gnupg_keyinfo($res, '');
print_r($info);
Глядя на комментарии по ссылке выше, поставив ''
в качестве шаблона он должен перечислить все ключи.
Я создал открытый ключ на моем сервере, используя информацию, представленную здесь http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html
И когда я бегу GPG --list-ключи это показывает, как успешно создан.
Я где-то читал, что вы должны поставить
putenv('GNUPGHOME=/tmp');
в верхней части страницы, для того, чтобы работать, но нет ссылки на ключ в этой папке, и я не могу найти какое место для установки выше.
Я также читаю, что у меня может не быть разрешения на папку, в которой хранится ключ, но я снова не уверен, где она находится.
Может ли кто-нибудь помочь в этом?
Спасибо
Чтобы получить эту работу я сделал следующее
chown -R {{user}} ~/.gnupg
chmod 600 ~/.gnupg/*
chmod 700 ~/.gnupg
Затем реимпорта ключ, используя gnupg_import
функцию
'ls -al ~/.gnupg /'. Убедитесь, что каталог и файлы, которые он содержит, доступны вашему веб-серверу. Возможно, вы захотите попробовать сценарий из командной строки: это поможет вам решить, является ли это проблемой разрешения. Что-то вроде 'php -r 'print_r (gnupg_keyinfo (gnupg_init(),' '));'' – bishop
Привет, епископ, спасибо за ответ. Я запускаю сценарий из командной строки, и он работал, поэтому я предполагаю, что это исключает проблему с разрешениями (спасибо за подсказку кстати). Я опубликовал скриншот того, что возвращается из ls -al ~/.gnupg /. Мне все хорошо, это тебе? r и w для чтения и записи правильно? –
На самом деле, поскольку он * успешно * в командной строке и * не удается * на веб-сервере означает, что это * - проблема с разрешением. Ваш снимок экрана показывает, что эти файлы принадлежат root, а ваш веб-сервер, скорее всего, не запускается с правами root. Вам необходимо изменить права собственности на эти файлы на файлы веб-сервера. Что-то вроде 'chown -R apache ~/.gnupg'. Чтобы узнать пользователя веб-сервера как-то вроде 'ps aux | egrep '(apache | httpd)' '. – bishop