Все о Linux. LinuxRSP.Ru

[an error occurred while processing this directive]

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 + 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-2024 LinuxRSP