Drupal 7 开发内部培训资料, 分头诗人

syslog_watchog()在103 118行错误

赞成!
0
否决!
  • 每个页面刷新的时候 都出现这个错误

  •  
  •  
  •  
  • Warning: openlog() has been disabled for security reasons 在 syslog_watchdog() (行 103 在 /home/wwwroot/drupal/modules/syslog/syslog.module).
function syslog_watchdog(array $log_entry) {
  global $base_url;
  $log_init = &drupal_static(__FUNCTION__, FALSE);
  if (!$log_init) {
    $log_init = TRUE;
    $default_facility = defined('LOG_LOCAL0') ? LOG_LOCAL0 : LOG_USER;
  •    (103行) openlog(variable_get('syslog_identity', 'drupal'), LOG_NDELAY, variable_get('syslog_facility', $default_facility));
  }
  $message = strtr(variable_get('syslog_format', '!base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message'), array(
    '!base_url'    => $base_url,
    '!timestamp'   => $log_entry['timestamp'],
    '!type'        => $log_entry['type'],
    '!ip'          => $log_entry['ip'],
    '!request_uri' => $log_entry['request_uri'],
    '!referer'     => $log_entry['referer'],
    '!uid'         => $log_entry['uid'],
    '!link'        => strip_tags($log_entry['link']),
    '!message'     => strip_tags(!isset($log_entry['variables']) ? $log_entry['message'] : strtr($log_entry['message'], $log_entry['variables'])),
  ));
  •   (118行)syslog($log_entry['severity'], $message);
}

2 个回答

赞成!
0
否决!

赞成!
0
否决!

因为你打开了syslog 模块,而syslog模块是需要环境开启openlog的,一般为了安全,openlog在很多时候需要关闭。

关闭的地方是在php.ini,找到disable_functions,会看到类似下面一行:

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockope

如果你想解决这个错误,有两种方法:

方法1,禁用syslog 模块,在drupal 后台的admin/modules中,找到syslog,禁用。

方法2,开启openlog,在环境中的php.ini找到disable_functions,把等号后面的openlog删除。