Это мое первое сообщение на этом форуме, поэтому считаю долгом выразить свое уважение человеку, проделавшему столько работы и добившемуся таких впечатляющих результатов. Пишу в эту ветку, т.к. она мне показалась наиболее подходящей, да и у человека, написавшего первый пост была такая же проблема.
Я прикладной программист, знаком непонаслышке с sql, вебом никогда не занимался Недавно в целях обучения работе с linux-ом приобрел себе Raspberry Pi Model B (c 512 мб оперативы). Постараюсь внести свои 5 копеек в развитие проекта. Итак от слов к делу:
Вчера, читая статьи про умный дом, я наткнулся на упоминание об этом сайте. К этому моменту у меня уже был настроенный веб-сервер в связке Apache+PHP+MySQL. Я решил попробовать установить MajorDomo. Сделал все по инструкции - получил ошибку 500 и чистый лист в опере. Залез в логи апача
(/var/log/apache2)и увидел такое дело:
Код: Выделить всё
PHP Fatal error: Call-time pass-by-reference has been removed in /var/www/lib/mysql.class.php on line 397
Начал искать, что это за ошибка такая и нашел вот это:
http://stackoverflow.com/questions/8971 ... -available
PHP не знаю, но с английским дружу. Сделал вывод, что значок "&" в последней версии PHP используется перед аргументом только в обьявлении функции. При использовании его в коде - выдает ошибку.
Таким образом, чтобы поправить исходники под новую версию PHP необходимо сделать следующее:
./lib/mysql.class.php - 397 строка
меняем
return $db->Insert($table,&$record);
на
return $db->Insert($table,$record);
./lib/xml.class.php - 54 строка
меняем
xml_parse_into_struct($p,$data,&$vals,&$index);
на
xml_parse_into_struct($p,$data,$vals,$index);
./modules/application.class.php - 207 строка
меняем
$p=new parser($template_file,$this->data,&$this);
на
$p=new parser($template_file,$this->data,$this);
./modules/control_modules/control_modules.class.php - 136 строка
меняем
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.*.html",$this->data,&$this);
на
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.*.html",$this->data,$this);
./modules/control_access/control_access.class.php - 310 строка
меняем точно такую же строку
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.*.html",$this->data,&$this);
на
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.*.html",$this->data,$this);
./modules/panel.class.php - строка 94
меняем снова то же самое
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.*.html",$this->data,&$this);
на
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.*.html",$this->data,$this);
Ну и конечно же выставить права на все файлы. Я особо не заморачивался с разграничением и просто дал всем полные права на эту папку и вложенные файлы.
Дальше идем в /etc/apache2/sites-enabled открываем файл настроек (у меня он там был один 000-default). И меняем AllowOverride None на AllowOverride All, тем самым позволяя файлу .htaccess переопределять настройки. После этого видимых проблем не обнаружил, сейчас буду изучать функционал. По быстродействию могу сказать, что бегает довольно бодро, надеюсь моя малютка потянет эту систему.
Вот собственно и все на данный момент, может кому-то поможет, а вообще эти изменения лучше внести прямо в дистрибутив.
Update: В Опере почему-то при клике по меню все меню пропадает. В IE 8 вроде ок.
Консоль ошибок оперы выдала много ошибок в jquerymobile/jquery.mobile-1.1.0.css.
Одну ошибку по page/8.html:
Код: Выделить всё
Invalid value for property: zoom
Line 1:
1
-^
Точно такая же ошибка есть по menu.html.