Софт majordomo для организации умного дома

Общие функции

DebMes($errorMessage, $logLevel) — записывает сообщение в главный лог файл. Параметр $logLevel не является обязательным, и по умолчанию установлен как «debug».

say($ph,$level,$from_user_id) — говорит фразу (использует глобальные переменные $voicemode» и $commandLine ).
$level — указывает уровень важности фразы (в зависимости от текущих настроек минимального уровня произношения, фраза может быть либо озвучена голосом либо просто записана в историю сообщений).
$from_user_id — от имени кого будет сказана фраза ($from_user_id в данном случае будет равен идентификатору текущего пользователя). sayTo (ФРАЗА, УРОВЕНЬ, НАЗНАЧЕНИЕ) — в качестве НАЗНАЧЕНИЯ можно использовать системное имя терминала и если это терминал на MajorDroid, то ему отправится команда для произношения

В любом случае из этой функции создаётся событие SAYTO (вида: processSubscriptions(‘SAYTO’, array(‘level’ => $level, ‘message’ => $ph, ‘destination’ => $destination));), которое может быть перехвачено сторонними модулями — на заметку тем, кто захочет создать свой модуль для организации работы с различными устройствами доставки сообщений на определённый канал

sayTo (ФРАЗА, УРОВЕНЬ, НАЗНАЧЕНИЕ) — в качестве НАЗНАЧЕНИЯ можно использовать системное имя терминала и если это терминал на MajorDroid, то ему отправится команда для произношения. В любом случае из этой функции создаётся событие SAYTO (вида: processSubscriptions(‘SAYTO’, array(‘level’ => $level, ‘message’ => $ph, ‘destination’ => $destination));), которое может быть перехвачено сторонними модулями — на заметку тем, кто захочет создать свой модуль для организации работы с различными устройствами доставки сообщений на определённый канал.

sayReply(ФРАЗА, УРОВЕНЬ, ОТВЕТ_НА_ЧТО) — последние два параметра не обязательны. Эта функция ведёт себя следующим образом:

  1. Если указан параметр ОТВЕТ_НА_ЧТО, то система попытается найти терминал, с которого был запрос, содержащий данную фразу
  2. Если не указан параметр ОТВЕТ_НА_ЧТО, то система выберет терминал, с которого был любой запрос в течении последних 5 секунд
  3. Если терминал найден, то ответ будет направлен на него (с помощью той же функции sayTo)
  4. Если терминал не найден, то ответ будет озвучен в обычном порядке (аналогично просто использованию функции say).

processCommand($command) — отправляет текстовую команду на исполнение (например, «скажи сколько время»). Сами команды настраиваются методе ThisComputer->commandReceived.

getGlobal($varname); — получения значения глобального свойства

setGlobal($varname,$value); — установка глобального свойства

processLine($line); — запуск скрипта синхронизации

getRandomLine($filename); — взятие случайной строки из текстового файла. $filename может быть сокращённым, например file1 и тогда будет браться файл ./texts/file1.txt

playSound($filename); — проигрывание файла (mp3,wav,etc.). $filename может быть сокращённым, например file1 и тогда будет браться файл ./sounds/file1.mp3

playMedia($path); — играть музыку из каталога $path

runScript($id,$data); — выполняет скрипт с заданным id. В качестве id может использоваться имя

runScriptSafe($id,$data); — выполняет скрипт безопасно в фоне

isOnLine($host) — проверяет доступность хоста из Устройства OnLine (1/0).

Партнёрская программа

Чтобы стать участником партнёрской программы:

  1. Зарегистрируйтесь в Majordomo.
  2. Получите партнёрскую ссылку и промокод.
  3. Распространяйте их любым доступным способом, чтобы привлечь новых пользователей: через свой сайт, соцсети, мессенджеры, рекламные посты и объявления. Можно использовать баннеры и кнопки, которые предлагает Majordomo — они доступны для скачивания в разных вариантах оформления на официальном сайте хостера.

Каждый пользователь, который воспользуется партнёрской ссылкой или промокодом, получит 50 рублей на счёт при регистрации. Вам будет начисляться 30 % от всех оплат приглашённого клиента. Заработанные через партнёрскую программу средства можно тратить на оплату хостинга, регистрацию доменов и приобретение других услуг. Вознаграждение также можно вывести в платёжную систему Яндекс.Деньги. Для этого нужно сформировать заявку через панель управления. Минимальная сумма для вывода — 1500 рублей, срок получения денег — 7 рабочих дней.

