» » "Серверный" Android
19 октября 2012; 18:28

"Серверный" Android

Категория: софт

HTTPD
httpd, из busybox.
Тот самый, что использовался для интернет-розетки. Умеет CGI, поэтому можно писать веб-приложения на любом языке, которые можно запустить нa Android. А запустить можно массу чего — Python, Perl, BeanShell/Rhino(jаvascript), Bsh, Lua.

Запускается из консоли или через ssh, вот так:
httpd -p80 -vv -f -h /sdcard/www -c /sdcard/www/http.cfg

-p80 — параметр порта
-vv — режим отладки, -f — не становиться демоном. полезно при отладке — показывает обращения к серверу и обращение к файлам.
-h /sdcard/www — корневая директория сервера
-c /sdcard/www/http.cfg — файл конфигурации.

Из конфигурации наиболее интересна вот эта строчка:
*.sh:/system/bin/sh — расширение файла(или имя), и чем этот файл исполняется. ограничений на папку(cgi-bin) нет, файлы могу исполняться в любых каталогах.

В busybox по умолчанию sh, но если вдруг вы пишите скрипты на bash(я верю, среди вас таких нет), то его можно найти тут.

Скрипт пишем вот таким образом(позволю себе привести пример из прошлого топика):
!/bin/sh
/system/bin/echo $QUERY_STRING >/dev/ttyUSB0
echo "Content-type: text/html"
echo ""
echo ""
echo ""

Все что выводим на stdout — передается в браузер. Все параметры передающиеся get-ом, оказываются в переменной $QUERY_STRING, в виде «r=1&g=3». Парсер пишите сами. Не забывайте, что время выполнения скрипта = время загрузки веб-страницы.

Кстати, в busybox есть практически все, что нужно для написания скриптов на шелле:


Установка других интерпретаторов тоже довольно проста. Скачиваем, например Python, устанавливаем, запускаем.

Нажимаем Install, ждем загрузки и установки.


Однако, просто так запустить python не выйдет, он ориентирован на запуск GUI.
Для того, чтоб получить возможность выполнять консольные скрипты, надо будет сделать простую скрипт-запускалку:

py:
PW=`pwd`
export EXTERNAL_STORAGE=/mnt/sdcard
export LANG=en
PYTHONPATH=/mnt/sdcard/com.googlecode.pythonforandroid/extras/python
PYTHONPATH=${PYTHONPATH}:/data/data/com.googlecode.pythonforandroid/files/python/lib/python2.6/lib-dynload
export PYTHONPATH
export TEMP=/mnt/storage/com.googlecode.pythonforandroid/extras/python/tmp
export PYTHON_EGG_CACHE=$TEMP
export PYTHONHOME=/data/data/com.googlecode.pythonforandroid/files/python
export LD_LIBRARY_PATH=/data/data/com.googlecode.pythonforandroid/files/python/lib
cd $PW
/data/data/com.googlecode.pythonforandroid/files/python/bin/python "$@"


Потом mount -oremount,rw /system; cp ./py /system/bin/; chmod 755 /system/bin/py
Все, можно запустить и получить консоль питона:

Или установить в качестве CGI:
cat "*.py:/system/bin/py" > /sdcard/www/http.cfg

ALHPM (Android+lighttpd+PHP+MySQL)
Для андроид есть замечательная программа KSWEB Server, в составе которой есть PHP 5.4.4, MySQL 5.1.62 и Lighttpd 1.4.29(в версии 2.5)
"Серверный" Android
Вот phpinfo() с запущенного сервера, если кому интересно.
Она платная, но думаю, найти 3$ не составит труда.
Собственно, мы получаем полноценный веб-сервер, на который, например, можно поставить ModX(да, я специально поставил ModX на MiniX :)

И который действительно будет работать:

Вот офсайт сервера.

kWS Android Web Server
Еще есть вот такой сервер, в бесплатной и платной версиях.

Умеет SSI(из которого можно вызывать CGI в том числе), Dynamic DNS(от no-ip.com и dyndns.com), SSL, шифрование. Не умеет PHP и MySQL.


IP Webcam
Замечательная бесплатная программа, которую можно взять тут.
Позволяет сделать из любого Android-устройства IP-вебкамеру. Настроек — куча.

Выглядит так:

Особенно актуально как раз для миникса. Подключаем веб-камеру, устанавливаем программу, настраиваем запуск при загрузке. Красота.

Dynamic DNS
А как быть, если хочется получить еще и доступ из внешнего мира? Если у вашего провайдера есть внешний реальный IP (хоть и динамический), то множество сервисов, предоставляющих динамический ДНС спасут отца русской демократии.
Клиентов — на все вкусы. Универсальный, официальный dyndns, универсальный платный и еще кучка. У kWS клиент встроенный.

© Хабрахабр

<
BlackWarrior

19 октября 2012 18:31

Информация к комментарию
  • Группа: Журналисты
  • Регистрация: 4.04.2012
  • Статус: Пользователь offline
  • Публикаций: 2 319
  • Комментариев: 346
Вот прочел статью и задумчиво на свой ведрофон смотрю...

-✂------------

<
XenoMorph

19 октября 2012 19:07

Информация к комментарию
  • Группа: Администраторы
  • Регистрация: 4.10.2007
  • Статус: Пользователь offline
  • Публикаций: 6 454
  • Комментариев: 2 407
пора уже всё интегрировать в мозг
<
deniska1nsk

19 октября 2012 21:06

Информация к комментарию
  • Группа: Ксеноморф
  • Регистрация: 12.10.2007
  • Статус: Пользователь offline
  • Публикаций: 200
  • Комментариев: 305
с камерой прикольно fellow

-✂------------

<
BlackWarrior

20 октября 2012 13:41

Информация к комментарию
  • Группа: Журналисты
  • Регистрация: 4.04.2012
  • Статус: Пользователь offline
  • Публикаций: 2 319
  • Комментариев: 346
меня www сервер заинтриговал

-✂------------

<
Fox

21 октября 2012 11:23

Информация к комментарию
  • Группа: Администраторы
  • Регистрация: 10.09.2007
  • Статус: Пользователь offline
  • Публикаций: 612
  • Комментариев: 939
а вот такая nokia тебя не заинтригует? krab

<
BlackWarrior

21 октября 2012 13:25

Информация к комментарию
  • Группа: Журналисты
  • Регистрация: 4.04.2012
  • Статус: Пользователь offline
  • Публикаций: 2 319
  • Комментариев: 346
ваааааааааааааау

-✂------------

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.