现在很多框架使用根目录的.env文件来配置环境变量,php本身是不会去解析这个文件的,需要使用php代码读取和解析这个文件放入环境变量中。

例如查看thinkphp中.env文件的加载过程 , 使用下面这个strace命令查看fpm进程stat文件状态的过程。

strace $(pidof 'php-fpm'|sed 's/\([0-9]*\)/-p \1/g') -e stat -s 1024

返回的这条,就是在查看.env文件是否存在。

[pid 11692] stat("/data1/mailLog/public/phpdev/xxx/xxx/.env", 0x7fff6ba5f9f0) = -1 ENOENT (No such file or directory)

处理的代码是这几句

if (is_file(ROOT_PATH . '.env')) {    $env = parse_ini_file(ROOT_PATH . '.env', true);    foreach ($env as $key => $val) {        $name = ENV_PREFIX . strtoupper($key);        if (is_array($val)) {            foreach ($val as $k => $v) {                $item = $name . '_' . strtoupper($k);                putenv("$item=$v");            }        } else {            putenv("$name=$val");        }    }}

更多相关php知识,请访问php教程!

更多相关文章

  1. PHP识别文件伪装(文件上传)
  2. PHP通过设置系统环境变量来区分测试与正式环境
  3. PHP作用域和文件夹操作示例
  4. php实现将文件上传到临时目录
  5. php怎么把文件设置为插件
  6. 关于检测文件是否有病毒的PHP实现逻辑
  7. php获取文件夹中文件的两种方法
  8. 了解PHP文件上传相关知识
  9. php删除文件的方法

随机推荐

  1. Android基础(一)
  2. Android(安卓)安全机制概述
  3. Android(安卓)Jni代码示例讲解
  4. VS2019中用xamarin开发Android,显示需要an
  5. 快速进入Android世界
  6. Android控件编辑时键盘弹起与关闭处理
  7. View控件中android:drawablePadding不起
  8. Android单元测试 - 验证函数参数、返回值
  9. Android 签名那些事
  10. android 中 AppWidget 的 ListView 的实