Софт majordomo для организации умного дома
Содержание:
- Общие функции
- Партнёрская программа
- Управление циклами (сервисами)
- API
- Состав и управление системой MajorDoMo
- Почта Majordomo – управление аккаунтом
- Функции и возможности
- Что такое MajorDoMo?
- Microsoft Outlook
- Функциональность
- Установка и настройка 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(ФРАЗА, УРОВЕНЬ, ОТВЕТ_НА_ЧТО) — последние два параметра не обязательны. Эта функция ведёт себя следующим образом:
- Если указан параметр ОТВЕТ_НА_ЧТО, то система попытается найти терминал, с которого был запрос, содержащий данную фразу
- Если не указан параметр ОТВЕТ_НА_ЧТО, то система выберет терминал, с которого был любой запрос в течении последних 5 секунд
- Если терминал найден, то ответ будет направлен на него (с помощью той же функции sayTo)
- Если терминал не найден, то ответ будет озвучен в обычном порядке (аналогично просто использованию функции 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).
Партнёрская программа
Чтобы стать участником партнёрской программы:
- Зарегистрируйтесь в Majordomo.
- Получите партнёрскую ссылку и промокод.
- Распространяйте их любым доступным способом, чтобы привлечь новых пользователей: через свой сайт, соцсети, мессенджеры, рекламные посты и объявления. Можно использовать баннеры и кнопки, которые предлагает 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¶m2=value2 — вызов метода <OBJECT>.<METHOD> с параметрами/api/script/<SCRIPT> — вызов сценария <SCRIPT>/api/script/<SCRIPT>?param1=value1¶m2=value2 — вызов сценария <SCRIPT> с параметрами/api/events/<PATH/TO/EVENT>?param1=value1¶m2=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 |
{ «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 |
{«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 или другие счётчики. Вторая проблема — медленная загрузка панели управления.