当前位置:首页 > 技术分享

解决fastadmin报错Warning:putenv() has been disabled for security reasons in/thinkphp/base.php on line 50

admin3个月前 (02-11)技术分享245

fastadmin 出现这个错误的原因是因为使用了ThinkPHP5.0.25版本,使用了putenv()函数,但是系统中禁用了这个函数导致的。ThinkPHP高版本中已经解决了这个问题了。

Warning:putenv() has been disabled for security reasons in/thinkphp/base.php on line 50

知道报错的原因那么就好解决了

ScreenShot_2026-02-11_174407_986.png

一.删除禁用

如果你有服务器的管理权限,可以尝试删除这个函数的禁用步骤如下:


  1. 打开php.ini文件。

  2. 搜索putenv。

  3. 在disable_functions设置中,删除这个函数。

  4. 重启php服务。

二.替换putenv

如果你没有服务器管理权限或者不想删除这个函数的禁用,咱们也可以用其它方法替换掉这个函数

  1. 修改\thinkphp\base.php

    if (is_file(ROOT_PATH . '.env')) {
        function put_env($str){
            if(function_exists('putenv') && is_callable('putenv')){
                putenv($str);
            }else{
                $arr = explode('=',$str);
                $_ENV[$arr[0]] = $arr[1];
            }
        }
        
        $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);
                    put_env("$item=$v");
                }
            } else {
                put_env("$name=$val");
            }
        }
    }
  2. 修改\thinkphp\library\think\Env.php

    public static function get($name, $default = null)
        {
            $full_name = ENV_PREFIX . strtoupper(str_replace('.', '_', $name));
            if(file_exists('putenv') &&  && is_callable('putenv')){
                $result=getenv($full_name);
            }else{
                $result =isset($_ENV[$full_name])?$_ENV[$full_name]:false;
            }
    
            if (false !== $result) {
                if ('false' === $result) {
                    $result = false;
                } elseif ('true' === $result) {
                    $result = true;
                }
    
                return $result;
            }
    
            return $default;
        }

修改这两个地方就是使用$_ENV替换掉put_env()这样就不会报错了

扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/736.html

分享给朋友:

“解决fastadmin报错Warning:putenv() has been disabled for security reasons in/thinkphp/base.php on line 50” 的相关文章

WPS表格办公—取消科学计数法显示

WPS表格办公—取消科学计数法显示

我们在利用WPS表格与Excel表格进行日常办公时,经常需要制作各种各样的表格,当我们在表格当中输入长数据的时候,表格经常会自动显示为科学计数法,很多人都看不懂科学计数法的意思,那么,我们如何在输入长数字的时候避免显示为科学计数法呢,今天我…

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

家里面买了斐讯盒子T1,必不可少的就是刷机,刷机一直爽,一直刷机一直爽,这样的快乐一般人体会不到。原来斐讯盒子N1,T1,还有斐讯K2P路由器也变成了性价比超高的东东,而且众多大神也带来了超多可玩性非常高的固件和破解。楼主今天扒到了相关超高…

VirtualXposed 不支持32位应用 32位无法安装问题解决办法

VirtualXposed 不支持32位应用 32位无法安装问题解决办法

VirtualXposed 是基于VirtualApp 和 epic 在非ROOT环境下运行Xposed模块的实现(支持5.0~10.0)。与 Xposed 相比,目前 VirtualXposed 有…

贾氏鸣天鼓健耳养肾操

贾氏鸣天鼓健耳养肾操

《贾氏鸣天鼓健耳养肾操》鸣天鼓是健耳强肾治耳病的古法,贾氏越云自创的鸣天鼓健耳养肾操是在古法的基础上创建。顺序:1静坐挺胸。2双手放心脏位置的胸口,左手掌盖住右手掌。3闭目静心,深呼吸19下。4双手相互搓揉,让手掌发热。5用发热的双手手掌严…

Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)脚本

有一台服务器运行着Ngin最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本…

Chrome 最全历史版本下载以及chromedriver下载

https://vikyd.github.io/download-chromium-history-version/#/ https://dl.lancdn.com/landian/soft/chrome/m/ chromedriver的版…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。