Положил сервак используя exec()

261
07 апреля 2018, 20:14

Написал скрипт, который автоматически будет определять робота и на лету делать для него снапшот страницы. Написал код в php, который проверяет, существует ли снапшот. И если нет, то запускает команду exec('cd /var/www/developer/; node doSingleSnapshot.js https://www.example.com'). Открываю страницу, на которой должен выполниться скрипт и замечаю, что сервер начал подтормаживать. Иду в логи и вижу, что каждую секунду в error.log веб-сервера nginx пишется строка с ошибкой 110: Connection timed out. Смотрю в код, что мог сделать не так. Вроде всё в порядке. Пытаюсь обновить страницу, а всё. Сервер лежит. SSH не откликается, как и SFTP. Веб-сервер тоже лежит. Даже ребутнуть сервак через веб-панель хостера(OVH) не могу. Что могло вызвать такое поведение сервера и как мне теперь его поднять? У PHP или NodeJS же должен быть какой-то авто-рубильник?

Увы, код привести не могу, меня выбросило из редактора как только пропал коннект к sftp. Возможно, кто-то сталкивался с подобным или хоть примерно знаком.

UPD: сервер поднялся, логи пустые. Добавляю код:

if(strpos($ua, 'YandexBot') !== false) {
    $snapshot_name = '/var/www/production/flaut/snapshots' . $_SERVER['REQUEST_URI'] . 'index.html';
    if(file_exists($snapshot_name)) {
        $now = time();
        $snapshot_created = filemtime($snapshot_name);
        $datediff = $now - $my_date;
        if( round($datediff / (60 * 60 * 24)) > 30) {
            exec('cd /var/www/developer/flaut/dev; node doSingleSnapshot.js ' . urlencode('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) );
        }
    } else {
        exec('cd /var/www/developer/flaut/dev; node doSingleSnapshot.js ' . urlencode('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) );
    }
    return require('/var/www/production/flaut/snapshots' . $_SERVER['REQUEST_URI'] . 'index.html');
}
READ ALSO
Не работает nodejs скрипт, запущенный через exec в php

Не работает nodejs скрипт, запущенный через exec в php

Почему-то не работает NodeJS скрипт, вызванный из php посредством execВызываю скрипт таким образом:

226
Emmet не работает в php файлах

Emmet не работает в php файлах

В Visual Studio Code отказывается работать emmet в php файлахКогда пытаюсь написать что нибудь с помощью сокращений, то всё просто отваливается

446
react + laravel ошибка в ренедере

react + laravel ошибка в ренедере

Доброе время суток пытаюсь сделать рендер блока в месте шаблонизатором blade laravel получаю большую ошибку пример кода

241
Обновление поля ACF

Обновление поля ACF

ЗдравствуйтеЕсть сайт на Wordpress, установлен плагин Advanced Custom Fields

199