The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Настройка web-сервера на базе bozoh..."
Отправлено auto_tips, 01-Июн-11 16:16 
С недавних пор я перевёл все свои сервера на операционные системы 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)

После этого нужно прописать домашний каталог нашего сайта в директиве httpd_wwwdir, например так:

   httpd_wwwdir="/WWW"

Если ничего не менять, то по умолчанию будет использован каталог /var/www/.

Остальные можно оставить как есть.

Вот и всё. Теперь у вас свой 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).


Во второй части данной статьи я хотел бы поделиться своим опытом и рассказать о том как использовать встроенный Web-сервер операционных систем NetBSD 5.x в связке типа HTTPD+PHP+MySQL вместо установки более мощного, но и более громоздкого и сложного Apache.

После проверки работоспособности сервера можно приступать к установке и настройке дополнительных пакетов. Я приведу пример только для PHP и MySQL, однако другие ставятся и работают аналогично. Установить нужное ПО можно, как минимум, 2-мя способами: компиляцией непосредственно из исходников или же добавлением уже готового пакета с помощью pkg_add. Для краткости я возьму второй способ.

Качаем с официального сайта пакеты типа php-5.x.tgz, mysql-php.tgz и mysql-server-5.x.tgz (версии могут быть любыми) и устанавливаем их с помощью pkg_add, например:

   pkg_add -v php-5.3.6.tgz

После окончания установки всех пакетов перезагружаемся!
Затем подключаем интерпретатор языка PHP к bozohttpd c помощью флага (или параметра) -С .php /usr/pkg/libexec/cgi-bin/php и устанавливаем новый стартовый файл для сайта - index.php. Выглядит это так:

   httpd_flags="-С .php /usr/pkg/libexec/cgi-bin/php -x index.php"

Теперь создаём тестовый PHP-скрипт (например test1.php) и запрашиваем его через браузер:

  http://192.168.1.50/test1.php

Всё должно заработать!

Теперь проверяем работу СУБД MySQL. Запускаем mysql client (который устанавливается вместе с сервером) и даём несколько тестовых команд, например:

   mysql -uroot -p (вход под root-ом с пустым паролем)
   show databases; (выводит список баз данных)
   use mysql; (подключаемся к базе mysql)
   show tables; (выводит список таблиц этой базы)
   quit; (выходим из mysql)

Если все эти команды были приняты и выполнены интерпретатором, значит MySQL уже работает. Так же можно проверить работу MySQL с помощью скриптов для /bin/sh, например таким:

   #!/bin/sh
   echo "select Host, User from user" | mysql -uroot -p mysql;
   exit 0;

Данный скрипт выведет список хостов и пользователей MySQL.

Теперь осталось только проверить связку PHP+MySQL и соединить их с Web-сервером.
Пишем скрипт на PHP для соединения с СУБД и делаем простой запрос, например так:

   $dbcn=mysql_connect("localhost", "root", "");
   mysql_select_db("mysql");
   $r=mysql_query("select Host, User from user");
   for($i=0; $i < mysql_num_rows($r); $i++)
   { $res=mysql_fetch_array($r); echo "$res[Host] $res[User]\n"; }
   mysql_close($dbcn);

Результат выполнения этого скрипта будет аналогичен предыдущему на shell.

URL:
Обсуждается: https://www.opennet.ru/tips/info/2585.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру