Страница 1 из 5
Проблема с отображением меню
Добавлено: Ср окт 03, 2012 6:06 pm
drama17
У меня почему-то нет меню слева на главной странице, а так же белый лист, если я перехожу по адресу
http://192.168.0.34/menu.html. Если я копирую файл menu.html в корень сайта, то полу слева появляется, но оно просто серое и в нем 1 надпись: [#module name="commands" action="" pda="1"#] . Как заставить работать меню нормально? Система Ubuntu 10.04 server 32 bit.
Вторая проблема: работает нормально только если вирт хост такой:
Код: Выделить всё
Alias "/" "/var/www/majordomo/"
<Directory "/var/www/majordomo/">
AllowOverride All
</Directory>
если же хочу спрятать чуть глубже (имеется еще пара тестовых сайтов и вообще):
Код: Выделить всё
Alias "/majordomo" "/var/www/majordomo/"
<Directory "/var/www/majordomo/">
AllowOverride All
</Directory>
Работать нормально перестает - отображается как какая-то тестовая хтмл страница (форматирование пропадает, меню в виде ссылок, которые к тому же не работают). В config.php само собой редактирую
Define('BASE_URL', 'http://192.168.0.34/'); на
Define('BASE_URL', 'http://192.168.0.34/majordomo');
Вот листинг файла config.php:
- <?
/**
* Project Config
*
* @package MajorDoMo
* @author Serge Dzheigalo <jey@tut.by> http://smartliving.ru/
* @version 1.1
*/
Define('DB_HOST', '192.168.0.34');
Define('DB_NAME', 'db_terminal');
Define('DB_USER', 'root');
Define('DB_PASSWORD', 'password');
Define('DIR_TEMPLATES', "./templates/");
Define('DIR_MODULES', "./modules/");
Define('DEBUG_MODE', 1);
Define('UPDATES_REPOSITORY_NAME', 'smarthome');
Define('PROJECT_TITLE', 'MajorDoMo');
Define('PROJECT_BUGTRACK', "bugtrack@smartliving.ru");
Define('COMPUTER_NAME', 'ubuntu-server'); // Your computer name (optional)
Define('DOC_ROOT', '/var/www/majordomo'); // Your htdocs location (!!!)
Define('BASE_URL', 'http://192.168.0.34/'); // Your base URL:port (!!!)
Define('ROOT', DOC_ROOT."/");
Define('ROOTHTML', "/");
Define('PROJECT_DOMAIN', $_SERVER['SERVER_NAME']);
//Define('ONEWIRE_SERVER', 'tcp://localhost:1234'); // 1-wire OWFS server
/*
Define('HOME_NETWORK', '192.168.0.*'); // home network (optional)
Define('EXT_ACCESS_USERNAME', 'user'); // access details for external network (internet)
Define('EXT_ACCESS_PASSWORD', 'password');
*/
//Define('TIME_ZONE', 'Europe/Moscow'); // Time Zone. See for supported time zones: http://www.php.net/manual/en/timezones.php
//Define('DROPBOX_SHOPPING_LIST', 'c:/data/dropbox/list.txt'); // (Optional)
?>
Re: Проблема с отображением меню
Добавлено: Ср окт 03, 2012 6:32 pm
sergejey
Я думаю, что тут как раз проблема в работе из папки, а не из "корня".
Лучшим вариантом будет сделать отдельный виртуальный хост, чтобы путь был всё же от корня. Например, сделать локальный хост типа
http://majordomo.local/
Re: Проблема с отображением меню
Добавлено: Ср окт 03, 2012 6:55 pm
drama17
ну так сейчас как раз такой вариант
Alias "/" "/var/www/majordomo/"
<Directory "/var/www/majordomo/">
AllowOverride All
</Directory>
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 12:39 pm
sinva
Абсолютно та же проблема. Debian.
ИТ-опыт у меня большой, но увлекся linux только что, и, мягко говоря, всех тонкостей не знаю... Хотя балдею от ковыряния во всех этих пакетах и приятного зуда пальцев, забытого со времен командной строки DOS ))
Вроде делаю все по описанию, изучил построчно конфиги всей связки LAMP - все впустую.
А хотелось бы запустить проект, очень грамотно по-моему написано. У меня пока работает управление светом на Ардуино (управляется голосом, кстати. Родственники в шоке )) ). Теперь твердо намерен сделать полноценное управление домом. Готов делиться наработками, идеями, а начать не могу: сайт не запускается... Принципиально хочу запустить это дело на линуксе.
Я видел, здесь кому-то удалось это сделать.
Парни, помогите новичкам ))
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 1:37 pm
sergejey
Давайте разбираться

Во-первых, menu.html никуда копировать не нужно -- это шаблон и ему место в папке шаблонов )
Далее, если не открывается /menu.html в браузере, то дело в том, что не отрабатывает .htaccess -- либо он не отрабатывает вовсе, либо не работает та часть, которая связана с модулем mod_rewrite. В первом случае надо проверить наличие AllowOverride All (есть), а во втором проверить что в настройках httpd.conf подключен модуль mod_rewrite (раскомментирована строчка типа LoadModule rewrite_module modules/mod_rewrite.so)
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 2:24 pm
drama17
Код: Выделить всё
a2enmod rewrite
Module rewrite already enabled
Так же добавлял строку
- LoadModule rewrite_module modules/mod_rewrite.so
, пишет
- [warn] module rewrite_module is already loaded, skipping
при перезапуске апача.
Пробовал секкоментировать
<IfModule mod_rewrite.c> и
</IfModule> (не знаю, можно ли так делать, но в люом случае это не повлияло никак).
Т.е. вроде как с этим ок. Ну а с
тоже все норм. Вот содержимое
menu.html и .htaccess (не знаю как тут под спойлер спрятать:()
Код: Выделить всё
cat /var/www/majordomo/.htaccess
DirectoryIndex index.html index.htm index.php default.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
ReWriteCond %{REQUEST_URI} pda$
RewriteRule .* /popup/pda.html [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
ReWriteCond %{REQUEST_URI} \.html$
ReWriteCond %{REQUEST_URI} !index\.html$
ReWriteCond %{REQUEST_URI} !fckeditor
ReWriteCond %{REQUEST_URI} !banner\.html$
ReWriteCond %{REQUEST_URI} !flashcoms
ReWriteCond %{REQUEST_URI} !google
RewriteRule .* /nf.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
ReWriteCond %{REQUEST_URI} \.xml$
ReWriteCond %{REQUEST_URI} !fck
ReWriteCond %{REQUEST_URI} !flashcoms
RewriteRule .* /nf.php
</IfModule>
<FILES config.php>
deny from all
</FILES>
<FILES debmes.txt>
deny from all
[/size]
Кстати, ничего про меню тут не вижу....
Код: Выделить всё
cat /var/www/majordomo/templates/menu.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/jquerymobile/jquery.mobile-1.1.0.css" />
<script type="text/javascript" src="/jquerymobile/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="/jquerymobile/custom-scripting.js"></script>
<script type="text/javascript" src="/jquerymobile/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" src="/js/jquery.jplayer.min.js"></script>
<title><#LANG_CONTROL_MENU#></title>
<script language="javascript" src="/js/scripts.js"></script>
</head>
<body>
<div data-role="page" id="mainPage" data-theme="a">
[#module name="commands" action="" pda="1"#]
</div>
<!--#
<div id='sound'></div>
<script language="javascript">
var noteMP3Latest='';
var noteMP3Timer;
function getLatestNoteMenuReceived(id, data) {
if (noteMP3Latest!=data) {
document.getElementById("sound").innerHTML="<embed src='"+data+"' hidden=true autostart=true loop=false>";
noteMP3Latest=data;
}
}
function getLatestNoteMenu() {
clearTimeout(noteMP3Timer);
noteMP3Timer=window.setTimeout ('getLatestNoteMenu();', 5000);
AJAXRequest('/getlatestmp3.html', 'getLatestNoteMenuReceived', '');
return false;
}
$(document).ready(function(){
if (window.parent.location == window.location) {
getLatestNoteMenu();
}
});
</script>
#-->
</body>
</html>
[/size]
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 2:49 pm
sinva
sergejey писал(а):Давайте разбираться

Во-первых, menu.html никуда копировать не нужно -- это шаблон и ему место в папке шаблонов )
Далее, если не открывается /menu.html в браузере, то дело в том, что не отрабатывает .htaccess -- либо он не отрабатывает вовсе, либо не работает та часть, которая связана с модулем mod_rewrite. В первом случае надо проверить наличие AllowOverride All (есть), а во втором проверить что в настройках httpd.conf подключен модуль mod_rewrite (раскомментирована строчка типа LoadModule rewrite_module modules/mod_rewrite.so)
Ну я никуда и не копирую, понял что шаблон. .htaccess проверял, отрабатывает, но возможно не весь, об этом не задумывался.
AllowOverride All есть, mod_rewrite точно подключен.
А вот httpd.conf под вторым апачем в Дебиан работает по-другому. Это чисто пользовательский файл для дополнительных настроек, основным там является apache2.conf, многие на это напарываются как я понял. Возможно проблема в этом.
Я просмотрел все подключенные модули из windows версии, настроил аналогично, но результата нет.
Вспомнил, что у меня возникает еще ошибка при вызове метода commands::processTitle, точно не вспомню, на работе сейчас. Типа, неопределенный метод. Как я понимаю, что-то не подгружается, или подгружается неправильно.
Возможно, проблема в версиях PHP-MySQL-Apache2... В общем, уже не знаю куда рыть, особенно когда linux всего с десяток раз разных поставил, поковырял. Опыта еще нет.
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 3:28 pm
sergejey
хм... а что если открыть /menu.html и в config.php прописать где-нибудь просто
если выведется test то значит дело не в .htaccess а в пути к шаблонам (раз ошибка не выводится, а чистый лист показывается)
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 3:57 pm
drama17
Добавил в конец config.php:
http://192.168.0.34/menu.html илиhttp://192.168.0.34/ выводит только test на страницу
но по-поводу пути к шаблонам... Вроде как по умолчанию Define('DIR_TEMPLATES', "./templates/");, пробовал и полный путь писать: /var/www/majordomo/templates/ - одинаково.
может где-то явно указать, где искать меню???
Re: Проблема с отображением меню
Добавлено: Чт окт 04, 2012 4:16 pm
sinva
sergejey писал(а):хм... а что если открыть /menu.html и в config.php прописать где-нибудь просто
если выведется test то значит дело не в .htaccess а в пути к шаблонам (раз ошибка не выводится, а чистый лист показывается)
Я смогу попробовать только вечером, дома, и мне кажется результат будет таким же как у drama17.
Может есть явные ссылки на шаблоны где-то в коде?