Промокод создаётся автоматически, изменить его нельзя. Промокод виртуального хостинга можно использовать при заказе VPS-хостинга и наоборот.

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

  • Нельзя использовать незаконные способы привлечения клиентов — например, спам-рассылки или регистрацию нового аккаунта с применением промокода, полученного от старого аккаунта.
  • Запрещено продвижение хостинга через сервисы и биржи для покупки реферального трафика.
  • Нельзя использовать слово «Majordomo» и его производные, в том числе на других языках, в заголовке, тексте объявления, ключевых фразах контекстной рекламы.

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

Управление циклами (сервисами)

Интерфейс доступен через раздел XRay->Services
Для управления циклом использются глобальные переменные.
Например, есть цикл ./scripts/cycle_ping.php. Чтобы его остановить, достаточно выполнить команду в коде:setGlobal(‘cycle_pingControl’,’stop’); — ОстановкаsetGlobal(‘cycle_pingControl’,’start’); — запускsetGlobal(‘cycle_pingControl’,’restart’); — рестартsetGlobal(‘cycle_pingDisabled’,’1′); — Для запрета автозапуска (по-умолчанию он всегда разрешён)setGlobal(‘cycle_pingAutoRestart’,’1′); — Для включения авто-восстановления (по-умолчанию он всегда выключен)

API

GET

/api/data/<OBJECT> — список всех свойств и значений объекта <OBJECT>/api/data/<OBJECT>.<PROPERTY> — значение свойства <OBJECT>.<PROPERTY>/api/method/<OBJECT>.<METHOD> — вызов метода <OBJECT>.<METHOD>/api/method/<OBJECT>.<METHOD>?param1=value1&param2=value2 — вызов метода <OBJECT>.<METHOD> с параметрами/api/script/<SCRIPT> — вызов сценария <SCRIPT>/api/script/<SCRIPT>?param1=value1&param2=value2 — вызов сценария <SCRIPT> с параметрами/api/events/<PATH/TO/EVENT>?param1=value1&param2=value2 — сохранения события с параметрами/api/devices — список (простых) устройств/api/rooms — список комнат/api/rooms/<ID> — детали комнаты с кодом <ID>

/api/history/<OBJECT>.<PROPERTY>/<PERIOD> — история значений свойства за указанный период

<PERIOD> может принимать значения: N (число, кол-во часов), day, week, month, year, Ndays, Nweeks, Nmonths, Nyears
например, ссылка /api/history/switch1.status/2days вернёт все значения switch1.status за два дня

/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/max — максимальное значение за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/min — минимальное значение за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/avg — среднее значение за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/sum — сумма значений за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/count — количество значений за период

POST

/api/data/ — получение значений нескольких свойств (по полному названию типа <OBJECT>.<PROPERTY> или только по названию объекта <OBJECT>)
Request:

JavaScript

{«properties»: }

1 {«properties»»ThisComputer.timeNow»,»Relay10″}

Response:

JavaScript

