Проблема с отображением меню

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

Модератор: immortal

drama17
Сообщения: 7
Зарегистрирован: Ср окт 03, 2012 2:06 pm
Благодарил (а): 0
Поблагодарили: 0

Проблема с отображением меню

Сообщение drama17 » Ср окт 03, 2012 6:06 pm

У меня почему-то нет меню слева на главной странице, а так же белый лист, если я перехожу по адресу 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)
    ?>
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Проблема с отображением меню

Сообщение sergejey » Ср окт 03, 2012 6:32 pm

Я думаю, что тут как раз проблема в работе из папки, а не из "корня".
Лучшим вариантом будет сделать отдельный виртуальный хост, чтобы путь был всё же от корня. Например, сделать локальный хост типа http://majordomo.local/

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
drama17
Сообщения: 7
Зарегистрирован: Ср окт 03, 2012 2:06 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Проблема с отображением меню

Сообщение drama17 » Ср окт 03, 2012 6:55 pm

ну так сейчас как раз такой вариант
Alias "/" "/var/www/majordomo/"
<Directory "/var/www/majordomo/">
AllowOverride All
</Directory>
sinva
Сообщения: 11
Зарегистрирован: Чт окт 04, 2012 12:25 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Проблема с отображением меню

Сообщение sinva » Чт окт 04, 2012 12:39 pm

Абсолютно та же проблема. Debian.
ИТ-опыт у меня большой, но увлекся linux только что, и, мягко говоря, всех тонкостей не знаю... Хотя балдею от ковыряния во всех этих пакетах и приятного зуда пальцев, забытого со времен командной строки DOS ))
Вроде делаю все по описанию, изучил построчно конфиги всей связки LAMP - все впустую.
А хотелось бы запустить проект, очень грамотно по-моему написано. У меня пока работает управление светом на Ардуино (управляется голосом, кстати. Родственники в шоке )) ). Теперь твердо намерен сделать полноценное управление домом. Готов делиться наработками, идеями, а начать не могу: сайт не запускается... Принципиально хочу запустить это дело на линуксе.
Я видел, здесь кому-то удалось это сделать.
Парни, помогите новичкам ))
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Проблема с отображением меню

Сообщение sergejey » Чт окт 04, 2012 1:37 pm

Давайте разбираться :)
Во-первых, menu.html никуда копировать не нужно -- это шаблон и ему место в папке шаблонов )
Далее, если не открывается /menu.html в браузере, то дело в том, что не отрабатывает .htaccess -- либо он не отрабатывает вовсе, либо не работает та часть, которая связана с модулем mod_rewrite. В первом случае надо проверить наличие AllowOverride All (есть), а во втором проверить что в настройках httpd.conf подключен модуль mod_rewrite (раскомментирована строчка типа LoadModule rewrite_module modules/mod_rewrite.so)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
drama17
Сообщения: 7
Зарегистрирован: Ср окт 03, 2012 2:06 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Проблема с отображением меню

Сообщение drama17 » Чт окт 04, 2012 2:24 pm

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

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> (не знаю, можно ли так делать, но в люом случае это не повлияло никак).
Т.е. вроде как с этим ок. Ну а с
  • AllowOverride All
тоже все норм. Вот содержимое 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]
sinva
Сообщения: 11
Зарегистрирован: Чт окт 04, 2012 12:25 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Проблема с отображением меню

Сообщение sinva » Чт окт 04, 2012 2:49 pm

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 всего с десяток раз разных поставил, поковырял. Опыта еще нет.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Проблема с отображением меню

Сообщение sergejey » Чт окт 04, 2012 3:28 pm

хм... а что если открыть /menu.html и в config.php прописать где-нибудь просто

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

echo "test";
exit;
если выведется test то значит дело не в .htaccess а в пути к шаблонам (раз ошибка не выводится, а чистый лист показывается)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
drama17
Сообщения: 7
Зарегистрирован: Ср окт 03, 2012 2:06 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Проблема с отображением меню

Сообщение drama17 » Чт окт 04, 2012 3:57 pm

Добавил в конец config.php:

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

echo "test";
exit;
?>
http://192.168.0.34/menu.html илиhttp://192.168.0.34/ выводит только test на страницу

но по-поводу пути к шаблонам... Вроде как по умолчанию Define('DIR_TEMPLATES', "./templates/");, пробовал и полный путь писать: /var/www/majordomo/templates/ - одинаково.
может где-то явно указать, где искать меню???
sinva
Сообщения: 11
Зарегистрирован: Чт окт 04, 2012 12:25 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Проблема с отображением меню

Сообщение sinva » Чт окт 04, 2012 4:16 pm

sergejey писал(а):хм... а что если открыть /menu.html и в config.php прописать где-нибудь просто

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

echo "test";
exit;
если выведется test то значит дело не в .htaccess а в пути к шаблонам (раз ошибка не выводится, а чистый лист показывается)
Я смогу попробовать только вечером, дома, и мне кажется результат будет таким же как у drama17.
Может есть явные ссылки на шаблоны где-то в коде?
Ответить