Я пытаюсь запустить команду openssl через php, который обычно работает нормально, но есть одна конкретная команда, которую я пытаюсь запустить, которая не работает.using exec() с PHP для запуска команды
Вот команда запуска вручную, который работает отлично:
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout keyfile.key -out requestfile.csr
Например, вот OpenSSL в PHP, который делает работу:
exec('C:/xampp/apache/bin/openssl ecparam -out keyfile.key -name prime256v1 -genkey');
Та же команда через PHP НЕ работает ..
exec('C:/xampp/apache/bin/openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \'/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com\' -keyout keyfile.key -out requestfile.csr');
Я думаю, что что-то не так с деталями в двойных кавычках. «/ C =» может не интерпретироваться должным образом. если я делаю аналогичные вызовы openssl через php без частей в "", команда выполняется нормально.
Хотела знающий PHP человек, чтобы проверить, если его передается правильно или нет
Пожалуйста, не предложить мне использовать PHP встроенный в библиотеке OpenSSL, я хорошо осведомлен о них, и у меня есть все, что работа в другом проекте, но мне нужно использовать exec() для создания ключей ECC, которые недоступны в PHP, встроенной в библиотеку openssl.
Вы используете это из командной строки с именем «php filename.php»? – kojow7
У меня есть файл php с командой exec() внутри, и я просто запускаю эту php-страницу в веб-браузере. Команда без exec() - это тот, который я запускаю через командную строку и работает – user3436467
Можете ли вы попробовать запустить скрипт php из командной строки вместо веб-браузера с помощью «php filename.php» – kojow7