Проверка системы
Содержание
Основные типы проверок
Полная проверка системы осуществляется плагином аудита. Этот плагин позволяет диагностировать практически все
проблемы, с которыми мы сталкивались ранее у наших клиентов. Большинство проверок являются относительно
быстрыми, исключение составляют лишь проверки контента (видео и фото), которые могут занимать длительное время
при большом массиве данных.
Всего плагин аудита выполняет более 50 различных проверок. Отсутствия ошибок и предупреждений не гарантирует
отсутствие проблем на 100%, однако это показывает достаточно высокий уровень работоспособности вашего проекта в
целом.
Рассмотрим основные типы проверок:
-
Проверка инсталляции (Check installation) - выполняет проверку системных аспектов
работы KVS, таких как наличие нужных прав на системных директориях, cURL, FFmpeg, корректность опций всех
форматов видео, скриншотов и фотоальбомов, наличие кастомных поправок в файлах KVS и некоторые другие.
-
Проверка целостности БД (Check database integrity) - проверяет целостность всех
таблиц базы данных KVS, а также совпадение времени в PHP и базе данных.
-
Проверка серверов (Check servers) - проверяет корректность настройки и
работоспособность всех серверов хранения и конвертации, тестирует отдачу контента.
-
Проверка блоков и шаблонов сайта (Check website blocks and templates) - проверяет
работоспособность всех блоков сайта, а также проверяет все шаблоны на наличие известных потенциальных
проблем.
-
Проверка видео контента (Check video content) - досконально проверяет наличие и
корректность всех файлов по каждому видео на всех серверах хранения и на главном сервере. Эта проверка
может занимать длительное время в зависимости от наполненности базы и производительности сервера.
-
Проверка контента альбомов (Check album content) - досконально проверяет наличие и
корректность всех файлов по каждому альбому на главном сервере. Эта проверка может занимать длительное
время в зависимости от наполненности базы и производительности сервера.
-
Проверка защиты контента (Check content protection) - проверяет возможность
получить несанкционированный доступ к защищенному видео и фото контенту, а также возможность хотлинка.
-
Проверка критериев безопасности проекта (Check project security criteria) -
проверяет невозможность изменения различных файлов и директорий KVS, ищет PHP файлы, которые не принадлежат
KVS, также проверяет некоторые директории на возможность запуска PHP из них.
Сообщения
Описание ошибок
Ошибки означают неработоспособность какого-то компонента системы, либо системы в целом. Любая ошибка должна
быть устранена, в противном случае "что-то где-то" не будет работать.
-
Версия базы данных не корректна (Database version mismatch detected) - эта ошибка
может возникнуть после некорректного (неполного) обновления. Она означает, что версия файлов KVS расходится
с версией базы данных. Чтобы решить ее, вам необходимо полностью повторить выполнение обновления, либо
заказать установку обновления у службы поддержки.
-
Системный файл отсутствует (The system file is missing) - ошибка указывает на
системный файл KVS, который вероятно был случайно удален. Необходимо восстановить файл по указанному пути.
-
Cron запускается из некорректной директории (Cron executed from invalid directory) -
ошибка сигнализирует о том, что файл cron.php не содержит корректных данных о своей директории выполнения и
вероятно запускается некорректной командой. Проверьте команду запуска задачи, она должна иметь похожий
вид:
cd /path/to/admin/include && /usr/local/bin/php cron.php
-
Последний запуск Cron-а был более 15 минут назад (Cron executed more than 15 minutes ago) -
ошибка говорит о том, что скрипт cron.php не запускался в течение 15 минут. Проверьте наличие команды
Cron, она должна иметь похожий вид:
cd /path/to/admin/include && /usr/local/bin/php cron.php
-
IP клиентов определяется некорректно (The client IP is not being correctly detected) -
ошибка с большой долей вероятности говорит о том, что Nginx не передает данные о IP адресе клиента на
уровень Apache, в результате чего у всех посетителей определяется один и тот же IP адрес - внутренний.
Сначала вам нужно проверить, так ли это. Для этого просто посмотрите логи Apache и если вы там увидите один
и тот же IP адрес для всех запросов - проблема есть. Проблема является общей, ее решение можно найти в
интернете.
-
Требуются привилегии на запись (Write permissions required) - при установке KVS не
были установлены требуемые привилегии на файл (666) или директорию (777). Установите нужные привилегии.
-
Библиотека не работает корректно (Library is not working properly) - указанная
в деталях ошибки библиотека не работает корректно. Это относится либо к библиотеке cURL, либо к библиотеке
FFmpeg. Для решения проблемы необходимо проверить работоспособность указанной библиотеки вручную.
-
Не получилось создать файл формата видео (Video format failed to be converted) -
возникла ошибка FFmpeg при попытке создания формата видео. В деталях ошибки вы сможете увидеть запускаемую
команду и ответ FFmpeg на нее, который будет содержать информацию об ошибке. Как правило, проблема возникает
из-за некорректной сборки FFmpeg или из-за ошибки в опциях FFmpeg указанного формата видео.
-
Не получилось создать файл формата скриншотов (Screenshot format failed to be created) -
возникла ошибка ImageMagick при попытке создания формата скриншотов. В деталях ошибки вы сможете увидеть
запускаемую команду и ответ ImageMagick на нее, который будет содержать информацию об ошибке. Как правило,
проблема возникает из-за некорректной сборки ImageMagick или из-за ошибки в опциях ImageMagick указанного
формата скриншотов.
-
Не получилось создать файл формата альбомов (Album format failed to be created) -
возникла ошибка ImageMagick при попытке создания формата альбомов. В деталях ошибки вы сможете увидеть
запускаемую команду и ответ ImageMagick на нее, который будет содержать информацию об ошибке. Как правило,
проблема возникает из-за некорректной сборки ImageMagick или из-за ошибки в опциях ImageMagick указанного
формата альбомов.
-
Нет поддержки шрифтов True Type (True Type fonts support is not enabled) -
с большой долей вероятности ошибка говорит о том, что на вашем сервере нет поддержки шрифтов True Type. Для
того, чтобы убедиться в этом, зайдите на любую страницу сайта, где отображается captcha (например, страница
/invite_friend.php. Если вы не увидите там изображение с цифрами, значит, проблема действительно существует.
-
Модуль Nginx для отображения процесса загрузки файлов не настроен корректно (Nginx Upload Progress module is not configured correctly) -
ошибка сигнализирует о том, что HttpUploadProgressModule не работает корректно. Вам необходимо проверить,
выполнены ли требования KVS по корректной настройке этого модуля (стоят ли все 3 нужные директивы в нужных
местах конфигурации).
-
Установленный путь содержит лишние слэш-символы (The configured path has redundant slash symbols) -
это значит, что при выполнение инсталляции вы установили лишние слэш символы в конце заданного в setup.php
серверного пути. Удалите их.
-
Невозможно установить права 777 на созданную директорию (Unable to set 777 permissions to the created folder) -
ошибка говорит о том, что PHP не может установить права 777 на создаваемую им директорию (права, которые
устанавливаются в действительности можно увидеть в деталях ошибки). Обратитесь к администраторам сервера
для устранения этой проблемы.
-
PHP код блока содержит ошибки (The implementation of block is broken) - с большой
долей вероятности ошибка говорит о том, что вы внесли изменения в файл блока, и он не может быть обработан
корректно, либо в нем не хватает нужных функций. Если это так, проверьте свои изменения.
-
Страница не работает (Page is broken) - страница содержит критическую ошибку.
Чтобы понять детали ошибки необходимо зайти на редактирование этой страницы в панели администрирования.
Список всех ошибок будет отображаться в самом верху редактора страницы.
-
Компонент страницы не работает (Page component is broken) - компонент страницы
содержит критическую ошибку. Чтобы понять детали ошибки необходимо зайти на редактирование этого компонента
в панели администрирования. Список всех ошибок будет отображаться в самом верху редактора компонента.
-
MySQL вернул ошибку при проверке состояния таблицы (MySQL returned error for table status check) -
возникла ошибка в таблице базы данных. Необходимо воспользоваться плагином исправления базы данных.
-
Время MySQL не синхронизировано с локальным временем (MySQL time is not synchronized with the main server time) -
время MySQL сервера расходится со временем PHP. Такое может возникать из-за разных настроек временной зоны.
Необходимо синхронизировать эти значения времени.
-
Различные ошибки об отсутствии файлов видео / альбомов или некорректных их размерах -
эти ошибки генерируются полной проверкой контента. Если ошибки единичные, то наиболее правильным вариантом
будет удаление этих видео / альбомов. Если ошибки массовые, то вам лучше обратиться в службу поддержки для
установления причины.
-
Невозможно соединиться с указанным хостом по 21 порту (Failed to connect to the specified host and 21 port) -
возникла проблема с подключением к хосту, указанному в данных FTP соединения для сервера хранения или
конвертации. Проверьте правильность написания хоста. Если включена защита FTP по IP, проверьте, чтобы IP
вашего главного сервера был добавлен в список допустимых.
-
Невозможно осуществить вход используя указанные данные (Failed to log in using the specified data) -
возникла проблема с данными входа, указанными в данных FTP соединения для сервера хранения или конвертации.
Проверьте правильность пользователя и пароля. Если включена защита FTP по IP, проверьте, чтобы IP вашего
главного сервера был добавлен в список допустимых.
-
Невозможно выполнить операции put / get / delete (Failed to execute put / get / delete operation) -
не хватает привилегий для записи файлов по FTP соединению, указанному для сервера хранения или конвертации.
Попробуйте подключиться самостоятельно и проверьте возможность записи файлов в указанную директорию.
-
Расширение PHP для работы FTP не найдено (PHP extension for FTP is not available) -
не установлено расширение PHP, которое требуется для работы с FTP соединениями. Установите требуемое
расширение.
-
Управляющий скрипт не доступен (Control script is not accessible) -
управляющий скрипт remote_control.php, который должен находиться в корневой директории HTTP сервера хранения не
отвечает либо не работает корректно. Попробуйте вызвать этот скрипт вручную (его URL можно посмотреть в
настройках указанного сервера хранения). При нормальной работе скрипт должен возвращать строку "connected".
-
Скрипт конвертации не работает (Conversion script is not working) -
скрипт конвертации remote_cron.php, который должен находиться в директории сервера конвертации, не поставлен на
Cron, либо при его запуске возникают ошибки. Проверьте команду запуска скрипта, она должна иметь похожий
вид:
cd /path/to/conversion/folder && /usr/local/bin/php remote_cron.php
-
Последний запуск скрипта конвертации был более 15 минут назад (Conversion script executed more than 15 minutes ago) -
скрипт конвертации remote_cron.php не выполнялся в течение 15 минут. Проверьте команду запуска скрипта, она
должна иметь похожий вид:
cd /path/to/conversion/folder && /usr/local/bin/php remote_cron.php
-
Сервер хранения либо недоступен, либо некорректно настроен (Storage server is either unavailable, or not configured correctly) -
эта ошибка возникает при попытке запроса видеофайла с сервера хранения. В деталях ошибки вы можете увидеть
заголовки ответа от сервера хранения. Наиболее вероятная причина - некорректно настроен Nginx на сервере
хранения. Если по заголовкам видно, что скрипт раздачи /get_file.php, который находится на главном сервере,
возвращает 404 ошибку, то наиболее вероятно у вас некорректно работает mod_rewrite на главном сервере. Если
скрипт раздачи видео с удаленного сервера /remote_control.php возвращает 403 ошибку, то проверьте чтобы
значение $config['cv'] в скрипте /remote_control.php на сервере хранения совпадало с аналогичным значением
в скрипте /admin/include/setup.php на главном сервере - если эти значения не совпадают, исправьте
$config['cv'] в скрипте /remote_control.php.
-
Время сервера хранения не синхронизировано с временем основного сервера (Storage server time is not synchronized with main server time) -
эта ошибка возникает в случае несинхронного времени между основным сервером и удаленным сервером хранения.
Вам необходимо синхронизировать время между серверами.
-
Запросы SELECT INTO OUTFILE не должны быть разрешены (SELECT INTO OUTFILE queries should not be allowed) -
ошибка говорит о том, что MySQL имеет привилегии на запись в файлы, что является нарушением политики
безопасности. Необходимо запретить MySQL делать выборки в файлы.
-
Apache / PHP не должен иметь прав записи на файл / директорию (File or folder should not be writable by Apache / PHP) -
эта ошибка говорит о том, что указанная директория или файл является доступной для записи через Apache /
PHP, что является нарушением политики безопасности. Необходимо проверить права и владельца файла
(директории) и убрать часть прав, либо сменить владельца.
Описание предупреждений
Предупреждения не являются критическими с точки зрения их устранения, но они могут сигнализировать о
потенциальных проблемах в работе проекта.
-
Допустимый лимит памяти PHP меньше чем 128mb (PHP memory limit is less than 128mb) -
предупреждение говорит о том, что максимальный объем оперативной памяти, доступной PHP меньше 128mb. Это
в определенных случаях может приводить к вылетанию некоторых фоновых процессов.
-
Используются конструкции, которые вероятно не будут работать при кэшировании (Potential cache-unsafe constructs are used) -
предупреждение выдается по страницам сайта и говорит о том, что в шаблоне этих страниц используются
обращения к данным $smarty.request, $smarty.get или $smarty.post, которые могут не работать корректно при
использовании кэширования. В большинстве случаев следует избегать использования этих конструкций в шаблонах
страниц. Они будут работать только в тех случаях, когда ссылаются на параметры запроса, заданные в
var-параметрах какого-либо блока на странице.
-
Для некоторых блоков на странице не включено кэширование (Some of page blocks are not cached) -
это предупреждение говорит о том, что не включено кэширование для некоторых блоков на странице. В
большинстве случаев вам следует включить кэширование для всех возможных блоков страницы (задать ненулевое
время кэширования).
-
Требуются привилегии для редактирования страницы (There are not enough permissions for editing this page) -
не хватает привилегий на уровне файловой системы, чтобы иметь возможность редактировать страницу через
панель администрирования. Вам нужно зайти в редактор указанной страницы, чтобы получить список всех файлов,
на которые не установлены нужные привилегии.
-
Требуются привилегии для редактирования страницы (There are not enough permissions for editing this page) -
не хватает привилегий на уровне файловой системы, чтобы иметь возможность редактировать страницу через
панель администрирования. Вам нужно зайти в редактор указанной страницы, чтобы получить список всех файлов,
на которые не установлены нужные привилегии.
-
Требуются привилегии для редактирования компонента страницы (There are not enough permissions for editing this page component) -
не хватает привилегий на уровне файловой системы, чтобы иметь возможность редактировать компонент страниц
через панель администрирования. Вам нужно зайти в редактор указанного компонента, чтобы получить список
всех файлов, на которые не установлены нужные привилегии.
-
Используются конструкции PHP, из-за которых сайт может работать нестабильно (Potential unsafe PHP constructs are used) -
ошибка выдается по шаблону страницы, ее блока или компонента, в котором используется директива {{php}}.
Использование этой директивы не рекомендуется и может приводить к различным ошибкам в работе сайта.
-
MySQL вернул предупреждение при проверке состояния таблицы (MySQL returned warning for table status check) -
возникло предупреждение в таблице базы данных. Необходимо воспользоваться плагином исправления базы данных.
-
Первый уровень защиты от хотлинка не включен для данного сервера (The first level of antihotlink protection is not enabled for this server) -
предупреждение означает, что на указанном сервере хранения видео отдается через Apache, а не через Nginx,
таким образом, оно может быть захотлинковано по прямым ссылкам.
-
Второй уровень защиты от хотлинка не включен (The second level of antihotlink protection is not enabled) -
предупреждение означает, что в системных настройках панели администрирования KVS у вас не включена защита
скрипта раздачи видео. Необходимо включить эту защиту.
-
Директория исходников видео открыта для публичного доступа (Video source folder is publicly accessible) -
говорит о том, что существует возможность скачивать исходники видео, которые находятся на главном сервере в
директории /contents/videos_sources (по умолчанию). Для того, чтобы закрыть прямой доступ к этой директории
ее необходимо объявить внутренней зоной в конфиге Nginx. Это делается таким образом:
location ^~ /contents/videos_sources/ {
root /usr/home/ftp0/domains/kernel-tube.com/html;
internal;
}
-
Директория хранения видео на сервере открыта для публичного доступа (Server video folder is publicly accessible) -
говорит о том, что для указанного сервера существует возможность скачивать видеофайлы напрямую, минуя скрипт
раздачи. Для того, чтобы закрыть прямой доступ к этой директории ее необходимо объявить внутренней зоной в
конфиге Nginx. Это делается таким образом (на примере директории /contents/videos):
location ^~ /contents/videos/ {
flv;
root /usr/home/ftp0/domains/kernel-tube.com/html;
internal;
}
-
Директория исходников фотоальбомов открыта для публичного доступа (Album source folder is publicly accessible) -
говорит о том, что существует возможность скачивать исходники фотоальбомов, которые находятся на главном
сервере в директории /contents/albums/sources (по умолчанию). Для того, чтобы закрыть прямой доступ к этой
директории ее необходимо объявить внутренней зоной в конфиге Nginx. Это делается таким образом:
location ^~ /contents/albums/sources/ {
root /usr/home/ftp0/domains/kernel-tube.com/html;
internal;
}
-
Директория изображений для закрытого формата фотоальбомов открыта для публичного доступа (Album images folder for non-public album format is publicly accessible) -
говорит о том, что для закрытого формата фотоальбомов существует возможность скачивать фотографии напрямую,
минуя скрипт раздачи. Для того, чтобы закрыть прямой доступ к этой директории ее необходимо объявить
внутренней зоной в конфиге Nginx. Это делается таким образом (на примере директории
/contents/albums/main/700x525):
location ^~ /contents/albums/main/700x525/ {
root /usr/home/ftp0/domains/kernel-tube.com/html;
internal;
}
-
Обнаружен подозрительный файл (Suspicious file found) - предупреждает о найденном
PHP файле, который не являются частью инсталляции KVS.
-
Обнаружены подозрительные изменения в файле страницы (Suspicious changes found in page file) -
предупреждает о найденных изменениях в главном PHP файле страницы.
-
Директория разрешает выполнение PHP (Folder allows PHP execution) -
указанная директория позволяет выполнять через веб PHP файлы в ней. В директорию необходимо положить
.htaccess файл, который либо полностью запретит доступ к ней через веб, либо запретит выполнение PHP кода.
Для получения дополнительной информации свяжитесь со службой поддержки.
-
Директория разрешает публичный доступ (Folder allows public access) -
указанная директория позволяет запрашивать файлы через web, хотя ее содержимое не предназначено для
доступа извне. В директорию необходимо положить .htaccess файл, который полностью запретит доступ к ней
через веб:
Deny from all
Описание информационных сообщений
-
Системный файл имеет поправки (The system file has custom changes) - сообщение
говорит о том, что в указанный системный файл KVS были внесены поправки, которые стоит учитывать при
обновлении.
-
Формат видео может хотлинковаться исходя из его настроек (Video format can be hotlinked as per its settings) -
сигнализирует о том, что в настройках формата видео выключена защита от хотлинка для данного формата.