Создание Web-сервера на базе Apache версии 1.3.* Rus, интегрированного с СУБД MySQL версии 3.22.32 посредством гипертекстового препроцессора
Во-первых, я дам несколько адресов в Интернет, где можно найти исходные коды данных продуктов, сопутствующих им программ и документацию:
Apache версий 1.3.* с русским перекодировщиком - http://apache.lexa.ru/. Адрес сервера проекта Apache - http://www.apache.org/; СУБД MySQL версий 3.22.32 с поддержкой русских кодировок "koi8-r" и "windows-1251"- http://mysql.directnet.ru/. Адрес сервера проекта MySQL - http://www.tcx.se/; Гипертекстовый препроцессор PHP версий 3.0.* - http://ru.php.net/. Адрес сервера проекта PHP - http://www.php.net/; Поисковая система UdmSearch - ftp://ftp.izhcom.ru/pub/unix/UdmSearch/. Во-вторых, я перечислю программы, компиляторы (для ОС версии 2.2.*) и библиотеки, необходимые для компиляции вышеперечисленных программных продуктов
Компилятор gcc версии 2.8.1; Библиотеки egcs версии 2.8.1; Библиотеки glibstdc++ версии 2.8.1; Программа gmake. Все эти пакеты находятся в стандартной коллекции портов, поставляемой с ОС FreeBSD от версии 2.2.6 вплоть до 4.2.
Итак, сначала необходимо распаковать исходные коды СУБД MySQL и скопировать полученную директорию в папку "/usr/local", т.е., например, "/usr/local/mysql-3.22.32". Далее необходимо перейти в папку mysql и дать команду:
./configure - -with-charset=koi8_ru В случае переконфигурации нужно предварительно дать команду "make distclean", а затем вышеприведенную команду с другими параметрами (смотри "./configure --help").
Теперь даем команды:
make && make install cd scripts ./mysql_install_db Последняя команда создает две базы данных с именами "mysql" и "test" и может запустить СУБД (но может и не запустить - о запуске смотри чуть ниже). Первая БД - привилегированная. Она необходима для правильного функционирования СУБД. Скрипт выдает ссобщение о необходимости задания административного пароля доступа к СУБД. Эта операция делается следующей командой: mysqladmin -u root password NewBigSecret
В дальнейшем, для совершения любой операции с БД будет необходимо задавать этот пароль.
СУБД можно запускать с помощью скрипта mysql.server. Нужно дать следующие команды: cd ../support-files cp mysql.server.sh /usr/local/etc/rc.d/
В файл /usr/local/etc/rc.d/mysql.server.sh нужно внести необходимые изменения.
В системе нужно завести непривелигированного пользователя с закрытым по паролю доступом с именем mysql, а в файле mysql.server.sh изменить значение переменной mysql_daemon_user на mysql. Далее нужно дать ряд команд:
cd /usr/local chmod -R 0700 var chown -R mysql var Теперь переходим к установке гипертекстового препроцессора РНР. Он компилируется в отдельный модуль, который затем присоединяется к пакету модулей сервера Apache. Поэтому первым этапом в установке препроцессора будет распаковка сервера Apache в директорию "/usr/local/httpd", после чего нужно дать команды:
cd /usr/local/httpd ./configure -prefix=/usr/local/httpd Далее распаковываем РНР в директорию "/usr/local", то есть, к примеру, "/usr/local/php-3.0.*". Даем команды:
cd /usr/local/php-3.0.* ./configure --with-mysql --with-apache=/usr/local/httpd --with-mod-charset --with-config-file-path=/etc gmake && gmake install Теперь копируем файл /usr/local/php-3.0.*/php3.ini-dist в папку /etc с именем php3.ini. Можно отредактировать его, хотя мне этого делать не пришлось.
Для компиляции Web сервера даем команды:
cd /usr/local/httpd ./configure --prefix=/usr/local/httpd --activate-module=src/modules/php3/libphp3.a make && make install Последняя команда создает исполняемый файл httpd и предварительно настраивает файл конфигурации сервера httpd.conf. В него нужно внести следующее изменение:
Убрать комментарий в строке "AddType application/x-httpd-php3 .phtml". Теперь файлы-программы с РНР будут иметь это расширение. Размер исполняемого файла достаточно велик (~3Мбайт). Поэтому ЭВМ должна быть достаточно мощной (минимальные требования: процессор Р100, ОЗУ >= 64Мбайт).
В директории /usr/local/etc/rc.d создать исполняемый скрипт следующего содержания:
#======================================= #!/bin/sh /usr/local/httpd/bin/apachectl start #======================================= Поисковая система UdmSearch использует в своей работе СУБД MySQL, гипертекстовый препроцессор РНР и протокол НТТР.
Для установки поисковой системы необходимо распаковать ее в директорию "/usr/local", т.е., например, "/usr/local/UdmSearch" и отредактировать файл $UdmHOME/include/indexer.h. Далее в директории $UdmHOME/src скопировать файл Makefile.freebsd в Makefile. Полученный файл отредактировать, добавив в него следующие изменения: #======================================= INCLUDES = -I../include -I/usr/local/include/mysql LIBS = -L/usr/local/lib/mysql CFLAGS+= -DRUSSIAN #======================================= Теперь нужно дать команды "make && make install". Далее даем команды:
cd ../create mysqladmin --password=NewBigSecret create wwwsearch - создать БД с именем "wwwsearch" mysql --password=NewBigSecret wwwsearch < create.txt - создать необходимые таблицы mysql --password=NewBigSecret wwwsearch < stop.en.txt - записать английские стоп слова mysql --password=NewBigSecret wwwsearch < stop.ru.txt - записать русские стоп слова cd ../run В этой директории редактируем файл indexer.cfg:
#======================================= Убрать комментарий ("#") перед "MySQLUser root" Убрать комментарий перед "MySQLPass NewBigSecret" CharSet windows-1251 # Если текст на сервере лежит в этой кодировке. Server http://www.server.ru #======================================= И последний этап - запуск индексатора. Даем команду:
./indexer indexer.cfg Программа обратится к серверу, указанному в файле конфигурации, и пройдет по всем гиперссылкам сервера, записывая их в БД. Для поиска по серверу, на нем нужно расположить файл из папки php3. При обращении к нему в броузере появится строка для ввода запроса и кнопка "Искать". Файл можно изменить (в плане оформления) для конкретного сервера. Индексатор нужно регулярно перезапускать из процесса "cron".