Форумы

Geek's Notes Universe :: Форумы :: Web-Server

Маленький скрипт - заменитель веб-сервера

root
[ Истинный ДАО ]
Сообщений: 493
Поднять локальный HTTP-сервачок. Чтобы не поднимать апач, представляю самописный заменитель оного
Назовём это superApache и поместим в /tmp/superApache
#!/bin/sh

HTTP_ROOT="/tmp";
read SSS
while [ ${#SSS} -ne 1 ]; do
    [ $(echo $SSS| grep -c '^GET') -eq 1 ] && GET=$(echo $SSS|sed -r -e 's@^GET @@' -e 's@\s*HTTP.*$@@')
    read -t 1 SSS
done
REQUEST_PAGE=$(echo $GET|sed -r -e 's@^([^\?]*)\?.*@\1@')
[ "$REQUEST_PAGE" = "/" ] && REQUEST_PAGE="/index.html"
QUERY_STRING=$(echo $GET|sed -r -e 's@^[^\?]*\?(.*)@\1@')
[ $(echo $REQUEST_PAGE| grep '\.\.') ] && exit


[ ! -f $HTTP_ROOT/$REQUEST_PAGE ] && {
    #тут обработчики виртуальных файлов( вызова функций, например...)
    exit
}
cat $HTTP_ROOT/$REQUEST_PAGE

Теперь создадим файл /etc/xinetd.d/superApache:

service superApache
{
        id                      = superApacheId
        type                    = UNLISTED
        disable                 = no
        port                    = 12345
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = nobody
        passenv                 = PATH
        server                  = /tmp/superApache
        env                     = HOME=/tmp
        bind                    = 127.0.0.1
}

Ну и
service xinetd restart

(Для эстетов killall -HUP xinetd)
Все, теперь свой сервак запущен на 12345 порту на lo интерфейсе. Далее в каталог $HTTP_ROOT ложим файло (index.html - обязательно) ну а при необходимости пинга можно обратиться к несуществующей странице... короче, шаблон логики я дал, а дальше сам

[ Редактирование Thu Apr 26 2012, 12:53PM ]

Модераторы: root, Frizze, andrey, Bender

<< Предыдущая тема | Следующая тема >>

Перейти:     Наверх