1

Тема: Дополнительные возможности веб-интерфейса (php версия)

Под спойлером ("<продолжить читать>") скрины веб-интерфейса, на них, собственно, всё наглядно видно. После спойлера инструкция по установке.

http://pdf-docs.ru/tmp/zyxel/w1.jpg
http://pdf-docs.ru/tmp/zyxel/w2.jpg
http://pdf-docs.ru/tmp/zyxel/w3.jpg
http://pdf-docs.ru/tmp/zyxel/ssh.jpg
http://pdf-docs.ru/tmp/zyxel/w5.jpg
http://pdf-docs.ru/tmp/zyxel/w6.jpg
http://pdf-docs.ru/tmp/zyxel/w7.jpg
http://pdf-docs.ru/tmp/zyxel/vnstat2.jpg

Итак. Кто желает попробовать, читаем до конца.

Внимание! Данное расширение использует веб-сервер nginx - поэтому, если у вас на роутере уже используется данный веб-сервер, сохраните предварительно его настройки, так как после установки данного дополнения они будут перезаписаны.


Устанавливаем дополнение - поочерёдно выполняем три команы:

cd /media/DISK_A1/system/root
wget http://pdf-docs.ru/tmp/zyxel/install.sh
sh install.sh

После окончания установки роутер автоматически перезагрузится.


В файле /media/DISK_A1/system/web/addons/ssh.php указываем свой порт для ssh:
$port = "22";
Например, если у вас ssh работает на 384 порту, то сделать так $port = "384";
Сохраняем.
Если порт стандартный, то менять ничего не надо.

Предложения и критику принимаю в этой теме.

Отредактировано sirota202 (2013-11-15 07:49:12)

26

Re: Дополнительные возможности веб-интерфейса (php версия)

<script type="text/javascript"><!--

for (var i = 0; i < document.links.length; i++)
{
    var a = document.links[i];
    if (a.port == '88' && a.hostname != document.location.hostname)
    {
        a.hostname = document.location.hostname;
    }
}

//--></script>

перед </body> должно решить проблему с нестандартным хостом. Код меняет хосты у всех ссылок с портом 88 страницы на текущий хост, если различаются.

27

Re: Дополнительные возможности веб-интерфейса (php версия)

Star Per, благодарю! Приеду с работы, обязательно попробую)

28

Re: Дополнительные возможности веб-интерфейса (php версия)

Star Per, к сожалению, не срабатывает

29

Re: Дополнительные возможности веб-интерфейса (php версия)

Уважаемый Zyxmon, не могли бы вы разделить эту тему на две и перенести все сообщения касающееся моих попыток расширить веб-интерфейс кинетика туда?
От keevi мои труды уже не зависят, поэтому тут это всё уже не в тему.
А писать сюда ещё буду. В планах, например, ещё файловый менеджер из веб-интерфейса через который будет доступ ко всем папкам, начиная с "/".
Название темы можно сделать любым, мне не принципиально. Спасибо.

30

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202, создайте новую тему - я перенесу туда посты, может их немного подчищу.

31

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

В планах, например, ещё файловый менеджер из веб-интерфейса через который будет доступ ко всем папкам, начиная с "/".

Категорически поддерживаю. Как предложение (на рассмотрение) - добавить пункт с созданием первичного раздела на диске с ФС ext2. У кого нет дома линуксовых машин может пригодится.

32

Re: Дополнительные возможности веб-интерфейса (php версия)

laforsh :

добавить пункт с созданием первичного раздела на диске с ФС ext2.

Это возможно только с первого диска, где все уже установлено. Если влезет (что сомнительно), то из /storage.
Не уверен, что этот пункт нужен.

33

Re: Дополнительные возможности веб-интерфейса (php версия)

laforsh :

пункт с созданием первичного раздела на диске с ФС ext2.

По хорошему это нужно было бы добавить вообще в прошивку - в штатную web часть - как подготовка диска для встроенного трансмишена. Выше я имел ввиду как подготовку еще одного диска (для установки расширений на другой кинетик, перевода кинетика с уже установленными расширениями с НТФС раздела на ext2 и т.п. ситуации). Предложение навеяно использованием медиаплеера Dune и торрент клиента на нем. Там подключаешь диск, в GUI выбираешь пункт "форматировать", соглашаешься с предупреждением что все данные будут потеряны и получаешь диск с единственным первичным разделом и ФС ext2. Красота.
Кстати, первый диск для установки расширений на свой кинетик делал именно так.
Сорри за офтоп, но там есть еще одна очень удобная фича, которой не хватает в прошивке кинетике - если в корне диска лежит файл с определенными именем и содержимым

