Как я уже говорил, это более сложный способ, но у него есть свои преимущества. Во-первых, у вас появится возможность использовать самые последние версии серверов Apache, MySQL и интерпретатора РНР, которых нет в составе даже самого нового дистрибутива Linux. Во-вторых, вы сами сможете контролировать процесс сборки и включать поддержку необходимых вам функций, исключив такую ситуацию, когда, например, разработчики пакетов RPM при сборке интерпретатора РНР забыли включить поддержку сервера MySQL. Мне попадался такой дистрибутив php: функции mysql_connect в нем просто не было.
Итак приступим к настройке. Но перед этим скачайте из Интернет последние версии Apache, MySQL и РНР. Предварительно удалите из системы старые версии, если такие были установлены. После загрузки распакуйте исходные тексты в каталог /src. Далее, сначала установите сервер MySQL. С этой целью перейдите в каталог с исходными текстами MySQL и введите следующие команды (первая команда включает поддержку по умолчанию кодировки koi8-r):
./configure --with-charset=koi8_ru
make
make install
Затем аналогично установите Apache, перейдя в соответствующий каталог:
./configure
make
make install
Для получения информации обо всех опциях команды configure введите команду configure --help. После этого распакуйте РНР и перейдите в каталог с исходными текстами РНР. Введите команды:
./configure --with-mysql --with-apache=../apache_1.3.20 --with-mod_charset
make
make install
Первая команда конфигурирует интерпретатор РНР для работы с сервером баз данных MySQL и Web-сервером Apache. Естественно, вы должны правильно указать путь к исходным текстам Apache с помощью параметра –-with-apache.
Затем вернитесь в каталог, содержащий исходные тексты Apache, и введите команду:
./configure --activate-module=src/modules/php4/libphp4.a
Перед этим нужно убедиться в существовании файла Iibphp4.a. Этот файл должен существовать, если php собрался нормально. Если конфигуратор configure успешно завершил свою работу, введите команды:
make
make install
Этими командами вы собираете сервер Apache с подключенным модулем libphp. Проверить подключился ли нужный модуль вы можете после установки сервера (выполнения команды make install) с помощью команды:
httpd –l
В списке модулей должен быть модуль libphp4.c, а также модуль mod_charset.c — его вы подключили при первой сборке. После этого можно отредактировать файл /etc/php.ini и установить пароль для пользователя root сервера MySQL (не путайте пользователя root всей системы с пользователем root сервера MySQL!). Обе операции уже были описаны в п. 16.3.1. Теперь только остается добавить запуск серверов в сценарии автозагрузки системы. Напомню, что сервер MySQL должен запускаться до сервера Apache.
17
Практические примеры.
Обратный звонок
Возможно, материал этой главы будет пересекаться с уже имеющимся в этой книге, но при написании главы я ставил цель объяснить все «с нуля». Практически любой читатель сможет настроить шлюз и сервер входящих звонков, не читая предыдущих глав. Конечно, этот читатель должен обладать некоторыми навыками работы в Linux.
17.1. Настройка шлюза
Сначала определим функции, которые должен выполнять шлюз:
1. Поддержка связи с провайдером.
2. Маршрутизация IP-пакетов между локальной сетью и сетью Интернет для выхода пользователей локальной сети в Интернет.
3. Обеспечение IP-сервиса.
4. Защита локальной сети от несанкционированного доступа из Интернет.
Конфигурирование шлюза в операционной системе Linux состоит из следующих этапов:
1. Настройка ядра.
2. Настройка сети.
3. Конфигурирование IpChains.
4. Настройка DNS.
5. Настройка Squid.
Для определенности будет использоваться два сетевых интерфейса — eth0, идущий к провайдеру, и eth1 — во внутренней сети. Пусть интерфейсу eth0 назначен IP-адрес 111.111.111.111, a eth1 — 192.168.1.1
17.1.1. Настройка ядра
Скорее всего, вам придется перекомпилировать ядро. При этом должны быть активизированы следующие опции:
Networking support (CONFIG_NET) [у]
TCP/IP networking (CONFIG_INET) [у]
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [y]
IP multicasting (CONFIG_IP_MULTICAST) [у]
IP firewalling (CONFIG_IP_FIREWALL) [у]
IP accounting (CONFIG_IP_ACCT) [y]
Можно также поэкспериментировать с набором опций Advanced Router, если данные функции есть в вашем ядре. Более подробно о процессе компилирования ядра вы можете прочитать в следующей главе.
17.1.2. Настройка сети
После перекомпилирования ядра нужно включить IP-forwarding. Сделайте это при помощи следующей команды: