Частые вопросы

Материал из WiKi - UserSide

Вопросы по системе

1. В заголовке системы UserSide выводится неверное время.

Система берёт время исключительно с сервера, где установлена, ничего от себя не добавляя. Если время отображается некорректно - значит проблема исключительно с настройками на сервере. Проверяйте настройки временной зоны (в файле php.ini переменная date.timezone), региональные настройки и локали. Также может помочь проверка времени в mysql (в mysql может быть выставлено время отличающееся от серверного).

Команда select NOW(); покажет текущее время по версии mysql

1.1. MySQL-время отличается от системного.

Для всего MySQL-сервера часовой пояс можно поменять установив в файле конфигурации:

default-time-zone='+03:00'

Полезная статья: [[1]]

1.2. Системное время PHP (cli) отличается от времени MySQL.

Для PHP возможна ситуация, когда используются различные файлы php.ini в работе. Для php-web (через него работает веб-интерфейс САП "UserSide") свой, а для php-cli (через него работает, к примеру запуск скриптов через cron, в т.ч. планировщик САП "UserSide") свой. Зачастую используется один файл, но иногда - нет и тогда настройки в них могут очень различаться. В т.ч. может отличаться часовой пояс, что приводит к неправильным обработкам дат и к сообщениям о различиях во времени.

Как посмотреть какой файл php.ini использует php-web: Настройка - Основная - Разное - Показать PHPinfo() В строке "Loaded Configuration File" будет путь к файлу.

Как посмотреть какой файл php.ini использует php-cli: В директории "userside" нужно создать, например файл test.php с текстом внутри:

<?php
phpinfo();
?>

После чего через консоль сервера зайти в этот каталог и выполнить команду

 php test.php > result.htm

Сформируется файл result.htm с выводом информации PHPinfo. В этом файле также смотрим путь "Loaded Configuration File", находим этот файл и корректируем настройки времени.

При следующем запуске планировщика САП "UserSide" время будет перепроверено и, если всё совпадает, ошибка исчезнет.

2. Какие PHP-модули необходимо устанавливать?

MYSQLI
SNMP
SOCKET
ICONV
CURL
MBSTRING
ZLIB
XML

3. Не работает отправка сообщений электронной почты из UserSide.