storage_name="abvgd"

, то этот диск всегда будет монтироваться в папку abvgd.
Ну да это не в наших силах...

Отредактировано laforsh (2013-01-30 10:56:54)

34

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid, пропустил одно ваше сообщение, сейчас прокомментирую.

Dr.Acid :

Поправил адреса в services.php - вроде работает(шустренько так, не то что keevi). Вот только, как я понял, то что перечисленно здесь:

$allserv = array(
                "..",
                ".",
                "S01swap",
                "S10dropbear",
                "S10keevi",
                "K29php",
                "S12vnstatd"
                    );

отображаться не должно - думаю, сюда надо внести всё, что обеспечивает работу самого веб расширения, и должно быть не важно, с S или K.
Плюсы(по сравнению с keevi): скорость (мне показалось, намного быстрее)
Функционал(хотя, здесь могу ошибаться).
Минусы: "Тяжелый" (зависит от многих пакетов, такое на SIRAM, пожалуй, не поставиш. keevi легковесней, опять же даже по объему)

Сделаю так, чтобы отображалось, но нельзя было управлять (вкл/выкл/рестарт), а можно было только редактировать скрипт.

Dr.Acid :

Минусы: "Тяжелый" (зависит от многих пакетов, такое на SIRAM, пожалуй, не поставиш. keevi легковесней, опять же даже по объему)

В этом направлении ведутся работы smile

Отредактировано sirota202 (2013-01-30 14:55:23)

35

Re: Дополнительные возможности веб-интерфейса (php версия)

попытался установить на KEENETIC 4G, в вебстранице все исчезло остался только монитор?
ставил:Через SSH заходим на роутере на флешку в  папку /media/DISK_A1/system/root
даю команду: wget http://pdf-docs.ru/tmp/zyxel/install.sh

И затем
sh install.sh
может еще чето надо?

Отредактировано imalv26 (2013-01-30 19:42:52)

36

Re: Дополнительные возможности веб-интерфейса (php версия)

imalv26 :

попытался установить на KEENETIC 4G, в вебстранице все исчезло остался только монитор?

может еще чето надо?

У меня было также. "Лечил" редактированием sidebar.asp ручками.

37

Re: Дополнительные возможности веб-интерфейса (php версия)

laforsh :
laforsh :

пункт с созданием первичного раздела на диске с ФС ext2.

По хорошему это нужно было бы добавить вообще в прошивку - в штатную web часть

Да, прошивка - это не по нашей части. Но с другой стороны, можно реализовать это в виде некоего пакета(бинарники-проги+скрипты+вебинтерфейс), подгружаемого через wget(например, в /tmp). Я так понимаю, состав там будет фиксированный(для всех одинаковый) - тогда можно его где нибудь разместить(хоть даже здесь). Нужен он всё равно будет редко.

38

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

У меня было также. "Лечил" редактированием sidebar.asp ручками

а поподробнее можно?

39

Re: Дополнительные возможности веб-интерфейса (php версия)

imalv26, в файле /media/DISK_A1/system/web/sidebar.asp

все записи http://<%=LAN_IP_ADDR;%>:88  замените на http://_IP_кинетика_ :88

По ходу на всех 4G так.

Завтра у меня выходной, буду думать как сделать универсально для всех.

40

Re: Дополнительные возможности веб-интерфейса (php версия)

Прикрутил ещё авторизацию ко всему этому делу, чтобы порт 88 в инет без пароля не светился у тех, кто его наружу откроет для того чтобы дополнения из внешки открывались. Завтра/послезавтра обновлю первый пост с установкой.

41

Re: Дополнительные возможности веб-интерфейса (php версия)

Появились кое какие изменения, обновлённые файлы загружены на сервер. Первый пост с инструкцией обновил - теперь не нужно устанавливать lighttpd и php, самые необходимые файлы для их работы запихал в установочный архив, остальное выкинул.

Что изменилось:

1. Наконец-то полностью решил проблему с файлом /media/DISK_A1/system/web/sidebar.asp. Левое меню теперь не ломается и ссылки проставляются автоматом с тем адресом, какой имеет роутер. На правильную мысль натолкнул Star Per, за что ему огромное спасибо.

2. Доработал страницу со службами исходя из советов Dr.Acid

3. Проведены работы в плане безопасности данного дополнения - теперь его можно закрыть паролем, который установлен на кинетик. Пароль нигде вводить для этого дополнительно не нужно - достаточно нажать кнопку "Включить защиту" и, при случае, перезагрузить роутер - после перезагрузки, все страницы данного дополнения будут запаролены тем же паролем, что и у остальных страниц админ-центра.

http://pdf-docs.ru/tmp/zyxel/z6.jpg

4. Установка теперь не требует отдельной установки lighttpd и php - нужные файлы включены в дополнение и скопируются на роутер автоматически. Лишние выброшены.

Ищу рабочее название для данного проекта, если можно его так назвать. Что-то не могу ничего толкового придумать, как бы могло называться данное творение.

Ну и, как всегда, жду дальнейших предложений от тех, кто рискнёт установить.

42

Re: Дополнительные возможности веб-интерфейса (php версия)

Полагаю, страница "Пароль" вообще лишняя - надо сделать, чтобы это было включено сразу, по умолчанию. (Если это работает так, как описано - сам ещё не попробовал последнюю версию). По крайней мере, это логично - 1 пароль на основной веб интерфейс и на дополнение(и независимо, от куда происходит доступ - из локальной сети или из инета).

43

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid, у меня не получается средствами ssh проделать те же махинации что на php -  вытащить из системы пароль, в куче мусора в виде нечитаемых и читаемых символов, отыскать его там (с учетом того, что я даже не представляю у кого какой пароль) и отчистить от всего этого мусора.

Да, и ещё немаловажный момент - при изменении пароля через основной интерфейс, пароль в дополнительном останется прежним, пока не нажмёшь кнопку "Включить защиту", тогда данные о пароле обновятся и в дополнительном интерфейсе. Так что страничка эта нужна. Я нигде не нашел, чтобы кинетик хранил где-то пароль в каком-нибудь файле, в удобоваримом виде, чтобы можно было брать его напрямую оттуда, поэтому и приходится извращаться.

Отредактировано sirota202 (2013-01-31 13:58:52)

44

Re: Дополнительные возможности веб-интерфейса (php версия)

Потестил(предварительно снёс всё(включая keevi), т.е. делал начисто(надеюсь)) - опять с sidebar.asp проблема. После прописывания адресов вручную,
1) вот здесь небольшая некрасивость замечена: http://dracid2011.narod2.ru/tmp/pic1.jpg
Может, стоит сначала написать строку "установленная версия прошивки:"
А потом, на следующей: "Доступные неофициальные прошивки NDMSv1" и список пошел. Так красивее будет, и всё поместится(места "вниз" на странице всё равно много).
2) Команды SSH по-моему, на черном фоне смотрелось лучше (впрочем, на вкус и цвет... может, сделать кнопку выбора цветов фона/шрифта?)
3) Может, Расширения PHP и Информация PHP объединить на одной странице(а то потом, если много всего будет, не удобно, ещё лишняя страница). И вообще это опциональная вещь, считаю.
4) Нужен(не хватает) аналог keevi.opkg (поставить, удалить, обновить пакеты)
Ну и совсем фантастика - может, придумать какой-то редактор левого меню "Дополнительно", чтобы пользователь сам выбирал, какие компоненты ему нужны(а они бы автоматом скачивались и ставились). Например мне не нужны страницы с PHP - убрал их, кому то может ещё что нужно/ненужно. Но это, конечно, на будущее.

Я не могу понять, почему(на 4ж) не работают ссылки в sidebar.asp (попробую кое-что проверить)

Отредактировано Dr.Acid (2013-01-31 14:03:53)

45

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

2) Команды SSH по-моему, на черном фоне смотрелось лучше (впрочем, на вкус и цвет... может, сделать кнопку выбора цветов фона/шрифта?)

Не проблема, сделаю.

Dr.Acid :

3) Может, Расширения PHP и Информация PHP объединить на одной странице(а то потом, если много всего будет, не удобно, ещё лишняя страница). И вообще это опциональная вещь, считаю

Подумаю над этим

Dr.Acid :

Ну и совсем фантастика - может, придумать какой-то редактор левого меню "Дополнительно", чтобы пользователь сам выбирал, какие компоненты ему нужны(а они бы автоматом скачивались и ставились). Например мне не нужны страницы с PHP - убрал их, кому то может ещё что нужно/ненужно. Но это, конечно, на будущее.

Над этим тоже, в принципе, не такая уж и фантастика.

Dr.Acid :

Нужен(не хватает) аналог keevi.opkg (поставить, удалить, обновить пакеты)

Это в планах, как и файловый менеджер.

Dr.Acid :

Я не могу понять, почему(на 4ж) не работают ссылки в sidebar.asp (попробую кое-что проверить)

Тоже не понимаю - там тупо яваскрипт. Теоретически не должен не работать, иначе, если бы ява не поддерживалась у вас, то и основной интерфейс наполовину бы не работал.

Dr.Acid :

вот здесь небольшая некрасивость замечена

Некрасивость исправлю - у вас название прошивки длиннее моего, не учел. В следующем обновлении будет нормально. Я тут ещё поработал, архив с вебинтерфейсом уменьшился килобайт на 150 где-то. Мелочь, но всё же.

46

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

Я тут ещё поработал, архив с вебинтерфейсом уменьшился килобайт на 150 где-то. Мелочь, но всё же.

Это хорошо, но вот только я заметил - что-то после перезагрузки у меня lighttpd не всегда заводится, приходится вручную стартовать. Странно это, да ну это наверное у меня такие личные заморочки.

Кстати, вот что выяснил. Лично у меня httpd от кинетика, в других прошивках 4ж он отличается, но всё равно, получается, дело не в нем, а если не в нем, то, спрашивается, в чем?!?
То, что пишет Веб интерфейс на странице Монитор: "Системный монитор интернет-центра бла бла бла" - это он берёт из переменной DEVICE_NAME , я поставил ее в "KEENETIC" и стал KEENETIC  wink  Так что здесь искать причину тоже не стоит. Ладно, попозже ещё может на лайте проверю...

47

Re: Дополнительные возможности веб-интерфейса (php версия)

Жаль, что у меня нет разных моделей кинетика для полноценного тестирования того, что делаю, так что приходится вот на живых людях проверять). С lighttpd и не запуском - печально. Надо подумать как словить ошибку. Может включить лог и посмотреть - вдруг он пытается, но к этому моменту чего-то ещё не загрузилось и запуститься не удаётся. У него в файле настроек можно это сделать.

Вообще было бы круто как-нибудь заставить встроенный httpd понимать php. Я подозреваю, что возможна вероятность того, что если запустить его с параметрами типа httpd -p 80 -f /путь/к/конфигу, то он его прочитает. Только не понятно что там за httpd конкретно используется и какого формата должен быть конфиг, чтобы в него поддержку php прописать.

48

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

С lighttpd и не запуском - печально. Надо подумать как словить ошибку. Может включить лог и посмотреть - вдруг он пытается, но к этому моменту чего-то ещё не загрузилось и запуститься не удаётся. У него в файле настроек можно это сделать.

А может, всё проще: у вас ведь бинд папки /web делается в S88webphp а lighttpd запускается в S50lighttpd тоесть раньше. Может, просто переобозвать S88webphp например в S44webphp ?
Сейчас попробую.
UPD Не помогло.

Как известно,  httpd запускается так(фрагмент из /bin/services.sh):

super watch httpd httpd -p $WEB_ACCESS_PORT

Насколько я понимаю, никаких ключей, кроме p у него нет, нет и конфига. Так что врядли получится.

Отредактировано Dr.Acid (2013-01-31 16:33:38)

49

Re: Дополнительные возможности веб-интерфейса (php версия)

Пробую завести на Лайте - инсталлятор в топку(написал свой), архивы качнул, всё положил в свой сервер - загрузил, но lighttpd не стартует (точнее, пишет что запущен, но в процессах не появляется). Странно это - я лично раньше заводил lighttpd у себя на Лайте. И памяти вроде осталось достаточно:

/var/tmp # free
              total         used         free       shared      buffers
  Mem:        30132        20308         9824            0          748
 Swap:            0            0            0
Total:        30132        20308         9824

или я не прав?

50

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid, чтобы зря не гадать почему не стартует, в файле /media/DISK_A1/system/etc/lighttpd/lighttpd.conf раскомментируйте  строку

#server.errorlog = "/media/DISK_A1/system/var/log/lighttpd/error.log"

Попытайтесь запустить и потом посмотрите что там в /media/DISK_A1/system/var/log/lighttpd/error.log записалось. Может что-то вполне конкретное будет и понятное.

Dr.Acid :

А может, всё проще: у вас ведь бинд папки /web делается в S88webphp а lighttpd запускается в S50lighttpd тоесть раньше. Может, просто переобозвать S88webphp например в S44webphp

Вы правы, что-то я об этом не подумал. А лучше вообще эти два скрипта в один объединить.

Отредактировано sirota202 (2013-01-31 17:55:00)