Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

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


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

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

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

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

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

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

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

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

Веб-сервер bozohttpd + PHP + Mysql

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

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

Итак. Для начала хотелось бы отметить тот факт, что в ОС NetBSD последних версий (5.0 и выше) уже есть простой, но довольно мощный, Web-сервер bozohttpd, который находится в папке /usr/libexec/. А следовательно, если не требуется особой гибкости и огромного количества поддерживаемых модулей (как в Apache), то этот сервер вполне подойдёт, например, для тестов начинающим Web-программистам или же для размещения домашнего (или корпоративного) сайта в локальной (корпоративной) или региональной (районной) сети. Преимущества такого решения очевидны:

1) Не требуется установки и конфигурации ещё одного сервера;
2) Не будет захламляться системный носитель и каталоги конфигурации всяким мусором;
3) Меньше будет установлено дополнительных пакетов;
4) У bozohttpd нет собственных файлов конфигурации, стартовых скриптов и дополнительно загружаемых модулей. А значит его настройка и обслуживание будет доступна даже новичкам.
5) При любых проблемах в системе и ошибках пользователя переустановка этого сервера не требуется!
и т.д.

Данный список можно продолжить, но в этом нет необходимости. Я думаю, что каждый администратор найдёт своё применение этому замечательному серверу. Запуск bozohttpd производится как обычно, из файла /etc/rc.conf следующей директивой:

httpd=YES

Однако, я рекомендую переписать сюда и другие директивы, относящиеся к httpd, чтобы потом было удобнее его настраивать. Найти их можно в файле /etc/defaults/rc.conf. А можно просто воспользоваться командой grep, например так:

grep httpd /etc/defaults/rc.conf
и затем выбрать нужные директивы, или же сразу дописать всё в /etc/rc.conf командой типа:
grep httpd /etc/defaults/rc.conf >> /etc/rc.conf

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

httpd_wwwdir="/WWW"

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

httpd_flags=""

Хотелось бы напомнить, что первая (стартовая) Web-страничка вашего сайта должна называться index.html и находиться непосредственно в папке, указанной в директиве httpd_wwwdir.

Всё, после перезапуска (или перезагрузки) bozohttpd будет работать и откликаться на 80-м порту, как и Apache. Проверить это элементарно. Нужно запустить любой браузер на любом компьютере в сети и набрать в адресной строке IP-шник сервера, например:

http://192.168.1.50/ (если IP-адрес NetBSD-сервера 192.168.1.50)

или так:

http://192.168.1.50:80/ (с указанием номера порта)

После проверки работоспособности сервера можно приступать к установке и настройке дополнительных пакетов. Я приведу пример только для 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.

Ну вот и всё. Дерзайте!


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

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


Реклама:
такси центральное . облицовочный кирпич фасадный