简体   繁体   English

如何将私钥内容放入 dotenv .env 文件中用于 lumen 应用程序?

[英]How to put the private key contents in dotenv .env file for lumen app?

I want to work with SFTP server in my lumen app and therefore i need to store the private key to access the SFTP server in the .env file (dotenv)我想在我的 lumen 应用程序中使用 SFTP 服务器,因此我需要在 .env 文件 (dotenv) 中存储私钥以访问 SFTP 服务器

I tried this approach:我试过这种方法:

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

When I dd(env('SFTP_PRIVATE_KEY'));当我dd(env('SFTP_PRIVATE_KEY')); I am getting an empty string back我得到一个空字符串

Any idea how to deal with this?知道如何处理这个问题吗?

Okay, I've managed to come up with a work around method like this: 好的,我设法解决了这样的问题:

  1. I've replaced every new line with double pipes: || 我把它换成双管每一个新行: ||
  2. When I load the contents of the environment variables via lumen's env() function, I replaced it back to new lines 当我通过lumen的env()函数加载环境变量的内容时,我将其替换为新行

for eg my .env 例如我的.env

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

and here's how you use it: 使用方法如下:

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

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

I tested this and this now work, let me know if there is a better way. 我对此进行了测试,现在可以使用,请告诉我是否有更好的方法。

PHP dotenv version 3 adds support for multi-line values. PHP dotenv 版本 3添加了对多行值的支持 So now you can just do this:所以现在你可以这样做:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM