Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 101 102 103 104 105 106 107 108 109 ... 158

Для самих же операций с данными используется программа mysql. Она понимает те же ключи, что и mysqlshow, и много других, среди которых очень полезный ключ -s. Я рекомендую вам всегда его использовать. Этот ключ подавляет большинство ненужных сообщений, выводимых MySQL-клиентом, что существенно повышает производительность на медленных линиях связи.

17.3. Установка PHP и настройка связки Apache+PHP+MySQL

Сейчас мы произведем не только установку PHP, которая не вызывает особых проблем, но и настройку связки Apache+PHP+ MySQL. Эту связку, очень полезную при создании веб-проектов, можно настроить двумя способами. Первый — использование программ, которые входят в состав дистрибутива и, как правило, устанавливаются из пакетов RPM.

Второй способ заключается в загрузке последних версий Apache, MySQL и PHP и в самостоятельной их сборке из исходных текстов. Первый способ я могу порекомендовать начинающим пользователям, так как он проще. Если же вы чувствуете уверенность в своих силах, приступайте сразу к чтению второго способа.

17.3.1. Первый способ: из пакетов RPM

Первую часть связки в дистрибутивах Red Hat выше 7.2 и Mandrake выше 8.1 настраивать не нужно: все настраивается во время установки системы. Поэтому вы можете сразу приступить к тестированию связки Apache+PHP (листинг 17.1).

Убедитесь, что сервер Apache установлен и корректно функционирует:

$ lynx http://localhost

Текстовый браузер lynx должен отобразить стартовую страницу Apache. После успешной проверки работы сервера остановите его командой:

# /etc/init.d/httpd stop

Проверьте наличие библиотеки gd — она необходима для работы с графикой в PHP:

$ rpm -qa | grep gd

$ rpm -ihv gd-1.8.4-4.i386.rpm

Загрузить последнюю версию PHP 5 можно по адресу http://www.php.net/downloads.php.

Скачайте (www.php.net/downloads-php) и установите пакет php, если вы его еще не установили. Вам также понадобится пакет php-mysql, обеспечивающий поддержку сервера MySQL языком PHP, и модуль Apache, обеспечивающий поддержку PHP (пакет mod_php).

Затем в файле httpd.conf раскомментируйте следующую строчку. После этого файлы с расширением .php будут правильно обрабатываться сервером:

AddType application/x-httpd-php4 .php

Теперь можно проверять правильность настройки двух компонент связки: Apache и PHP.

Напомню, что в большинстве современных серверных дистрибутивов сервер Apache уже установлен вместе с модулем mod_php, поэтому выполнять вышеизложенные шаги совсем необязательно, достаточно только проверить корректность работы модуля mod_php.

Для проверки работы модуля mod_php создайте тестовый файл test.php с таким содержимым:

Листинг 17.1. Файл test.php

<?

 phpinfo();

?>

Этот файл сохраните в каталоге DocumentRoot сервера Apache. Обычно это каталог /var/www/html. Затем запустите любой браузер и введите адрес http://localhost/test.php. Вы должны увидеть в окне браузера сведения о PHP, сервере Apache и других компонентах и библиотеках (рис. 17.1).

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

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

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

extension=mysql.so

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

mysql.default_port =

mysql.default_socket =

mysql.default_host = localhost

mysql.default_user =

mysql.default_password =

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

Теперь можно приступить к настройке сервера MySQL. Имеет смысл использовать версию MySQL не ниже 3.23, поскольку в этой версии появилась нормальная поддержка транзакций. Если вы устанавливаете MySQL версии 3.23 или выше, то установите еще пакет mod_auth_mysql, обеспечивающий базовую аутентификацию для сервера Apache с использованием таблиц MySQL.

При добавлении сервера MySQL в сценарии загрузки (/etc/rc.d/) обратите внимание на то, что сервер MySQL должен быть запущен ПЕРЕД сервером Apache.

17.3.2. Тестируем созданную конфигурацию

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

Листинг 17.2. Файл mysql_test.php

<?

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

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

 {

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

  echo mysql_error();

  exit;

 }

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

?>

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

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

У этого способа есть свои преимущества. Во-первых, у вас появится возможность использовать самые последние версии серверов Apache, MySQL и интерпретатора PHP, которых нет в составе даже самого нового дистрибутива Linux. Во-вторых, вы сами сможете контролировать процесс сборки и включать поддержку необходимых вам функций, исключив такую ситуацию, когда, например, разработчики пакетов RPM при сборке интерпретатора PHP забыли включить поддержку сервера MySQL, Мне попадался такой пакет php: функции mysql_connect() в нем просто не было.

Скачайте из Интернета последние версии Apache, MySQL и PHP. Предварительно удалите из системы старые версии, если они были установлены. После загрузки распакуйте исходные тексты в каталог /src.

Сначала установите сервер MySQL. С этой целью перейдите в каталог с исходными текстами MySQL и введите следующие команды (первая команда включает поддержку по умолчанию кодировки koi8-r):

# ./configure --with-charset=koi8_ru

# make

# make install

Затем аналогично установите Apache. Для получения информации обо всех возможных ключах сценария configure введите команду configure --help.

После этого распакуйте PHP и соберите его следующим образом:

# ./configure --with-mysgl --with-apache=../apache_2.0.0 --with-mod_charset

# make

# make install

Первая команда конфигурирует интерпретатор PHP для работы с сервером баз данных MySQL и веб-сервером Apache, Естественно, вы должны правильно указать путь к исходным текстам Apache с помощью ключа --with-apache.

Затем вернитесь в каталог, содержащий исходные тексты Apache, и введите команду:

# ./configure --activate-module=src/modules/php4/libphp4.a

Перед этим нужно убедиться в существовании файла libphp4.a (если php собрался успешно, этот файл должен существовать). Если сценарий configure успешно завершил свою работу, введите команды make и make install.

Проверить, подключился ли модуль libphp, вы можете после установки сервера с помощью команды:

# httpd -l

В списке модулей должен быть модуль libphp4.c, а также модуль mod_charset.c — его вы подключили при первой сборке. После этого можно отредактировать файл /etc/php.ini и установить пароль для пользователя root сервера MySQL (не путайте пользователя root всей системы с пользователем root сервера MySQL!).

Теперь только остается добавить запуск серверов в сценарии автозагрузки системы. Напомню, что сервер MySQL должен запускаться до сервера Apache.

17.4. Защита сервера MySQL

По умолчанию для файла сокета mysql.sock, который используется соединениями сервера MySQL, установлены права доступа 0777. Это означает, что кто угодно может удалить этот файл. Если данный файл будет удален во время работы сервера, то ни один пользователь не сможет подключиться к серверу MySQL. Установите «бит прилипчивости» (sticky-бит) для каталога /var/lib/mysql, чтобы предотвратить удаление файлов из этого каталога:

# chmod +t /var/lib/mysql

Из соображений безопасности рекомендуется удалить базу данных test, которая создается при установке сервера и используется для его проверки:

# mysqladmin drop test -p

Не забудьте также удалить запись, соответствующую базе данных test, из таблицы db базы данных mysql:

# mysql -u root mysql -p

mysql> DELETE * FROM Db WHERE Db="test";

mysql> DELETE * FROM Db WHERE Db="test_%";

1 ... 101 102 103 104 105 106 107 108 109 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий