Удобной программой для просмотра структуры базы данных является mysqlshow. Введите следующую команду:
$ mysqlshow -p mysql
В ответ вы увидите список таблиц, которые находятся в базе данных mysql.
Программа mysqlshow может вызываться с дополнительными ключами, перечисленными в таблице 17.2.
Ключи программы mysqlshow Таблица 17.2
Ключ Назначение --host=имя_узла Задает имя узла, где работает сервер MySQL, к которому вы хотите подключиться --port=номер_порта Определяет номер порта для сервера MySQL --socket=сокет Указывает сокет --user=имя_пользователя Указывает, под каким именем зарегистрироваться на сервере MySQL -p Запрашивает ввод пароля
Для самих же операций с данными используется программа 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