scandir() has been disabled for security reasons 解决办法

在LNMP服务器环境部署代码时候。遇到了“scandir() has been disabled for security reasons”这个问题。 效果如下图:

scandir() has been disabled for security reasons

scandir() has been disabled for security reasons

中文翻译

scandir()已经出于安全原因关闭

 

解决办法如下:

 

1、打开phpinfo.php , 搜索: scandir 找到disabled_function,确认此函数未开启

disabled_function scandir

 

2、 打开文件: /usr/local/php/etc/php.ini ,输入/,进入搜索模式,

找到 disable_functions,寻找disable_functions字符串,将后面的 scandir 删除,保存并退出;

 

3、重启php(先杀掉php-fpm进程再重启php)

 

5、打开测试phpinfo看scandir是否成功;scandir

    A+
发布日期:2017年05月09日 22:43:53  所属分类:PHP
最后更新时间:2018-03-20 12:58:04
付杰
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 199.0元
  • 市场价:199.0元
  • ¥ 99.0元
  • 市场价:99.0元
  • ¥ 79.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 头像 像风一样 2

    我也是出现:
    // 读取扩展配置文件 scandir() has been disabled for security reasons

  2. 嗯哼 嗯哼 0

    今天我安装tp也遇到了这个问题:
    如下:

    [2] ErrorException in App.php line 258
    scandir() has been disabled for security reasons
                $config = Config::load(CONF_PATH . $module . 'config' . CONF_EXT);
    
                // 读取数据库配置文件
                $filename = CONF_PATH . $module . 'database' . CONF_EXT;
                Config::load($filename, 'database');
    
                // 读取扩展配置文件
                if (is_dir(CONF_PATH . $module . 'extra')) {
                    $dir   = CONF_PATH . $module . 'extra';
                    $files = scandir($dir);
                    foreach ($files as $file) {
                        if ('.' . pathinfo($file, PATHINFO_EXTENSION) === CONF_EXT) {
                            $filename = $dir . DS . $file;
                            Config::load($filename, pathinfo($file, PATHINFO_FILENAME));
                        }
                    }
                }
    
                // 加载应用状态配置
    Call Stack
    in App.php line 258
    at Error::appError(2, 'scandir() has been d...', '/home/wwwroot/tp5/th...', 258, ['module' => '', 'config' => ['app_host' => '', 'app_debug' => false, 'app_trace' => false, ...], 'filename' => '/home/wwwroot/tp5/pu...', ...])
    at scandir('/home/wwwroot/tp5/pu...') in App.php line 258
    at App::init() in App.php line 182
    at App::initCommon() in App.php line 82
    at App::run() in start.php line 19
    at require('/home/wwwroot/tp5/th...') in index.php line 17