Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....

 

Нужна помощь в настройке сервера. Анализ и устранение ошибок.

Автор sniks, 20-12-2016, 12:56:34

« назад - далее »

sniksTopic starter

VDS на ubuntu, сайт на webasyst, переодически подвисают скрипты. Скорее всего ошибка при правке кода в скриптах.... в логах AH01215: PHP Warning:  json_decode() expects parameter 1 to be string, array given in /var/www/blabla/data/www/blabla/lib/classes/shopCustoms.class.php on line 14, referer: http://yandex.ru/clck/jsredir?

Мне сложно разобратся, нужна помощь, вешается похоже nginx.....


sn_x@bk.ru
  •  


wellweb

Есть два варианта

Первый у вас нет библиотеки json  в php, вот статья как установить:

http://www.shaunfreeman.name/installing-and-configuring-mcrypt-and-json-for-php-5-5-in-ubuntu/
или попросите хостера, пусть сделает

Второй, сложный и запутанный

Возможно Вы добавляли подобные конструкции, в которых содержится json_encode

protected function info()
{
    $interval = 0;
    if (!empty($this->data['timestamp'])) {
        $interval = time() - $this->data['timestamp'];
    }
    $response = array(
        'time'      => sprintf('%d:%02d:%02d', floor($interval / 3600), floor($interval / 60) % 60, $interval % 60),
        'processId' => $this->processId,
        'progress'  => 0.0,
        'ready'     => $this->isDone(),
        'offset'    => $this->data['offset'],
        'hint'      => $this->data['hint'],
    );
    $response['progress'] = empty($this->data['products_total_count']) ? 100 : ($this->data['offset'] / $this->data['products_total_count']) * 100;
    $response['progress'] = sprintf('%0.3f%%', $response['progress']);

    if ($this->getRequest()->post('cleanup')) {
        $response['report'] = $this->report();
    }

    echo json_encode($response);
}


Если да, то удалите их и все будет норм, дело в том, что там с какой то версии нужно дописывать json_decode, но я не знаю корректного варианта.


sniksTopic starter

Цитата: wellweb от 21-12-2016, 01:42:04
Есть два варианта

Первый у вас нет библиотеки json  в php, вот статья как установить:

http://www.shaunfreeman.name/installing-and-configuring-mcrypt-and-json-for-php-5-5-in-ubuntu/
или попросите хостера, пусть сделает

Второй, сложный и запутанный

Возможно Вы добавляли подобные конструкции, в которых содержится json_encode

protected function info()
{
    $interval = 0;
    if (!empty($this->data['timestamp'])) {
        $interval = time() - $this->data['timestamp'];
    }
    $response = array(
        'time'      => sprintf('%d:%02d:%02d', floor($interval / 3600), floor($interval / 60) % 60, $interval % 60),
        'processId' => $this->processId,
        'progress'  => 0.0,
        'ready'     => $this->isDone(),
        'offset'    => $this->data['offset'],
        'hint'      => $this->data['hint'],
    );
    $response['progress'] = empty($this->data['products_total_count']) ? 100 : ($this->data['offset'] / $this->data['products_total_count']) * 100;
    $response['progress'] = sprintf('%0.3f%%', $response['progress']);

    if ($this->getRequest()->post('cleanup')) {
        $response['report'] = $this->report();
    }

    echo json_encode($response);
}


Если да, то удалите их и все будет норм, дело в том, что там с какой то версии нужно дописывать json_decode, но я не знаю корректного варианта.

Спасибо,  но модуль установлен и работает... а если бы я вставлял такой код, я бы наверняка разобрался бы, но я не спец в этом и имею лишь поверхностные знания.... Вообщем кто 100% вкурсе идем ко мне в личку, золотых гор не будет но на хороший коньяк к новому году найду. )))) Еще бы сам сервак отстроить.... не пойму или в настройках nginx намудрил или скрипт webasyst тупит безбожно... частенько ни с того ни с сего подвисания с 504 ошибкой в итоге.....

Добавлено: 23-12-2016, 19:09:25


По логам нашел место - последняя строка вот тут:

<?php

class shopCustoms {
   
    public static function explode($string, $delimiter) {
        $array = explode($delimiter, $string);
        if (count($array) < 2) {
            return array();
        }
        return $array;
    }

    public static function getCompareIds() {
        return json_decode(waRequest::cookie('shop_compare', array(), waRequest::TYPE_STRING_TRIM),1); 
    }


действительно json_decode присутствует..... ошибка именно тут....
  •  



Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....