Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 12990|Відповідь: 5

[Веб] Помилки, які часто трапляються на веб-серверах, нижче наведено журнал помилок для повільних запитів

[Копіювати посилання]
Опубліковано 30.11.2014 21:09:51 | | |
[30-листопад-2014 20:22:25]  [Pool www] PID 10383
script_filename = /test/forum.php
[0x00007fe08a61eba8] curl_exec() /тест/джерело/функція/function_filesock.php:68
[0x00007fe08a61e960] _dfsockopen() /test/source/function/function_core.php:201
[0x00007fe08a61e7c0] dfsockopen() /тест/джерело/клас/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() /тест/джерело/функція/function_block.php:177
[0x00007fe08a61def8] block_fetch_content() /тест/джерело/функція/function_block.php:120
[0x00007fe08a61de18] block_display_batch() /тест/джерело/функція/function_core.php:804
[0x00007fe08a61dbd0] block_display() /test/data/template/3_diy_forum_discuz.tpl.php:29
[0x00007fe08a61d828] +++ дамп не вдався

[30-листопад-2014 20:22:26]  [pool www] PID 10392
script_filename = /test/forum.php
[0x00007fe08a61eba8] curl_exec() /тест/джерело/функція/function_filesock.php:68
[0x00007fe08a61e960] _dfsockopen() /test/source/function/function_core.php:201
[0x00007fe08a61e7c0] dfsockopen() /тест/джерело/клас/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() /тест/джерело/функція/function_block.php:177
[0x00007fe08a61def8] block_fetch_content() /тест/джерело/функція/function_block.php:120
[0x00007fe08a61de18] block_display_batch() /тест/джерело/функція/function_core.php:804
[0x00007fe08a61dbd0] block_display() /test/data/template/3_diy_forum_discuz.tpl.php:29
[0x00007fe08a61d828] +++ дамп не вдався


Ви знаєте причину цієї помилки, і повільне виконання запиту зафіксує її більше ніж на 5 секунд, server nginx і php-fpm





Попередній:Навчить вас швидко розуміти функцію файлів Discuz!, і тепер вам не потрібно просити допомоги для зміни файлів
Наступний:[Обов'язкове для купівлі квитків на поїзд] 12306 Захоплення квитка на об'їзд v1.5 зелена версія
Опубліковано 01.12.2014 12:20:49 |
[0x00007fe08a61eba8] curl_exec() /test/source/function/function_filesock.php:68 На рядку 68 є помилка, яка може лише допомогти :L
 Орендодавець| Опубліковано 01.12.2014 13:45:36 |
Delver_Si Опубліковано 2014-12-1 12:20
[0x00007fe08a61eba8] curl_exec() /test/source/function/function_filesock.php:68 Є помилка на рядку 68, тільки ...

Твоя сестра, я теж знаю, що цей рядок неправильний, але не знаю, для чого цей документ
Опубліковано 01.12.2014 21:01:08 |
/test/source/function/function_filesock.php  源代码给我
 Орендодавець| Опубліковано 01.12.2014 21:14:41 |
Delver_Si Опубліковано 2014-12-1 21:01
/test/source/function/function_filesock.php  源代码给我

[mw_shl_code=php,true]<?php

/**
* [Диску!] (C) 2001-2099 Comsenz Inc.
* Це НЕ безкоштовне програмне забезпечення, використання підпадає під ліцензійні умови
*
* $Id: function_filesock.php 34441 2014-04-29 07:47:26Z nemohou $
*/

if(!defined('IN_DISCUZ')) {
        вихід ('Доступ заборонено');
}

функція _dfsockopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = ХИБНО, $ip = '', $timeout = 15, $block = ІСТИННО, $encodetype = 'URLENCODE', $allowcurl = ІСТИННО, $position = 0, $files = масив( )) {
        $return = '';
        $matches = parse_url($url);
        $scheme = $matches['схема'];
        $host = $matches['хост'];
        $path = $matches['шлях'] ? $matches['шлях']. ($matches['запит'] ? '?'. $matches['запит'] : '') : '/';
        $port = !empty($matches['порт']) ? $matches['port'] : ($scheme == 'http' ? '80' : '');
        $boundary = $encodetype == 'URLENCODE'? '' : випадковий (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 = масив();
                if($ip) {
                        $httpheader[] = "Хост: ".$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, неправда);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, неправда);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, правда);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, правда);
                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) {
                        повернення;
                } else {
                        $GLOBALS['filesockheader'] = substr($data, 0, $status['header_size']);
                        $data = substr($data, $status['header_size']);
                        Повернись! $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 .= 'Зміст-Диспозиція: форма-дані; name="'.$k.'"'. (isset($files[$k]) ? '; filename="'.basename($files[$k]).'"; Тип змісту: застосування/октет-потік' : '')." \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, розмір файлу($file));
                                                fclose($fp);
                                                $data .= "--$boundary\r\n";
                                                $data .= 'Зміст-Диспозиція: форма-дані; name="'.$k.'"; filename="'.basename($file).'"; Тип контенту: застосування/октет-потік.» \r\n\r\n";
                                                $data .= $v." \r\n";
                                        }
                                }
                        }
                        $data .= "--$boundary\r\n";
                }
                $out = "POST $path HTTP/1.0\r\n";
                $header = "Прийняти: */*\r\n";
                $header .= «Прийнята мова: zh-cn\r\n»;
                $header .= $encodetype == 'URLENCODE' ? "Content-Type: application/x-www-form-urlencoded\r\n" : "Content-Type: multipart/form-data; межа=$boundary\r\n";
                $header .= 'Довжина змісту: '.strlen($data)." \r\n";
                $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
                $header .= "Ведучий: $host:$port\r\n";
                $header .= «Зв'язок: Близько\r\n»;
                $header .= "Cache-Control: no-cache\r\n";
                $header .= «Cookie: $cookie\r\n\r\n»;
                $out .= $header;
                $out .= $data;
        } else {
                $out = "ОТРИМАТИ $path HTTP/1.0\r\n";
                $header = "Прийняти: */*\r\n";
                $header .= «Прийнята мова: zh-cn\r\n»;
                $header .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
                $header .= "Ведучий: $host:$port\r\n";
                $header .= «Зв'язок: Близько\r\n»;
                $header .= «Cookie: $cookie\r\n\r\n»;
                $out .= $header;
        }

        $fpflag = 0;
        if(!$fp = @fsocketopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout)) {
                $context = масив(
                        'http' => масив(
                                'метод' => $post ? 'POST' : 'GET',
                                'header' => $header,
                                'зміст' => $post,
                                'тайм-аут' => $timeout,
                        ),
                );
                $context = stream_context_create($context);
                $fp = @fopen($scheme.'://'.( $ip? $ip : $host).':'.$port.$path, 'b', хибно, $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']) {
                        тоді як (!feof($fp) && !$fpflag) {
                                $header = @fgets($fp);
                                $headers .= $header;
                                if($header && ($header == "\r\n" ||  $header == "\n")) {
                                        перерва;
                                }
                        }
                        $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;
        }
}

функція _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]
Опубліковано 02.12.2014 00:08:32 |
Я не можу зрозуміти
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com