{
«data»: {
«ThisComputer.timeNow»: «10:56»,
«Relay10.isActivity»: «0»,
«Relay10.groupEco»: «0»,
«Relay10.groupSunrise»: «0»,
«Relay10.loadType»: «curtains»,
«Relay10.groupEcoOn»: «0»,
«Relay10.icon»: false,
«Relay10.groupSunset»: false,
«Relay10.status»: «0»,
«Relay10.alive»: «1»,
«Relay10.linkedRoom»: «Bedroom»,
«Relay10.updated»: «1555607461»,
«Relay10.updatedText»: «20:11»,
«Relay10.aliveTimeout»: «»,
«Relay10.StatusLowBattery»: false
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

{

«data»{

«ThisComputer.timeNow»»10:56»,

«Relay10.isActivity»»0»,

«Relay10.groupEco»»0»,

«Relay10.groupSunrise»»0»,

«Relay10.loadType»»curtains»,

«Relay10.groupEcoOn»»0»,

«Relay10.icon»false,

«Relay10.groupSunset»false,

«Relay10.status»»0»,

«Relay10.alive»»1»,

«Relay10.linkedRoom»»Bedroom»,

«Relay10.updated»»1555607461»,

«Relay10.updatedText»»20:11»,

«Relay10.aliveTimeout»»»,

«Relay10.StatusLowBattery»false

}

}

/api/data/<OBJECT>.<PROPERTY> — установка значения свойства <OBJECT>.<PROPERTY>

/api/rooms/setOrder — изменение очерёдности комнат
Request

JavaScript

{«id»: «7»,»priority»: 0},
{«id»: «4»,»priority»: 1}

1
2

{«id»»7″,»priority»},

{«id»»4»,»priority»1}

Response

JavaScript

{result: true}

1 {resulttrue}

result — true/false

/api/room — добавление/редактирование комнаты
Request

JavaScript

{«id»: «2»»title»: «Название комнаты»}

1 {«id»»2″»title»»Название комнаты»}

(если в request задан id, то происходит)
Response

JavaScript

{«id»: «2»,»title»: «Название комнаты»,»object»: «Room2″,»priority»: 1}

1 {«id»»2″,»title»»Название комнаты»,»object»»Room2″,»priority»1}

DELETE

/api/room/{id} — удаление комнаты

Поделитесь в соц сетях

Состав и управление системой MajorDoMo

В сущности, система представлена специализированной web оболочкой, которая работает в пространстве домашнего web-сервера. Причем последний может функционировать под любыми операционными системами, Windows или Linux. Да и сама аппаратная составляющая центрального компьютера значения не имеет. Это вполне может быть не только IBM совместимый компьютер, но и RasberriPi или еще что-либо более экзотическое.

Клиентские устройства могут быть представлены практически всем производимым спектром оборудования, от устройств MQTT и до радиоуправления Broadlink RF (стандарт 433/315мГц). Взаимодействие с сетями Z-Wave, KNX, и оборудованием Sonoff, Livolo или Xiaomi – происходит через дополнительные модули, которые тем не менее объединяют эти устройства в единое пространство имен, классов, объектов и методов.

Почта Majordomo – управление аккаунтом

Почта от Majordomo — сервис, который позволяет подключить электронную почту к вашему домену. Для подключения почты от Majordomo необходимо внести в панели управления аккаунта следующие DNS записи:

1. Имя — оставьте пустым. Тип — MX Значение — mmxs.majordomo.ru TTL — 3600 Приоритет — 10

2. Имя — mail Тип — CNAME Значение — mail.majordomo.ru TTL — 3600 Приоритет — оставьте пустым.

3. Имя — smtp Тип — CNAME Значение — smtp.majordomo.ru TTL — 3600 Приоритет — оставьте пустым.

4. Имя — pop3 Тип — CNAME Значение — pop3.majordomo.ru TTL — 3600 Приоритет — оставьте пустым.

5. Имя — оставьте пустым. Тип — TXT Значение — v=spf1 include:_spf.majordomo.ru -all TTL — 3600 Приоритет — оставьте пустым.

Инструкция по добавлению DNS-записей расположена здесь.

Обращаем ваше внимание, что данные DNS записи необходимо прописывать на стороне текущих DNS серверов. Для доступа к почте вы можете воспользоваться WEB-Интерфейсом

Для доступа к почте вы можете воспользоваться WEB-Интерфейсом.

Управление почтовыми ящиками (создание/редактирование и т.д.) осуществляется в панели управления аккаунта в разделе «Почта» подразделе «Почта от Majordomo»

источник

Функции и возможности

Сами по себе модули содержат обширные настройки: в соответствующем разделе интерфейса можно, например, указать цвет пользователя, разрешенные ему компьютеры для входа, и так далее.

Электронный «мажордом» способен управлять многочисленными умными устройствами:

  • розетками;
  • лампами;
  • бытовой техникой;
  • домашним мультимедиа;
  • кондиционерами;
  • отопительными системами;
  • охранными комплексами;
  • инженерным и сантехническим оборудованием, и так далее.

Умеет он взаимодействовать и с интернет-сервисами (например, для поиска новостей). Кроме того, через глобальную сеть обеспечивается удаленный доступ и своевременное обновление.

Для продвинутых пользователей существует возможность дописывать модули и сценарии на языке программирования PHP. В системе также присутствует встроенный визуальный конструктор Blockly, обеспечивающий простое создание алгоритмов:

Комплекс наверняка станет интересен начинающим и продвинутым программистам. Разработка ПО под MajorDoMo не отличается высоким порогом входа, необходимо лишь обладать пониманием языка PHP и некоторых смежных дисциплин (таких, как JS, CSS). С них и следует начинать осваивающим разработку под эту платформу джуниор-кодерам.

Что такое MajorDoMo?

Высокие технологии все глубже входят в жизнь человека. Это касается не только его труда, медицины или городской инфраструктуры. Абсолютно все жизненное окружение получает определенный «ум»: выключатели, системы климат-контроля помещений, различные датчики (открывания-закрывания, дыма, движения). Все объединяется в стройные логические системы при помощи цифровых управляющих контуров и контроллеров оборудования. Общность такого слияния называется «умный дом», который и предоставляет возможности единого управления и наблюдения за всем комплексом устройств в него входящего. Причем контроль может осуществляться как в ручном режиме через какой-либо общий интерфейс, так и автоматическими возможностями, наподобие выполнения определенных сценариев, реакции на показания датчиков или даже голосовыми командами.

Самое, наверное, простое и удобное, что стоит вспомнить про «умные» системы в быту – это управление светом. К примеру, выключатель, как ручной прибор, становится не нужен (хотя и возможен). Можно представить себе, что свет включается сам, если датчик в помещении определил наличие человека. Причем, в зависимости от времени суток, включается только то освещение, которое в текущий момент необходимо.

Самое простое – человек один, вечер. Зашел в зал. Зачем зажигать люстру? Автоматически загорается только бра. А вот если зашло несколько людей – тогда да, включается люстра. Опять же. Ночью пошел человек в туалет. Зачем зажигать все освещение? Достаточно включить подсветку ему по дороге, да свет в самом туалете.

Или такой пример: в будние дни люди на работе. Можно запустить робот-пылесос, который к их приходу уберет и встанет на подзарядку. А вот в выходные надобности в этом нет. Соответственно центральный контроллер и действует. Вот это и есть система «умный» дом, которая сама, в зависимости от определенных параметров, производит те или иные действия.

Одна из наиболее доступных, открытых и удобных из подобных – умный дом MajorDoMo. Кросс платформенный OpenSource проект, активно развивающийся и имеющий достаточно низкий порог вхождения. Основа его удобства – относительно простая страница — конфигуратор всего комплекса на домашнем или рабочем web-сервере.

Несмотря на простоту настройки системы MajorDoMo с нуля после установки, у нее множество возможностей по поддержке различного оборудования и протоколов обмена между ним. К комплексу можно подключить не только выключатели различных видов, но и датчики движения, температуры, освещенности или любые другие, информация от которых будет непосредственно выводиться на управляющей web-страничке или использоваться в скриптах MajorDoMo.

Microsoft Outlook

Рассмотрим настройку почтового клиента Microsoft Outlook 2016.

Запустите Microsoft Outlook. Перейдите в меню «Файл»:

В диалоговом окне «Выбор службы» отметьте Протокол POP3 или IMAP . Нажмите кнопку «Далее»:

В следующем окне «Параметры учетных записей IMAP и POP » в разделе «Сведения о пользователе» введите Ваше имя и имя почтового ящика с указанием доменного имени. Если вы создаете, например, ящик test , то ваш адрес будет test@sitetest.ru, где sitetest.ru — имя вашего домена.

В разделе «Вход в систему» введите полностью имя создаваемого почтового ящика, например, test@sitetest.ru, а в поле «Пароль», соответственно, создайте пароль к этому почтовому ящику.

В разделе «Сведения о сервере», если был выбран протокол POP3 , в поле «Сервер входящей почты» укажите: pop3.majordomo.ru либо pop3.ваш_домен.ru Если Ваш потовый клиент требует указывать порт, укажите 110.

Если для работы учетной записи был выбран протокол IMAP , в поле «Сервер входящей почты» укажите: imap.majordomo.ru При необходимости указывать порт, введите значение 143.

В поле «Сервер исходящих сообщений» ( SMTP ) также введите smtp. majordomo . ru

Затем нажмите кнопку «Другие настройки». В открывшемся окне необходимо выбрать вкладку «Сервер исходящей почты» и поставить галочку «SMTP-серверу требуется проверка подлинности». После этого отметьте пункт «Аналогично серверу для входящей почты» и нажмите кнопку «OK»:

Затем нажмите кнопку «Далее». В появившемся окне «Проверка настройки учетной записи» Microsoft Outlook выполнит проверку корректности выставленных параметров и отправит тестовое письмо:

После успешно выполненного тестирования нажмите кнопку «Закрыть» . Настройка Microsoft Outlook закончена.

источник

Функциональность

Majordomo — типичный хостер, покрывающий основные потребности вебмастеров. На нём есть несколько тарифов Shared-хостинга, VPS, разные конфигурации серверов, а также возможность зарегистрировать домен — или получить его в подарок при оплате продолжительного периода использования.

Ещё одно интересное предложение — хостинг приложений. На нём доступно использование технологий Python, PHP, MySQL, Redis, Memcached. Основа — виртуальный хостинг, который не нужно администрировать. Удобный конфигуратор позволяет оплачивать только те возможности, которыми вы реально будете пользоваться.

Установка и настройка MajorDoMo

MajorDoMo

Устанавливаем git:

apt install git

Скачиваем установочный пакет:

git clone https://github.com/sergejey/majordomo.git

Переносим каталог majordomo в каталог веб-сервера:

mv majordomo /var/www/

Воспользуемся шаблоном конфигурационного файла:

cp /var/www/majordomo/config.php.sample /var/www/majordomo/config.php

Настроим подключение к базе данных:

vi /var/www/majordomo/config.php

Define(‘DB_HOST’, ‘localhost’);
Define(‘DB_NAME’, ‘majordomo’);
Define(‘DB_USER’, ‘majordomo’);
Define(‘DB_PASSWORD’, ‘majordomo123’);

* где DB_NAME majordomo — имя базы данных; DB_USER majordomo — учетная запись; DB_PASSWORD majordomo123 — пароль для учетной записи mysql.

Задаем права:

chown -R www-data:www-data /var/www/majordomo

Настройка PHP

Настраиваем php.ini для apache:

vi /etc/php/7.2/apache2/php.ini

short_open_tag = On
max_execution_time = 90
max_input_time = 180
post_max_size = 200M
upload_max_filesize = 50M
max_file_uploads = 150

Настраиваем php.ini для unix shell:

vi /etc/php/7.2/cli/php.ini

short_open_tag = On

Настройка Apache

Настраиваем виртуальный домен:

vi /etc/apache2/sites-enabled/majordomo.conf

<VirtualHost *:80>
    Define root_domain majordomo.dmosk.local
    Define root_path /var/www/majordomo
    ServerName ${root_domain}
    DocumentRoot ${root_path}
    
    <Directory ${root_path}>
        AllowOverride All
    </Directory>
</VirtualHost>

Проверяем конфигурацию apache и перезапускаем сервис:

apachectl configtest

systemctl restart apache2

Настройка MySQL

Подключаемся к MySQL:

mysql -uroot -p

Создаем базу данных и пользователя:

> CREATE DATABASE majordomo DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

> GRANT ALL PRIVILEGES ON majordomo.* TO majordomo@localhost IDENTIFIED BY ‘majordomo123’ WITH GRANT OPTION;

> \q

Импортируем базу данных:

mysql -v -u root -p majordomo < /var/www/majordomo/db_terminal.sql

Веб установка

Запускаем скрипт в консоли:

php /var/www/majordomo/cycle.php

В браузере открываем сервер по настроенному виртуальному домену (в нашем случае, majordomo.dmosk.local) — в открывшемся окне выбираем русский язык и нажимаем Continue:

Готово.

Дополнительные услуги

Majordomo предлагает целый ряд дополнительных услуг, полезных бизнесу.

Почта Mail.ru на домене

После регистрации домена вы можете подключить к нему почту. Majordomo предлагает использовать свой почтовый сервис или решение для бизнеса от Mail.ru.

Бесплатный сервис от Mail.ru позволяет создать до 5000 адресов на одном домене. Есть и другие преимущества:

  • объём почтовых ящиков не ограничен;
  • используется привычный интерфейс Mail.ru;
  • каждый пользователь получает 25 ГБ в облаке Mail.ru;
  • поддерживается мультиавторизация для удобного переключения между почтовыми ящиками.

SSL-сертификаты

Для шифрования данных при передачи трафика между сервером и клиентом используется SSL-сертификат. Majordomo предлагает приобрести сертификаты Comodo — одного из ведущих центров. Все доступные варианты совместимы с современными браузерами. Стоимость сертификатов — от 990 до 25 000 рублей в год.

Защита от спама и вирусов

В эту услугу входит выполнение сразу трёх задач.

  • Антивирусная проверка входящих сообщений.
  • Защита от спама. Вы можете установить правила (пропускать или не пропускать спам), а также настроить уровень придирчивости к письмам (слабый, средний, сильный). Также доступны белый и чёрный список адресов.
  • Настройка фильтрации писем на сервере. Это позволит получить сообщения в одни и те же папки на разных устройствах.

Защита от спама и вирусов — платная услуга. Стоимость — 49 рублей в месяц.

SEO-аудит сайта

В услугу входит проверка сайта на соответствие требованиям поисковых систем, оценка удобства использования, оптимизация главной страницы, поиск ошибок и подготовка рекомендаций по продвижению. Стоимость SEO-аудита — 5490 рублей.

Рекламные возможности

Majordomo предлагает услуги специалистов по настройке контекстной рекламы и рекламных кампаний в соцсетях.

  • Базовая настройка контекстной рекламы — 5990 рублей. Работа в Яндекс.Директ или Google Adwords. Доступно до 30 ключевых запросов и до 20 объявлений.
  • Премиальная настройка контекстной рекламы — 12 990 рублей. Работа в Яндекс.Директ или Google Adwords. Доступно до 200 ключевых запросов и до 50 объявлений, плюс 1 месяц ведения и контроля рекламной кампании.
  • Настройка таргетированной рекламы во «ВКонтакте» — 12 990 рублей. Услуга включает анализ предложения и аудитории, разработку стратегии продвижения, создание до 50 объявлений и баннеров, запуск до 5 рекламных кампаний, отслеживание эффективности и внесение правок в течение 1 месяца.

Аренда программы 1С в облаке

Majordomo предлагает облако с установленной программой 1С, с которой можно работать с любого устройства, имеющего доступ в интернет. В пакет услуг входит:

  • Бесплатный перенос 1С на облако.
  • Бесплатная круглосуточная поддержка.
  • Финансовые гарантии работоспособности.
  • Бесплатные консультации.

Есть два тарифа: «Лайт» и «Оптимальный». Между собой они различаются возможностями для изменения и доработки, доступными клиентами, объёмом дискового пространства и конфигурациями 1С. На тарифе «Лайт» за каждого пользователя нужно платить 950 рублей в месяц (760 рублей в месяц при оплате на год). На «Оптимальном» каждый пользователь обойдётся в 1299 рублей в месяц (1040 рублей в месяц при оплате на год).

Настройка веб-сервера

Управление умным домом от Majordomo осуществляется с помощью веб-интерфейса и для его работы необходим веб-сервер.

Установка Apache

Устанавливаем веб-сервер Apache и дополнительные компоненты:

apt install apache2 apache2-bin apache2-data apache2-utils

Разрешаем автозапуск apache и стартуем сервис:

systemctl enable apache2

systemctl start apache2

Открываем браузер и вводим IP-адрес сервера — мы должны увидеть страницу Apache по умолчанию:

Apache + PHP

Устанавливаем php и дополнительные компоненты:

libapache2-mod-php libapache2-mod-php php-bz2 php-cli php-common php-curl php-gd php-json php-mbstring php-mysql php7.2-opcache php-readline php-xml php-dev libmcrypt-dev gcc make autoconf libc-dev pkg-config

Устанавливаем компонент mcrypt:

pecl install mcrypt-1.0.1

Включаем компонент mcrypt в Apache:

vi /etc/php/7.2/apache2/conf.d/mcrypt.ini

extension=mcrypt.so

Разрешаем модуль rewrite для apache:

a2enmod rewrite

Перезапускаем apache:

systemctl restart apache2

Для проверки, удаляем index.html, создаем index.php:

rm /var/www/html/index.html

vi /var/www/html/index.php

<?php phpinfo(); ?>

Снова в браузере открываем страницу сервера — мы должны увидеть страницу информации о PHP:

СУБД

Устанавливаем сервер баз данных MySQL с необходимыми компонентами:

apt install dbconfig-mysql mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7 mysql-server-core-5.7 php-mysql php-mysql

Перезапускаем apache:

systemctl restart apache2

Включаем автозапуск mysql и запускаем демона:

systemctl enable mysql

systemctl start mysql

Задаем пароль для root пользователя MySQL:

mysqladmin -u root password

Плюсы и минусы

  • Встроенные инструменты защиты сайта, которые справляются с вирусами и DDoS-атаками.
  • Опции для настройки продвижения сайта.
  • Техническая поддержка, работающая на русском языке и в круглосуточном режиме.
  • Бесперебойный доступ к серверам.

Впечатления от хостинга портят его недостатки, некоторые из которых могут очень сильно повлиять на пользовательский опыт. Среди основных минусов отметим:

  • Медленная работа панели управления собственной разработки.
  • Низкие показатели быстродействия серверов, которые негативно сказываются на скорости загрузки контента на сайтах.
  • Периодические сбои при работе с хостингом через FTP.
  • Вызывающая нарекания клиентов работа службы технической поддержки.
  • Использование устаревшего оборудования.

Все эти недостатки так сильно бросаются в глаза, что успели превратить Majordomo в объект постоянной критики. Не все негативные отзывы справедливы, но по большей части претензии обоснованы.

Время/интервалы

time() — возвращает текущее время в формате timestamp.

timeConvert($tm) — конвертирует время из hh:mm в формат time() на сегодняшнее число

timeNow($tm) — возвращает в текстовом виде время типа «16 часов 40 минут». Если $tm не задан, то возвращает текущее время. $tm в формате time.

isWeekEnd() — выходной да/нет = 1/0

isWeekDay() — будний день да/нет = 1/0

timeIs($tm) — проверяет совпадает ли текущее время с передаваемым в формате hh:mm

timeBefore($tm) — сравнивает время $tm (hh:mm) и текущее. Если текущее меньше, то 1 иначе 0

timeAfter($tm) — сравнивает время $tm (hh:mm) и текущее. Если текущее больше, то 1 иначе 0

timeBetween($tm1, $tm2) — проверяет входит ли текущее время в заданный интервал (каждое hh:mm, причем $tm1 может быть больше чем $tm2, например 23:00 05:00)

recognizeTime($text) — функция пытается из фразы извлечь конкретное время/дату. Например $text может быть «завтра в 9:30» или «через 5 минут»

При вызове любого метода (но не сценария!) доступны переменные:

$prevRun — время последнего вызова (в формате timestamp)

$prevRunPassed — сколько секунд прошло с последнего вызова

$this — Указатель на себя. Используется в методах классов. Например:

PHP

$this->setProperty(«status»,1); // устанавливает свойство status в 1, объекту для которого вызван

1 $this->setProperty(«status»,1);// устанавливает свойство status в 1, объекту для которого вызван

Панель управления

Для управления виртуальным хостингом доступна самописная панель администрирования Majordomo. Она далеко не идеальная, но в целом дружественная и достаточно функциональная. Полностью на русском языке, названия разделов и подразделов явно говорят о том, какие возможности и настройки под ними скрываются. Есть страница «Сводка», на которой отображается основная информация: тарифный план, квота аккаунта, количество сайтов и баз данных, доступные дополнительные услуги.

В списке приложений для быстрой установки только бесплатные CMS: WordPress, Joomla, OpenCart, Drupal, Moodle. Выбор не самый богатый — на некоторых хостингах предустановлены десятки движков плюс разные веб-приложения. Единственный платный вариант — 1С-Битрикс: Управление сайтом. В зависимости от редакции CMS нужно заплатить от 5400 до 72 900 рублей. В подарок вы получаете хостинг — от 6 месяцев до 2 лет бесплатного использования.

В панели управления можно подключить домены, управлять ими, настраивать переадресацию, создавать почтовые ящики с помощью сервисов Majordomo и Mail.ru. Есть раздел «Продвижение», через который можно заказать у специалистов настройку контекстной рекламы и создание таргетированных объявлений для соцсетей.

Для хранения резервных копий по умолчанию доступно 5 ГБ. Автоматического создания бэкапа нет. По умолчанию резервные копии хранятся 7 дней. Можно увеличить этот период до 30 дней. Для этого нужно оплатить услугу расширенного резервного копирования. Месяц стоит 99 рублей, год — 999 рублей.

Доступ к хостингу предоставляется через FTP. Можно также подключиться к серверу по SSH. К сожалению, в панели управления Majordomo нет полноценного файлового менеджера. Это не очень удобно. Для передачи файлов приходится использовать FTP.

Пользователи находят и другие недостатки в работе панели администрирования. Первая проблема — неинформативный раздел со статистикой, из которого можно узнать только суммарную нагрузку на процессор. Хотите получить данные о посещаемости сайтов — ставьте виджеты от Яндекс.Метрики и Google Analytics или другие счётчики. Вторая проблема — медленная загрузка панели управления.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector