Хочу для своего прибора с ethernet сделать web лицо (как в адсл модемах, роутерах и т.п.) на приборе будет крутится линукс и проц арм9 .
входе проработки выплыло несколько вариантов
1. lighttpd + fastcgi + програмки на си
2. webtoolkit (http://www.webtoolkit.eu/wt/ru/)
3. cppcms (http://cppcms.com/wikipp/ru/page/main)
4. Klone (http://www.koanlogic.com/klone/)
Кто делал подобное прошу высказать свои рекомендации по выбору
Мы используем в своих устройствах сервер httpd из busybox, он fastcgi не умеет, а только обычный cgi через вызов процесса. CGI на C++ с использованием библиотеки libcgi. Правда, библиотечка эта весьма проста и многих вещей не умеет, например загрузку файлов и что-типа шаблонизатора пришлось самостоятельно лепить. Работает все шустро на процессоре арм9.
Дома на роутере dlink (арм9, 200МГц, 64Мб, openwrt) крутится связка lighttpd+fastcgi+php+sqlite. Задача - веб-морда к бд с небольшим попутным функционалом. Работает все вполне удовлетворительно: в основном ответ сервера - 300-600мс при обращении к небольшим таблицам, при выводе таблицы побольше (около 5к записей) да еще и через замутный запрос ответ увеличивается до 5с.
В целом, PHP конечно слабо подходит для встраиваемых устройств - жрет он много ресурсов, но если девайс помимо этого ничего напряжного не делает, то и такой вариант сгодится.
Варианты 2-4 не видел и не пробовал, хотя было бы интересно, особенно Klone судя по описанию именно для этого и разрабатывался, к тому же это решение "все внутри" без внешнего web-сервера.
Мне тоже Klone приглянулся, но слишком мало инфы по нему а копать самому слишком мало знаний .... и еще его надо каждый раз перекомпиливать если даже меняешь что то html коде.
как посоветуете осваивать это все, потренироваться на обычном пк, а потом уже переносить на железо ?
Ну да, придется пересобирать. А зачем вам нужно в готовом девайсе менять код скриптов, отладили, собрали, а потом если что-то меняться в web-интерфейсе и будет, то все равно с полным обновлением прошивки.
Мне думается, самое главное чтобы была возможность мешать HTML-разметку с кодом, а KLone вроде такую возможность предлагает с помощью тегов <%%>. Если без этого делать CGI, то конечно тяжко писать и сопровождать его потом будет, т.к. куча printf убивает всякую наглядность.
Ну да, проще для начала, наверное, под ПК собрать пример. Хотя перекинуть по tftp и запустить на девайсе тоже не сильно напрягает. Можно и gdb-server настроить, чтобы отладка была прямо на девайсе.
поковырял я Klone нашел минус, не все примеры компилируются с версией 3,1,0 максимум с 2,4 . Вот как ее скомпилировать под железку imx287 так и не понял....
klone, кстати, очень логичная для эмбеда система - язык программирования становится единым для всего устройства. Не надо прыгать с С\С++ на всякие питоны, пхп, руби и прочие для динамического формирования страниц.
Если все будет работать, как описано, то это очень реальная альтернатива httpd, lighttpd и уж тем более apache.