Kniga-Online.club
» » » » Денис Колисниченко - Linux-сервер своими руками

Денис Колисниченко - Linux-сервер своими руками

Читать бесплатно Денис Колисниченко - Linux-сервер своими руками. Жанр: Программное обеспечение издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Рис. 16.1. Функция phpinfo()

Функция phpinfo() очень информативна: внимательно изучив информацию, которую она предоставляет, вы много узнаете о своем Web-сервере. К тому же эту информацию можно использовать при Web-программировании.

Теперь немного настроим РНР. С помощью функции phpinfo() узнайте, где расположен инициализационный файл РНР. Обычно он называется php.ini и находится в каталоге /etc. Откройте этот файл в любом текстовом редакторе и раскомментируйте следующую строку, убедившись, что в вашей системе есть файл mysql.so (он устанавливается при установке MySQL):

extension=mysql.so

После этого перейдите в секцию MySQL файла php.ini и установите параметры сервера MySQL по умолчанию:

mysql.default_port =

mysql.default_socket =

mysql.default_host = localhost

mysql.default_user =

mysql.default_password =

Эти параметры будут использоваться при установлении соединения с сервером, если в функциях РНР они не будут явно указаны. Никогда не указывайте пользователя root (а тем более его пароль) в качестве пользователя по умолчанию!

Теперь можно приступить к установке и настройке сервера MySQL. В состав современных дистрибутивов, например, Red Hat 7.2, входит сервер MySQL версии 3.23. Вы можете использовать эту версию, но я рекомендую установить более старую версию — 3.20. Если вы установили версию 3.23, установите также пакет mod_auth_mysql. Данный пакет обеспечивает базовую аутентификацию для сервера Apache с использованием таблиц MySQL. Напомню, что сам сервер MySQL устанавливается командой:

rpm –Uh mysql*

Запустите сервер. Можно также добавить вызов сервера MySQL в сценарии автозагрузки. При добавлении сервера MySQL в сценарии загрузки (/etc/re.d/) обратите внимание на то, что сервер MySQL должен быть запущен ПЕРЕД сервером Apache. Представьте такую ситуацию: сначала запускается сервер Apache и сразу же получает запрос от клиента к базе данных MySQL, а сервер баз данных еще не запущен. Даже если запускать сервер MySQL сразу после Apache, то все равно ему понадобится еще некоторое дополнительное время для инициализации. Не забудьте установить пароль для пользователя root сервера MySQL:

mysql –u root –e "update user set password=password('new_password') user='root'" mysql

Перезагрузите сервер:

mysqladmin reload

Теперь можно проверить работу всей связки Apache + PHP + MySQL. С этой целью создайте небольшой тестовый файл mysql_test.php в каталоге /var/www/html.

<?

 // Используется имя пользователя root и пароль passwd

 if (!mysql_connect("localhost", "root", "password") )

 {

  echo "He могу соединиться с серверомn";

  echo mysql_error() ;

  exit;

 }

 echo "Работает!"

?>

Как вы уже успели догадаться, если в окне браузера вы увидите слово «Работает!», значит, вы все сделали правильно.

16.3.2. Второй способ: из исходных текстов

Как я уже говорил, это более сложный способ, но у него есть свои преимущества. Во-первых, у вас появится возможность использовать самые последние версии серверов 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. Сделайте это при помощи следующей команды:

# echo "1" > /proc/net/ip_forward

Настройку сетевых карт произведите с помощью программы netconf. О том, как это сделать, было рассказано в гл. 8.

17.1.3. Конфигурирование IpChains

Теперь приступим к настройке IPChains. Создайте цепочку, через которую пойдет весь трафик от провайдера:

ipchains –N prov

ipchains –A input –i eth0 –j prov

Запретите ip-spoofing:

ipchains –A prov –s 192.168.1.1/16 –1 –j DENY

ipchains –A prov –s 127.0.0.1/8 –1 –j

DENY Запретите Telnet снаружи:

ipchains –A prov –p tcp –destination-port 23 –j REJECT

Если вы не хотите, чтобы samba «светилась» наружу, запретите порты 137-139:

ipchains –A prov –p tcp –destination-port 137 –j REJECT

ipchains –A prov –p udp –destination-port 137 –j REJECT

To же самое проделайте для портов 138 и 129.

О настройке samba вы можете прочитать в Samba-HOWTO.

Создайте цепочку для подсчета трафика:

ipchains –N trafin

ipchains –I input –i eth0 –s ! 123.123.123.0/24 –p all –j trafin

ipchains –A trafin –d 123.123.123.123

Для того, чтобы ваши правила были постоянными (при перезагрузке машины правила IpChains теряются), используйте скрипты ipchains-save и ipchains-restore. Настройте свои правила, а затем выполните команду:

# ipchains-save > /etc/ipchains.rules

Далее создайте скрипт, подобный тому, что приведен в листинге 17.1.

Перейти на страницу:

Денис Колисниченко читать все книги автора по порядку

Денис Колисниченко - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Linux-сервер своими руками отзывы

Отзывы читателей о книге Linux-сервер своими руками, автор: Денис Колисниченко. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*