Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Веб-сервер bozohttpd + CGI (shell scripts) на NetBSD 5.x

Калегин Сергей Николаевич
(май 2011 года)
magnus@pochta.ru

С недавних пор я перевёл все свои сервера на операционные системы BSD и хочу рассказать об их преимуществах по сравнению с другими ОС, а также поделиться опытом их установки и настройки.

Итак. Сразу хотелось бы предупредить вопросы, связанные с выбором этих систем. Почему я выбрал именно BSD (преимущественно OpenBSD и NetBSD)? Дело в том, что это лучшие операционные системы из тех, с которыми мне приходилось работать! До BSD на моих серверах стояли различные версии и реализации ОС Windows, Linux и Mac OS, однако ни одна из них не смогла обеспечить такую стабильность, нетребовательность к ресурсам и универсальность, а также простую, быструю и лёгкую настройку сервера (а именно этим сисадмин и занимается) как системы BSD. Более подробно об этом, я постараюсь рассказать в следующих своих статьях на данном сайте. А начать обзорный цикл статей по работе с системами BSD мне хотелось бы с демонстрации поразительной простоты и целостности данных ОС. Для примера я взял установку и настройку Web-сервера "с нуля", так как это одна из самых популярных функций сервера и, наверное, самая популярная ассоциация у пользователей всемирной паутины. К тому же, сделать это на базе последних версий NetBSD и OpenBSD не просто, а ОЧЕНЬ просто! Делается это всего в три шага:

1) Выбрать компьютер для установки сервера;
2) Установить и настроить операционную систему (возьмём NetBSD 5.0);
3) Запустить и настроить bozohttpd (встроенный Web-сервер NetBSD 5.x).

Вся эта работа займёт всего несколько минут!!! Скорость и простота - главные преимущества BSD-систем!

1. Начнём с выбора компьютера для установки сервера. Хотя... особый подбор здесь не требуется, так как, в данном случае, подойдёт практически любой компьютер, который попадётся под руку (старый, слабый, списанный в утиль и т.п.), ведь NetBSD - самая универсальная система в мире! Её можно поставить куда угодно, даже на тостер (в котором хлеб жарят)!

2. Далее, устанавливаем на выбранный компьютер ОС NetBSD. Для этого потребуется всего несколько сотен мегабайт (!!!) свободного места на диске (ну или на том носителе, куда Вы будете ставить систему) и пара минут времени. Подробное описание процесса установки я дам в отдельной статье. А для тестового сервера подойдут параметры по умолчанию, просто следуйте инструкциям на экранах инсталлятора (sysinst).

3. Ну а теперь самое интересное - запуск и настройка Web-сервера. Для этого в ОС NetBSD (как и в OpenBSD) ничего дополнительно ставить не придётся, так как в этих системах уже есть набор основных серверов (демонов), их нужно только включить! Делается это очень просто. Открываем на редактирование (с правами root-a) файл /etc/rc.conf и прописываем в него всё, что касается настроек httpd (там всего 4 пунктика). Образец данного конфигурационного файла (с примерами запуска различных серверов) лежит в каталоге /etc/defaults/ и он же является конфигурационным файлом по умолчанию (если в /etc/rc.conf ничего не прописано). Если же копаться в этом sample лень, то можно воспользоваться текстовым фильтром grep для извлечения нужных пунктов из /etc/defaults/rc.conf. Делается это так (один из вариантов):

cat /etc/defaults/rc.conf | grep httpd >> /etc/rc.conf
В результате выполнения этой команды в файл /etc/rc.conf будут добавлены все необходимые записи для запуска и конфигурации http-сервера. Остаётся их только подправить:
httpd=YES (запускает сам сервер bozohttpd)
Остальные можно оставить как есть.

Вот и всё. Теперь у Вас свой Web-сервер. После перезагрузки, разместите стартовый файл index.html (с которого начинается просмотр сайта) в папку /var/www/ и проверьте работу сервера с помощью браузера (лучше с другого компьютера сети) по адресу http://192.168.1.50/, где IP-шник 192.168.1.50 является адресом вашего сервера в сети. Более того, сервер изначально поддерживает CGI и позволяет обрабатывать запросы Web-пользователей с помощью shell-скриптов, расположенных в специальной папке, указание на которую прописывается в качестве параметра непосредственно при запуске httpd или же флага в файле /etc/rc.conf например так:

httpd_flags="-c /var/www/cgi" (все CGI-скрипты должны лежать в этой папке!)
Код CGI-скрипта для /bin/sh выглядит примерно следующим образом:
--------------------
#!/bin/sh

echo "Content-type: text/html";
echo "";

echo Today is `date`;

exit 0;

---------------------
(Данный скрипт просто выводит текущую дату на экран.)

При необходимости, с помощью той же команды echo "...."; можно выводить и HTML-код или же можно вставить его из отдельного файла с помощью cat и т.п. программ. Обратите внимание на то, что при обращении к CGI-файлу в URL обязательно нужно указывать инфикс .../cgi-bin/..., иначе он выполняться не будет! И не забудьте сделать скрипт исполняемым (с помощью команды chmod). Например:

chmod +x test1.sh

Далее можно обращаться к нему напрямую:

/var/www/cgi/./test1.sh
или же через браузер:
http://192.168.1.50/cgi-bin/test1.sh

Причём скрипты могут быть написаны как с помощью команд командного интерпретатора (типа /bin/sh) так и на любом языке программирования, для которого имеется интерпретатор в вашей системе (например Perl или Python).

После того как сервер уже заработал, наверняка, многие озадачатся вопросом насчёт конфигурации bozohttpd. Так вот, у этого сервера нет файлов конфигурации и это здорово! Никаких десятков непонятных инструкций (как, например у Apache), всё прописывается непосредственно при запуске сервера в качестве параметров (флагов). Описание всех этих параметров есть в man-e по httpd данной операционной системы (http://wiki.lissyara.su/wiki/Bozohttpd). Наслаждайтесь мощностью и простой BSD!


Опубликовано на LinuxRSP.ru с разрешения автора.
      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP