【发布时间】:2015-04-25 05:45:14
【问题描述】:
我正在尝试通过 php 运行一个 openssl 命令,该命令通常可以正常工作,但是我尝试运行的一个特定命令不起作用。
这是手动运行的命令,完美运行:
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
例如,这是一个 PHP 中的 openssl,它确实可以工作:
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=”中的部分有问题,可能无法正确解释。如果我通过 php 进行类似的 openssl 调用而没有 "" 中的部分,则命令执行良好。
希望有知识的 php 人检查它是否通过正确
请不要建议我使用 PHP 内置的 openssl 库,我很了解它们,并且我在不同的项目上工作,但我需要使用 exec() 来创建不可用的 ECC 密钥在 PHP 内置的 openssl 库中。
【问题讨论】:
-
您是在命令提示符下使用“php filename.php”运行它吗?
-
我有一个包含 exec() 命令的 php 文件,我只是在网络浏览器中运行该 php 页面。没有 exec() 的命令是我通过命令行运行的命令并且可以工作
-
您可以尝试使用“php filename.php”从命令提示符而不是 Web 浏览器运行 php 脚本
-
我不明白.. 如何从命令提示符运行 php 脚本?
-
如果有帮助,我在 Windows 上。
'php' is not recognized as an internal or external command, operable program or batch file.