Отправка сообщений осуществляется через PHP-фунцию mail(). Для начала необходимо проверить - сам факт отправки сообщений. В разделе "Настройка - Основная - Разное" попробуйте отправить тестовое письмо. Настройку функции mail() необходимо производить в файле php.ini в секции [mail function]. После внесения изменений в файл не забывайте перезапускать веб-сервер. При этом настройка для *nix и windows-систем различаются. В частности - для windows необходимо устанавливать утилиту sendmail (http://www.glob.com.au/sendmail/).Рекомендуется изучить информацию в интернете для своей операционной системы. Статья по настройке mail() для windows: http://www.simplecoding.org/php-mail-pod-windows.html

4. При загрузке файла с картами/иконок и других файлов - эти файлы не открываются.

Скорее всего проблема в том, что файлы загружаются не как бинарные объекты, а как текстовые. Для проверки - сравните размер файла ДО загрузки и ПОСЛЕ. Также попробуйте скачать этот файл обратно на свой компьютер и попытаться его открыть. Для решения этой ситуации - нужно изменить параметр "CharsetRecodeMultipartForms" в конфигурации веб-сервера Apache. Поищите в интернете информацию по оператору "CharsetRecodeMultipartForms"

5. При входе в операторскую часть выскакивает сообщение, что неправильный пароль, хотя пароль верный.

Попробуйте войти с помощью браузера Mozilla Firefox. Если Вы смогли войти - обратите внимание на панель системы, где указано время на сервере. Если время отличается от реального - значит необходимо изменять настройки системной даты (см. ответ на вопрос №1 выше). Пояснение: При входе в операторскую часть пароль и логин оператора сохраняются в cookie. Время жизни cookie создается от времени на машине оператора. Следовательно возможны ситуации, когда время на машине оператора несовпадает с серверной машиной и тогда cookie удаляются сразу же после создания. Но Mozilla Firefox ввиду своих особенностей иначе относится к cookie и возможность входа остаётся.

6. При добавлении дома на карту - карта перескакивает на совершенно другой город/область

При добавлении объектов на карту используется геокодер картографической системы, который по введенному Вами текстовому адресу пытается найти географические координаты этого объекта и переместить туда карту. Это очень удобно. Однако в некоторых случаях - карта перемещается совершенно в другой населённый пункт и даже в другую страну. Почему это происходит? Связано это с тем, что в том месте, куда перемещена карта тоже есть объект, который содержит точно такое же название, какое и Вы ввели и для геокодера это объект является подходящим. Как избавиться от этого? Необходимо настроить иерархию своих адресов. В разделе "Настройка - Адреса" нужно указать данные о своей области, районе в области (при необходимости) и указать в свойствах населённого пункта - к какой области/району он относится. Тогда строка адреса для геокодера будет более обширной и даст более точный результат.

7. В списке оборудования - часть/всё оборудование отображается красным цветом как неактивное. Открываем карточку оборудования - ping выполняется. Оборудование в списке становится зелёным. Через 15 минут опять красное.

Веб-интерфейс системы сам по себе не контролирует какое оборудование активно, а какое нет. Только при активных действиях самого оператора (например - открытие карточки оборудования) система выясняет что с этим устройством - активно оно или нет?. Ознакомьтесь со статьёй "Активность". А вот для того, чтобы постоянно иметь актуальную информацию об оборудовании - необходимо поставить в постоянную работу модули, которые этим занимаются. В частности модуль us_ping. Именно его лучше для этого использовать и вписать в системный cron. Он при работе и выясняет активно ли устройство и тогда в веб-интерфейсе оператор будет всегда видеть актуальную информацию.

8. Как сконвертировать базу данных в UTF-8.

Ранние версии САП "UserSide" имели базу в формате 1251. На данный момент основной упор мы делаем на UTF-8. Разумеется и 1251, поддерживается нормально, но мы рекомендуем постепенно переходить на UTF-8.

Для этого:

1. в файле "main/config/config.php" изменить переменную $zsqlcp на значение:
$zsqlcp     = 'utf8';
2. Сделать бэкап базы данных
3. Сконвертировать базу данных в формат UTF-8. Например - как описано в данной статье: http://artkiev.com/blog/mysql-cp1251-to-utf8.htm

9. Как перенести объекты с одной карты на другую.

Для этого нужно выяснить ID старой карты (откуда переносим) и новой карты (куда переносим). В базе данных - это поля tbl_map.CODENUMBER - посмотрите значения для своих карт.

Далее выполняем в базе данных команды переноса: В них подставьте вместо 0 - ID старой карты, вместо 999 - ID новой карты

UPDATE tbl_coord SET MAPCODE = 999 WHERE MAPCODE = 0;
UPDATE tbl_map_obj SET MAPCODE = 999 WHERE MAPCODE = 0;
UPDATE tbl_optica_house SET MAPCODE = 999 WHERE MAPCODE = 0;
UPDATE tbl_med_house SET MAPCODE = 999 WHERE MAPCODE = 0;

10. К каким каталогам системы нужно дать права на запись.

/main/attach/
/main/base/journal/
/main/base/journal_status/
/main/base/maps/
/main/temp/

ВАЖНО: При обновлении системы - лучше дать права 777 на весь каталог с САП "UserSide", т.к. файлы копируются разные и при выполнении обновления у веб-сервера может не хватить прав на замену файлов/каталогов.

Вопросы по модулям

Общая информация по модулям также указана на странице "Модули"

1. Как запускать perl-модули на компьютерах с OS Windows?

Для этого необходимо установить интерпретатор ActivePerl. Установка быстра и не требует специфических знаний. Дополнительная установка пакетов выполняется через PPM (Perl Package Manager), что устанавливается вместе с интерпретатором.