Установка на Ubuntu

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

dredius
Сообщения: 39
Зарегистрирован: Сб ноя 22, 2014 10:25 pm
Откуда: Дмитров
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Установка на Ubuntu

Сообщение dredius » Сб фев 21, 2015 7:20 pm

Настройка MajorDomo на Ubuntu Server 14.04
СпойлерПоказать
1. В консоли набираем sudo -i для того что бы стать рутом, запросит пароль вводим пароль который использовали для входа в консоль (sudo -i вводить нужно только один раз при каждой новой сессией)
sudo -i

2. Далее делаем обновления
apt-get update
apt-get upgrade -y
reboot

3. Устанавливаем MySQL Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните.
sudo -i
sudo apt-get install mysql-server mysql-client


4. Установка WEB сервера
sudo apt-get install apache2 apache2-utils

4.1 Правим конфиг Апача
sudo nano /etc/apache2/sites-available/000-default.conf
находим строчку
DocumentRoot /var/www/html
и меняем там путь на
DocumentRoot /var/www
сохраняем и выходим (Ctrl-X далее Y (yes подтверждаем сохранение файла)
4.2 Редактируем конфиг апача
sudo nano /etc/apache2/apache2.conf
Находим раздел

<Directory />
Options FollowSymLinks
AllowOverride All
Require all denied
</Directory>

<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

И меняем
AllowOverride None
на
AllowOverride All

В ТРЕХ МЕСТАХ!

Далее в конце файла добавляем строчку
ServerName localhost
сохраняем и выходим (Ctrl-X далее Y (yes подтвержадем сохранение файла)

4.3 Перезапускаем Апач командой
service apache2 restart



5. Устанавливаем PHP5
apt-get install php5-curl

Далеее нам нужно отредактировать конфиг
nano /etc/php5/apache2/php.ini
находим строчку
short_open_tag = Off
и меняем ее на
short_open_tag = On
сохраняем и выходим (Ctrl-X далее Y (yes подтверждаем сохранение файла)

P.S: для более удобного поиска можно нажать Ctrl-W и вставить текст.

6. Устанавливаем PHPMYADMIN:
apt-get install phpmyadmin

В процессе установки он попросит пароль для пользователя MySQL (который мы указали ранее) и новый пароль для подключения к phpmyadmin
Создадим ссылку в www что бы мы могли попасть в панель управления http://server/phpmyadmin
ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

7. Включаем mod_rewrite
a2enmod rewrite
и делаем рестарт апача
service apache2 restart


7.2 Убираем нотификации в логах PHP
nano /etc/php5/apache2/php.ini
Находим строчку
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
и меняем её на
error_reporting = E_ALL & ~E_NOTICE

далее находим строчки

max_execution_time 30 меняем на max_execution_time 90
max_input_time 60 меняем на max_input_time 180
post_max_size 8M меняем на post_max_size 200M
upload_max_filesize 2M меняем на upload_max_filesize 50M
max_file_uploads 20 меняем на max_file_uploads 150

7.3 Тут тоже самое как и в предыдущем файле

nano /etc/php5/cli/php.ini

Находим строчку
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
и меняем её на
error_reporting = E_ALL & ~E_NOTICE

max_execution_time с 30 меняем на 90
max_input_time поменяем с 60 на 180
post_max_size меняем с 8M на 200M
upload_max_filesize меняем с 2M на 50M
max_file_uploads меняем с 20 на 150

Обязательно перезапускаем Апач, чтобы изменения вступили в силу.
service apache2 restart

8. Устанавливаем MajorDoMo

Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое html в папку /var/www/

mkdir /home/majordomo
Далее
cd /home/majordomo
Далее
wget http://smartliving.ru/download/_majordo ... 90b.tar.gz
Далее
tar xvfz _majordomo_linux_090b.tar.gz
Далее
cp -rp /home/majordomo/html/* /var/www/html
Далее
cp -rp /home/majordomo/html/.htaccess /var/www/html


9. Меняем права доступа к файлам по принципу: всем-всё.

Вариант №1

find /var/www/ -type f -exec chmod 0666 {} \;
find /var/www/ -type d -exec chmod 0777 {} \;

Проверяем права командой
ls -lh /var/www

если права по какой-то причине не дались, а об этом говорят минусы вместо rwxrwxrwx. То есть совсем железобетонный вариант:
sudo chmod -R 777 /var/www

Вариант №2
Другое решение проблемы с правами следующее. Мажордом работает от пользователя www-data. Права доступа к каталогу /var/www, где лежат файлы Мажордом по умолчанию принадлежат root. Изменим владельца папки /var/www на www-data.

chown -R www-data:www-data /var/www
Но этого мало. Необходимо дать права на доступ к звуку: Т.е. добавить www-data в группу audio. Делаем usermod:
usermod -a -G audio www-data
Проверяем, что он появился в группе:
cat /etc/group | grep audio
ищем строку похожую на
audio:x:29:pi,www-data

для окончательной проверки еще можно запустить из консоли (P.S Файла там не нужно самостоятельно его загрузить в папку)
/usr/bin/mplayer /var/www/cached/voice/test.mp3
Должен быть звук. (P.S: Если конечно у нас установлен плеер, Установка плеера sudo apt-get install mplayer )

Перезапускаемся (чтобы пользователь обновился командой reboot ). И теперь пробуем через web интерфейс получить сообщение.
Если звук не появился, заходим в утилиту "top" и смотрим под каким пользователем запущен основной скрипт "cycle.php". Если под root или другим пользователем, и нет звука, то убиваем процесс и запускаем скрипт под своим текущем пользователем. И проверяем
В случае появления звука, использовать авто запуск системы, согласно пункту "Вариант 1", описанному ниже.

12. Создание базы данных

12.1 Создаем пустую БД с названием db_terminal.
Заходим по адресу http://majordomo_IP/phpmyadmin

Создаем базу данных db_terminal
Заходим в нее и находим вкладку Импорт
Далее импортируем в нее данные из файла db_terminal.sql (что скачали в архиве _majordomo_linux_090b.tar.gz)
Потом опять заходим в базу находим вкладку привилегии и добавляем нового пользователя
например - major, пароль 123456789 (указать свой) хост укажем localhost,
Выберем в "База данных для пользователя" Выставить полные привилегии на базу данных "db_terminal"
Чуть ниже будет раздел "Глобальные привилегии (Отметить все / Снять выделение)" жмем Отметить все далее ОК

12.2 Правим основной конфиг.
nano /var/www/config.php
находим в самом начале

Define('DB_HOST', 'localhost');
Define('DB_NAME', 'db_terminal');
Define('DB_USER', 'major');
Define('DB_PASSWORD', '123456789');


13. Для полноценной работы системы осталось запустить циклы есть два варианта
P.S: Вариант №1 лучше всего подойдет вам.

13.1 Основной цикл Вариант 1

Создаем конфигурационый фал majordomo.conf
sudo nano /etc/init/majordomo.conf

Вписываем скрипт

description "MagorDoMo"
author "http://smartliving.ru"

start on runlevel [2345]
stop on runlevel [016]

console none
respawn

post-start script
echo "`date` : $UPSTART_JOB started" >> /var/www/debmes/$UPSTART_JOB.log
end script

exec /usr/bin/php /var/www/cycle.php

post-stop script
echo "`date` : $UPSTART_JOB stoped" >> /var/www/debmes/$UPSTART_JOB.log
end script/php /var/www/cycle.php
end scrip


После этого можно запускать и останавливать главный цикл без перезагрузок ОС.
sudo start majordomo
sudo stop majordomo


13.2 Основной цикл Вариант 2
Запуск основного цикла добавляем в Cron, для пользователя majordomo (заменить на своего, под которым запущена система)
crontab -e -u majordomo
Или для ROOT
sudo nano /etc/crontab -e
добавляем строки
@reboot /usr/bin/php /var/www/cycle.php

13.3 После наших махинаций делаем reboot :)


14. Все, теперь вы можете зайти на веб интерфейс Majordomo
http://majordomo_IP/ (http://localhost/)



P.S: У меня все получилось только с 5-го раза, так что если что не так пошло перепроверяемся или сносим все и ставим все с нуля.




Apache/2.4.7
Ubuntu server 14.04
PHP Version 5.5.9-1ubuntu4.6
За это сообщение автора dredius поблагодарили (всего 6):
Amarok (Вс фев 22, 2015 9:36 am) • fiberline (Вт мар 10, 2015 12:56 am) • mixa (Вс мар 22, 2015 11:08 pm) • sregeipt (Сб апр 25, 2015 6:00 am) • avu2015 (Пт июн 26, 2015 6:07 pm) • mirsum (Вт июн 30, 2015 9:19 pm)
Рейтинг: 6.98%
Banana pi, Arduino mega 2560 + Ethernet shield, Arduino nano, Majordomo v.0.8.0.b

MajorDomo на Ubuntu Server 14.04 + Nettop Qoo intel Atom D510

Спасение утопающих - дело рук самих утопающих...
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Установка на Ubuntu

Сообщение PAV » Пн июн 01, 2015 3:04 pm

Не первый раз систему ставлю, но в этот раз просто Ж.
Все по списку делаю. Получаю вот такое вот:

Код: Выделить всё

http://smartliving.ru/ * @version 1.2 */ include_once("./config.php"); include_once("./lib/loader.php"); // start calculation of execution time startMeasure('TOTAL'); include_once(DIR_MODULES."application.class.php"); $session=new session("prj"); // connecting to database $db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME); include_once("./load_settings.php"); if (!$_GET['nocache']) { // use cache? $use_caching = 0; } else { $use_caching = 0; } // 60 minutes cache expiration time $cache_expire = 60*60; $cached_result = ''; $req_url = $_SERVER['REQUEST_URI']; if ($req_url == '/') { $req_url='/index.html'; } if ($use_caching && preg_match('/^\/([\/\w_-]+)\.html$/', $req_url, $matches) && $_SERVER['REQUEST_METHOD']!='POST') { $cache_filename=preg_replace('/\W/', '_', $matches[1]).'.html'; if (file_exists(ROOT.'cached/'.$cache_filename)) { if ((time()-filemtime(ROOT.'cached/'.$cache_filename))<=$cache_expire) { $cached_result=LoadFile(ROOT.'cached/'.$cache_filename); } else { unlink(ROOT.'cached/'.$cache_filename); } } } if ($cached_result=='') { if (!file_exists(DIR_MODULES.'control_modules/installed')) { include_once(DIR_MODULES."control_modules/control_modules.class.php"); $ctl = new control_modules(); } $app=new application(); if ($md!=$app->name) { $app->restoreParams(); } else { $app->getParams(); } if ($app->action!='' && $app->action!='docs') { $fake_doc=''; } if ($app->action == '' && $fake_doc != "" && file_exists(DIR_MODULES.'cms_docs/cms_docs.class.php')) { $tmp = SQLSelectOne("SELECT ID FROM cms_docs WHERE NAME='".DBSafe($fake_doc)."'"); if (IsSet($tmp['ID'])) { $app->action="docs"; $app->doc=$tmp['ID']; } elseif (file_exists(DIR_TEMPLATES.$fake_doc.".html")) { $app->action=$fake_doc; } else { //$tmp1=SQLSelectOne("SELECT ID FROM cms_docs WHERE NAME='404'"); $tmp1 = array(); if ($tmp1['ID']) { $app->action = "docs"; $app->doc = $tmp1['ID']; } else { header ("HTTP/1.0 404 Not Found"); echo "The page cannot be found. Please use this link to continue browsing."; exit; } } } $result=$app->run(); $result=str_replace("nf.php", "index.php", $result); } else { // show cached result $result=$cached_result; } // BEGIN: begincut endcut placecut if (preg_match_all('//is', $result, $matches)) { for($i = 0; $i < count($matches[1]); $i++) { $block=$matches[1][$i]; if (preg_match('/(.*?)/is', $result, $matches2)) { $result = str_replace($matches[0][$i], $matches2[1], $result); $result = str_replace($matches2[0], '', $result); } } } // END: begincut endcut placecut // BEGIN: filter output if ($filterblock!='') { preg_match('/(.*?)/is', $result, $match); $result=$match[1]; } // END: filter output // GLOBALS $result = preg_replace('/%rand%/is', rand(), $result); if (preg_match_all('/%(\w{2,}?)\.(\w{2,}?)%/is', $result, $m)) { $total = count($m[0]); for($i=0;$i<$total;$i++) { $result=str_replace($m[0][$i], getGlobal($m[1][$i].'.'.$m[2][$i]), $result); } } if (preg_match_all('/%(\w{2,}?)\.(\w{2,}?)\|(\d+)%/is', $result, $m)) { $total = count($m[0]); $seen=array(); for($i=0;$i<$total;$i++) { $var=$m[1][$i].'.'.$m[2][$i]; $interval=(int)$m[2][$i]*1000; if (!$interval) { $interval=10000; } $id='var_'.preg_replace('/\W/', '_', $var).$seen[$var]; $seen[$var]++; $result=str_replace($m[0][$i], '...', $result); } } // END GLOBALS // BEGIN: language constants if (preg_match_all('/&\#060\#LANG_(.+?)\#&\#062/is', $result, $matches)) { $total = count($matches[0]); for($i=0;$i<$total;$i++) { if (preg_match('/value=["\']' . preg_quote($matches[0][$i]) . '["\']/is', $result)) { continue; } if (defined('LANG_' . $matches[1][$i])) { $result = str_replace($matches[0][$i], constant('LANG_' . $matches[1][$i]), $result); } else { echo "Warning: ".'LANG_' . $matches[1][$i] . " not defined, please check dictionary file
"; } } } // END: language constants if (!headers_sent()) { header ("HTTP/1.0: 200 OK\n"); header ('Content-Type: text/html; charset=utf-8'); } function echobig($string, $bufferSize = 8192) { $chars = strlen($string)-1; for ($start = 0; $start <= $chars; $start += $bufferSize) { echo substr($string,$start,$bufferSize); } } startMeasure('final_echo'); ob_start("ob_gzhandler"); // should be un-commented for production server echobig($result); endMeasure('final_echo', 1); if ($cache_filename != '' && $cached_result == '') { SaveFile(ROOT.'cached/'.$cache_filename, $result); } $session->save(); // closing database connection $db->Disconnect(); // end calculation of execution time endMeasure('TOTAL'); // print performance report performanceReport(); // ob_end_flush(); ?>
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Установка на Ubuntu

Сообщение PAV » Пн июн 01, 2015 3:19 pm

Ммм, в общем не забывайте перегружать браузер или пользоваться приватным режимом, чтобы куки не сохранялись
Leon
Сообщения: 2
Зарегистрирован: Чт июн 04, 2015 9:13 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Установка на Ubuntu

Сообщение Leon » Чт июн 04, 2015 9:22 pm

Ребята,
help my!!!
Пытаюсь установить на машину с ubuntu
Все по инструкции. Но хоть ты тресни на запрос в браузере http://localhost/phpmyadmin4
выдает

Not Found

The requested URL /phpmyadmin4 was not found on this server.
Apache/2.4.7 (Ubuntu) Server at localhost Port 80
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: Установка на Ubuntu

Сообщение skysilver » Чт июн 04, 2015 10:24 pm

А если 4-ку в пути убрать?
Вот так захожу у себя http://192.168.1.10/phpmyadmin/
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Leon
Сообщения: 2
Зарегистрирован: Чт июн 04, 2015 9:13 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Установка на Ubuntu

Сообщение Leon » Чт июн 04, 2015 11:14 pm

skysilver писал(а):А если 4-ку в пути убрать?
Вот так захожу у себя http://192.168.1.10/phpmyadmin/
Попробовал. К сожалению не помогает :(
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Установка на Ubuntu

Сообщение DiArt » Пн июн 08, 2015 9:57 am

Пробуй так
http://localhost/phpmyadmin
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
avu2015
Сообщения: 1
Зарегистрирован: Чт июн 11, 2015 4:53 pm
Откуда: Измаил
Благодарил (а): 3 раза
Поблагодарили: 0
Контактная информация:

Re: Установка на Ubuntu

Сообщение avu2015 » Пт июн 26, 2015 4:41 pm

Доброго дня. не удается запустить основной цикл (cycle.php) под Kubuntu 14.04 top на поиск процесса (shift L cycle.php пишет: "cycle.php not found, apache2 - тестируется, mysql - тестируется доступно localhost/phpmyadmin, php.info - невижу, при вызове localhost в браузере (Mazilla) чистый экран (но рядом с названием страницы лэйба [M] присутствует, /etc/init/majordomo.conf по всей вероятности не инициализируется так как лог $UPSTART.log не создается, включил вывод ошибок в etc/php5/apache2/php.ini E_ALL & ~E_DEPRECATED,
при запуске localhost имею:
Fatal error: Call to a member function DbSafe() on a non-object in /var/www/lib/mysql.class.php on line 355 - лезу смотреть :roll:
. прошу помощи
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Установка на Ubuntu

Сообщение zelevova » Вт июн 30, 2015 4:04 pm

Попробуй решение из поста http://majordomo.smartliving.ru/forum/v ... afe#p19254

PS: Поиск наше все
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Установка на Ubuntu

Сообщение arturmon » Сб июл 04, 2015 3:42 am

Вклинюсь с вопросом...ни кто не пробовал создать автоматический загрузчик, на подобии как тут http://habrahabr.ru/post/104029/ ??
Ответить