Собрал на днях температурный датчик на 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
Код: Выделить всё
127.0.0.1 - - [16/Mar/2014:22:36:00 +0400] "GET /objects/?object=ClockChime&op=m&m=onNewMinute HTTP/1.1" 404 465 "-" "-"
Код: Выделить всё
Вызов метода:
По ссылке:
http://127.0.0.1:80/objects/?object=ClockChime&op=m&m=onNewMinute&
Код: Выделить всё
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>
Пока писал пост нашел в 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 (!!!)
}

И что писать в 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";
Как можно отлаживать такие скрипты? 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
Спасибо за внимание!