MD в директории www/home

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

Модератор: immortal

Ответить
krasnov
Сообщения: 33
Зарегистрирован: Вс мар 16, 2014 9:41 pm
Откуда: Чебоксары
Благодарил (а): 30 раз
Поблагодарили: 0

MD в директории www/home

Сообщение krasnov » Пн мар 17, 2014 8:31 pm

Добрый день!

Собрал на днях температурный датчик на arduino по радио передающий данные на сервер. По ком порту видно данные.
Решил подключить к MajorDomo. Установил на Ubuntu Server 12.04 в папку home по инструкции из Азбуки.
Создал класс на основе температурного датчика, добавив влажность.
Из Азбуки же нашел какой запрос должен быть для добавления данных.
Написал по форуму cycle_arduino.php скрипт для опроса ком порта и отправляющий данные.
При ручном запуске скрипта данные отправляются в MD, все вроде работает, данные обновляет, графики строит.
При добавлении же скрипта в папку scripts, не отправляет.
Пытался разобраться и нашел такие подозрительные вещи :)

1)
В логе /var/log/apache2/error.log раз в минуту такие записи

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

[Sun Mar 16 22:36:00 2014] [error] [client 127.0.0.1] File does not exist: /var/www/objects
В логе /var/log/apache2/access.log тоже раз в минуту

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

127.0.0.1 - - [16/Mar/2014:22:36:00 +0400] "GET /objects/?object=ClockChime&op=m&m=onNewMinute HTTP/1.1" 404 465 "-" "-" 
Стал изучать объекты, нашел ClockChime метод onNewMinute. Скрипт вроде нормальный, но внизу заметил строки

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

Вызов метода:
По ссылке:
http://127.0.0.1:80/objects/?object=ClockChime&op=m&m=onNewMinute&   
И так по всем объектам, в том числе моем новом температурном датчике, но он работал т.к. я запрос создавал руками в скрипте по пути с home

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

http://127.0.0.1:80/home/objects/?object=...   
Теперь думаю где я ошибся в инструкции по установке. Где вызывается этот таймер пока не искал т.к. лучше исправить комплексно проблему раз во всех объектах смотрит в корень. (А для чего этот таймер нужен? :) )
Буду признателен за помощь в исправлении ситуации :)

Опишу немного процесс:
Создал копию default с названием home в папке /etc/apache2/sites-available/

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

<VirtualHost *:80>
    ServerAdmin a@b.c
    ServerName home.mysite.com
    ServerAlias home.mysite.com

    DocumentRoot /var/www/home
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/home>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost> 
И снаружи и из локала по home.mysite.com открывает MD.
Пока писал пост нашел в config.php такие строки

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

 Define('SERVER_ROOT', 'c:/_majordomo');
 
 if ($_ENV["S2G_BASE_URL"]) {
  Define('BASE_URL', $_ENV["S2G_BASE_URL"]);
 } else {
  Define('BASE_URL', 'http://127.0.0.1:80');              // Your base URL:port (!!!)
 } 
Последний адрес в else подозрительно похож на тот что в логах :) Это его править?
И что писать в SERVER_ROOT для linux?

2)
Цикл вроде стартует /var/www/home/debmes/2014-03-16.log

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

22:22:45 DEBUG [root]: Starting ./scripts/cycle_arduino.php ...  (at /var/www/home/lib/general.class.php:390) 
Но нигде в логах ничего не нашел. В скрипте есть строка, подозреваю на нее

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

include "php_serial.class.php"; 
я этот файл положил туда же где мой cycle_ скрипт в папке scripts.
Как можно отлаживать такие скрипты? echo куда будет писать, где смотреть?

3)

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

[Sun Mar 16 22:34:42 2014] [error] [client 192.168.1.1] PHP Warning:  fopen(/var/www/home/cached/urls/https___github_com_sergejey_majordomo_commits_master_atom.html): failed to open stream: Permission denied in /var/www/home/lib/general.class.php on line 156, referer: http://home.mysite.com/admin.php?pd=&md=panel&inst=&action=events

[Sun Mar 16 21:38:39 2014] [error] [client 192.168.1.1] PHP Warning:  fopen(/var/www/home/cached/voice/e1f8e6e2a5279f08160517771cedb394.mp3): failed to open stream: Permission denied in /var/www/home/lib/general.class.php on line 156
Тут оказалось что у папок cached/urls и cached/voice владелец был root хотя по инструкции менял на www-data, и у других папок владелец был сменен. После смены конкретно на этих папках пока все нормально работает.

Спасибо за внимание!
krasnov
Сообщения: 33
Зарегистрирован: Вс мар 16, 2014 9:41 pm
Откуда: Чебоксары
Благодарил (а): 30 раз
Поблагодарили: 0

Re: MD в директории www/home

Сообщение krasnov » Пн мар 17, 2014 10:06 pm

По п.1) отвечу сам себе.
Да, нужно править config.php строку

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

Define('BASE_URL', 'http://127.0.0.1:80');              // Your base URL:port (!!!) 
заменил на

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

Define('BASE_URL', 'http://127.0.0.1:80/home');              // Your base URL:port (!!!) 
krasnov
Сообщения: 33
Зарегистрирован: Вс мар 16, 2014 9:41 pm
Откуда: Чебоксары
Благодарил (а): 30 раз
Поблагодарили: 0

Re: MD в директории www/home

Сообщение krasnov » Пн апр 11, 2016 3:40 pm

krasnov писал(а):По п.1) отвечу сам себе.
Да, нужно править config.php строку

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

Define('BASE_URL', 'http://127.0.0.1:80');              // Your base URL:port (!!!)  
заменил на

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

Define('BASE_URL', 'http://127.0.0.1:80/home');              // Your base URL:port (!!!)  
Здравствуйте, krasnov!
Столкнулся с аналогичной проблемой, но теперь Ваше решение не помогает. Все картинки берет с корня. :(
krasnov
Сообщения: 33
Зарегистрирован: Вс мар 16, 2014 9:41 pm
Откуда: Чебоксары
Благодарил (а): 30 раз
Поблагодарили: 0

Re: MD в директории www/home

Сообщение krasnov » Пн апр 11, 2016 3:48 pm

krasnov писал(а):но теперь Ваше решение не помогает.
Посмотрите этот параметр

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

Define('ROOTHTML', "/"); 
должно быть так

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

Define('ROOTHTML', "/home/"); 
похоже я не заметил как поправил его в прошлый раз.
Ответить