This article is a mirror article of machine translation, please click here to jump to the original article.

View: 12990|Reply: 5

[Web] Errors that often occur on web servers, below is the error log for slow queries

[Copy link]
Posted on 11/30/2014 9:09:51 PM | | |
[30-Nov-2014 20:22:25]  [pool www] pid 10383
script_filename = /test/forum.php
[0x00007fe08a61eba8] curl_exec() /test/source/function/function_filesock.php:68
[0x00007fe08a61e960] _dfsockopen() /test/source/function/function_core.php:201
[0x00007fe08a61e7c0] dfsockopen() /test/source/class/class_image.php:123
[0x00007fe08a61e608] init() /test/source/class/class_image.php:45
[0x00007fe08a61e2a8] Thumb() /test/source/function/function_block.php:410
[0x00007fe08a61e038] block_template() /test/source/function/function_block.php:177
[0x00007fe08a61def8] block_fetch_content() /test/source/function/function_block.php:120
[0x00007fe08a61de18] block_display_batch() /test/source/function/function_core.php:804
[0x00007fe08a61dbd0] block_display() /test/data/template/3_diy_forum_discuz.tpl.php:29
[0x00007fe08a61d828] +++ dump failed

[30-Nov-2014 20:22:26]  [pool www] pid 10392
script_filename = /test/forum.php
[0x00007fe08a61eba8] curl_exec() /test/source/function/function_filesock.php:68
[0x00007fe08a61e960] _dfsockopen() /test/source/function/function_core.php:201
[0x00007fe08a61e7c0] dfsockopen() /test/source/class/class_image.php:123
[0x00007fe08a61e608] init() /test/source/class/class_image.php:45
[0x00007fe08a61e2a8] Thumb() /test/source/function/function_block.php:410
[0x00007fe08a61e038] block_template() /test/source/function/function_block.php:177
[0x00007fe08a61def8] block_fetch_content() /test/source/function/function_block.php:120
[0x00007fe08a61de18] block_display_batch() /test/source/function/function_core.php:804
[0x00007fe08a61dbd0] block_display() /test/data/template/3_diy_forum_discuz.tpl.php:29
[0x00007fe08a61d828] +++ dump failed


You know what is the cause of this error, and the slow query execution will record this error for more than 5 seconds, server nginx and php-fpm





Previous:Teach you to quickly understand the file function of Discuz!, and you don't have to ask for help to modify files from now on
Next:[Must-have for buying train tickets] 12306 Bypass diversion ticket grabbing v1.5 green version
Posted on 12/1/2014 12:20:49 PM |
[0x00007fe08a61eba8] curl_exec() /test/source/function/function_filesock.php:68 There is an error on line 68, which can only help :L
 Landlord| Posted on 12/1/2014 1:45:36 PM |
Delver_Si Posted on 2014-12-1 12:20
[0x00007fe08a61eba8] curl_exec() /test/source/function/function_filesock.php:68 There is an error on line 68, only ...

Your sister, I also know that this line is wrong, but I don't know what this document is for
Posted on 12/1/2014 9:01:08 PM |
/test/source/function/function_filesock.php  源代码给我
 Landlord| Posted on 12/1/2014 9:14:41 PM |
Delver_Si Posted on 2014-12-1 21:01
/test/source/function/function_filesock.php  源代码给我

[mw_shl_code=php,true]<?php

/**
*      [Discuz!] (C)2001-2099 Comsenz Inc.
*      This is NOT a freeware, use is subject to license terms
*
*      $Id: function_filesock.php 34441 2014-04-29 07:47:26Z nemohou $
*/

if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}

