0

我想在我的 lumen 应用程序中使用 SFTP 服务器,因此我需要将私钥存储在 .env 文件 (dotenv) 中以访问 SFTP 服务器

我尝试了这种方法:

SFTP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nHkVN9...\n-----END DSA PRIVATE KEY-----\n"

当我dd(env('SFTP_PRIVATE_KEY'));得到一个空字符串时

知道如何处理吗?

4

2 回答 2

2

好的,我设法想出了一个像这样的解决方法:

  1. 我用双管替换了每条新线:||
  2. 当我通过 lumen 的env()函数加载环境变量的内容时,我将其替换回新行

例如我的.env

SFTP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----||HkVN9…||-----END DSA PRIVATE KEY-----||"

下面是你如何使用它:

$privateKey = env('SFTP_PRIVATE_KEY');
$privateKey = str_replace('||', PHP_EOL, $privateKey);

// Debug
echo '<pre>';
echo($privateKey);
exit;

我测试了这个,现在这个工作,让我知道是否有更好的方法。

于 2019-01-21T10:29:20.327 回答
0

PHP dotenv 版本 3增加了对多行值的支持。所以现在你可以这样做:

SFTP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
HkVN9…
-----END DSA PRIVATE KEY-----"
于 2019-09-30T17:30:16.160 回答