function _dfsockopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE, $encodetype  = 'URLENCODE', $allowcurl = TRUE, $position = 0, $files = array( )) {
        $return = '';
        $matches = parse_url($url);
        $scheme = $matches['scheme'];
        $host = $matches['host'];
        $path = $matches['path'] ? $matches['path']. ($matches['query'] ? '?'. $matches['query'] : '') : '/';
        $port = !empty($matches['port']) ? $matches['port'] : ($scheme == 'http' ? '80' : '');
        $boundary = $encodetype == 'URLENCODE' ? '' : random(40);

        if($post) {
                if(!is_array($post)) {
                        parse_str($post, $post);
                }
                _format_postkey($post, $postnew);
                $post = $postnew;
        }
        if(function_exists('curl_init') && function_exists('curl_exec') && $allowcurl) {
                $ch = curl_init();
                $httpheader = array();
                if($ip) {
                        $httpheader[] = "Host: ".$host;
                }
                if($httpheader) {
                        curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
                }
                curl_setopt($ch, CURLOPT_URL, $scheme.'://'.( $ip ? $ip : $host). ($port ? ':'.$port : '').$path);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                curl_setopt($ch, CURLOPT_HEADER, 1);
                if($post) {
                        curl_setopt($ch, CURLOPT_POST, 1);
                        if($encodetype == 'URLENCODE') {
                                curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                        } else {
                                foreach($post as $k => $v) {
                                        if(isset($files[$k])) {
                                                $post[$k] = '@'.$files[$k];
                                        }
                                }
                                foreach($files as $k => $file) {
                                        if(!isset($post[$k]) && file_exists($file)) {
                                                $post[$k] = '@'.$file;
                                        }
                                }
                                curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                        }
                }
                if($cookie) {
                        curl_setopt($ch, CURLOPT_COOKIE, $cookie);
                }
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
                curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
                $data = curl_exec($ch);
                $status = curl_getinfo($ch);
                $errno = curl_errno($ch);
                curl_close($ch);
                if($errno || $status['http_code'] != 200) {
                        return;
                } else {
                        $GLOBALS['filesockheader'] = substr($data, 0, $status['header_size']);
                        $data = substr($data, $status['header_size']);
                        return !$limit ? $data : substr($data, 0, $limit);
                }
        }

        if($post) {
                if($encodetype == 'URLENCODE') {
                        $data = http_build_query($post);
                } else {
                        $data = '';
                        foreach($post as $k => $v) {
                                $data .= "--$boundary\r\n";
                                $data .= 'Content-Disposition: form-data; name="'.$k.'"'. (isset($files[$k]) ? '; filename="'.basename($files[$k]).'"; Content-Type: application/octet-stream' : '')." \r\n\r\n";
                                $data .= $v." \r\n";
                        }
                        foreach($files as $k => $file) {
                                if(!isset($post[$k]) && file_exists($file)) {
                                        if($fp = @fopen($file, 'r')) {
                                                $v = fread($fp, filesize($file));
                                                fclose($fp);
                                                $data .= "--$boundary\r\n";
                                                $data .= 'Content-Disposition: form-data; name="'.$k.'"; filename="'.basename($file).'"; Content-Type: application/octet-stream'." \r\n\r\n";
                                                $data .= $v." \r\n";
                                        }
                                }
                        }
                        $data .= "--$boundary\r\n";
                }
                $out = "POST $path HTTP/1.0\r\n";
                $header = "Accept: */*\r\n";
                $header .= "Accept-Language: zh-cn\r\n";
                $header .= $encodetype == 'URLENCODE' ? "Content-Type: application/x-www-form-urlencoded\r\n" : "Content-Type: multipart/form-data; boundary=$boundary\r\n";
                $header .= 'Content-Length: '.strlen($data)." \r\n";
                $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
                $header .= "Host: $host:$port\r\n";
                $header .= "Connection: Close\r\n";
                $header .= "Cache-Control: no-cache\r\n";
                $header .= "Cookie: $cookie\r\n\r\n";
                $out .= $header;
                $out .= $data;
        } else {
                $out = "GET $path HTTP/1.0\r\n";
                $header = "Accept: */*\r\n";
                $header .= "Accept-Language: zh-cn\r\n";
                $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
                $header .= "Host: $host:$port\r\n";
                $header .= "Connection: Close\r\n";
                $header .= "Cookie: $cookie\r\n\r\n";
                $out .= $header;
        }

        $fpflag = 0;
        if(!$fp = @fsocketopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout)) {
                $context = array(
                        'http' => array(
                                'method' => $post ? 'POST' : 'GET',
                                'header' => $header,
                                'content' => $post,
                                'timeout' => $timeout,
                        ),
                );
                $context = stream_context_create($context);
                $fp = @fopen($scheme.'://'.( $ip ? $ip : $host).':'.$port.$path, 'b', false, $context);
                $fpflag = 1;
        }

        if(!$fp) {
                return '';
        } else {
                stream_set_blocking($fp, $block);
                stream_set_timeout($fp, $timeout);
                @fwrite($fp, $out);
                $status = stream_get_meta_data($fp);
                if(!$status['timed_out']) {
                        while (!feof($fp) && !$fpflag) {
                                $header = @fgets($fp);
                                $headers .= $header;
                                if($header && ($header == "\r\n" ||  $header == "\n")) {
                                        break;
                                }
                        }
                        $GLOBALS['filesockheader'] = $headers;

                        if($position) {
                                for($i=0; $i<$position; $i++) {
                                        $char = fgetc($fp);
                                        if($char == "\n" && $oldchar != "\r") {
                                                $i++;
                                        }
                                        $oldchar = $char;
                                }
                        }

                        if($limit) {
                                $return = stream_get_contents($fp, $limit);
                        } else {
                                $return = stream_get_contents($fp);
                        }
                }
                @fclose($fp);
                return $return;
        }
}

function _format_postkey($post, &$result, $key = '') {
        foreach($post as $k => $v) {
                $_k = $key ? $key.' ['.$k.']' : $k;
                if(is_array($v)) {
                        _format_postkey($v, $result, $_k);
                } else {
                        $result[$_k] = $v;
                }
        }
}

?>[/mw_shl_code]
Posted on 12/2/2014 12:08:32 AM |
I can't understand
Disclaimer:
All software, programming materials or articles published by Code Farmer Network are only for learning and research purposes; The above content shall not be used for commercial or illegal purposes, otherwise, users shall bear all consequences. The information on this site comes from the Internet, and copyright disputes have nothing to do with this site. You must completely delete the above content from your computer within 24 hours of downloading. If you like the program, please support genuine software, purchase registration, and get better genuine services. If there is any infringement, please contact us by email.

Mail To:help@itsvse.com