Инструментарий веб-разработчика: Apache, PHP - 1

advertisement
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Уфимский государственный авиационный технический
университет
Кафедра автоматизированных систем управления
ИНСТРУМЕНТАРИЙ ВЕБ-РАЗРАБОТЧИКА:
APACHE, PHP, MYSQL, PHPMYADMIN
Лабораторный практикум по дисциплине
"Сети ЭВМ и телекоммуникации"
Часть III
Уфа 2008
Составители: Н.М.Дубинин, Р.Н. Агапов, Г.В. Старцев
УДК 681.3.06 (07)
ББК 32.973-018.2 (Я7)
Инструментарий веб-разработчика: Apache, PHP, MySQL,
phpMyAdmin: Лабораторный практикум по дисциплине «Сети
ЭВМ и телекоммуникации» (часть III)/ Уфимск. гос. авиац. техн. унт; Сост.: Н.М.Дубинин, Р.Н. Агапов, Г.В. Старцев - Уфа, 2008. – 45с.
Лабораторный практикум содержит материалы для закрепления
теоретических и практических знаний по конфигурированию вебсервера Apache с настройкой необходимых инструментов
разработчика (PHP, MySQL, phpMyAdmin). Может использоваться в
качестве вспомогательного материала при выполнении расчетнографической работы.
Предназначен для подготовки студентов специальности 230102
«Автоматизированные
системы
обработки
информации
и
управления»
Табл.: 1. Рис. 22 Библиогр.: 9 назв.
Рецензенты: д.ф.-м..н., профессор Житников В.П.
к.ф.-м.н., доцент Гараев Р.А.
©Уфимский государственный
авиационный технический университет, 2008
2
Содержание
Рекомендации по выполнению лабораторных работ ............................. 4
Лабораторная работа №4
Инструментарий веб-разработчика: Apache, PHP
ЦЕЛЬ РАБОТЫ .......................................................................................... 5
ВВЕДЕНИЕ ................................................................................................. 5
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ .......................................... 6
1. Что такое PHP ......................................................................................... 6
2. Web-сервер Apache. ............................................................................... 8
3. Установка PHP 5.2.5 ............................................................................... 9
4. Установка Apache HTTP Server 2.2.6 ................................................. 12
5. Проверка работоспособности Apache и PHP. ................................... 18
СОДЕРЖАНИЕ РАБОТЫ ....................................................................... 20
6. Исходные данные к заданию .............................................................. 20
7. Перечень исследуемых задач анализатора протоколов (в рамках
работы): ..................................................................................................... 20
8. Содержание отчета ............................................................................... 20
Лабораторная работа №5
Инструментарий веб-разработчика: MySQL, phpMyAdmin
ЦЕЛЬ РАБОТЫ ........................................................................................ 21
ВВЕДЕНИЕ ............................................................................................... 21
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ........................................ 22
1. Что такое MySQL ................................................................................. 22
2. Основные возможности MySQL ......................................................... 22
3. Установка MySQL 5.0.27 ..................................................................... 25
4. Что такое phpMyAdmin ....................................................................... 35
5. Установка phpMyAdmin 2.11.2.1 ........................................................ 36
6. Проверка работоспособности Web-сервера. ..................................... 39
СОДЕРЖАНИЕ РАБОТЫ ....................................................................... 41
7. Исходные данные к заданию .............................................................. 41
8. Перечень исследуемых задач анализатора протоколов (в рамках
работы): ..................................................................................................... 41
9. Содержание отчета ............................................................................... 41
СПИСОК ЛИТЕРАТУРЫ ....................................................................... 42
3
Рекомендации по выполнению лабораторных работ
Лабораторные работы выполняются группой студентов (2-3
человека).
Лабораторные работы № 4, 5 выполняются на веб-сервере
Apache через его предварительное конфигурирование и подключение
модулей.
Отчеты по лабораторным работам выполняются в виде файла
MS Word, который содержит, требуемые по заданию, экранные
формы.
4
Лабораторная работа №4
Инструментарий веб-разработчика: Apache, PHP
ЦЕЛЬ РАБОТЫ
Получение навыков установки и конфигурирования веб-сервера
Apache с подключением библиотеки языка PHP.
ВВЕДЕНИЕ
Всем известно, что для создания простого сайта, достаточно
текстового редактора и некоторых знаний HTML, но как быть, если
для проекта задуман динамичный, постоянно обновляемый сайт с
необходимостью удобного управления всем его содержимым?
Очевидно, одного HTML здесь недостаточно. Для создания такого
сайта необходимо изучение дополнительных технологий и языков
программирования. Но какие именно языки и технологии могут быть
полезны при разработке подобных сайтов? Для начала, HTML – язык
разметки, который пока никто не отменял, поэтому его знание
должно быть хорошим. Крайне желательно знание JavaScript, CSS,
DHTML и XML. Языком разработки скриптов можно выбрать PHP,
основным достоинством которого является простота в изучении.
5
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1. Что такое PHP
PHP (рекурсивный акроним словосочетания "PHP: Hypertext
Preprocessor") - это широко используемый язык программирования
общего назначения с открытым исходным кодом. PHP
сконструирован специально для ведения Web-разработок и может
внедряться в HTML-код. Пример отражен на рисунке 1.
<html>
<head>
<title>Пример</title>
</head>
<body>
<?php
echo "Привет, я - скрипт PHP!";
?>
</body>
</html>
Рис. 1. Пример программирования на PHP
Обратите внимание на отличие этого скрипта от скриптов,
написанных на других языках, например, на Perl или C - вместо того,
чтобы создавать программу, которая занимается формированием
HTML-кода и содержит бесчисленное множество предназначенных
для этого команд, вы создаете HTML-код с несколькими
внедренными
командами
PHP
(в
приведенном
случае,
предназначенными для вывода текста). Код PHP отделяется
специальными начальным и конечным тегами, которые позволяют
процессору PHP определять начало и конец участка HTML-кода,
содержащего PHP-скрипт.
Значительным отличием PHP от какого-либо кода,
выполняющегося на стороне клиента, например, JavaScript, является
то, что PHP-скрипты выполняются на сервере. Если бы у вас на
сервере был размещен скрипт, подобный вышеприведенному, клиент
получил бы только результат выполнения скрипта, причем он не смог
бы выяснить, какой именно код выполняется. Вы даже можете
6
сконфигурировать свой сервер таким образом, чтобы HTML-файлы
обрабатывались процессором PHP, так что клиенты даже не смогут
узнать, получают ли они обычный HTML-файл или результат
выполнения скрипта.
PHP крайне прост для освоения, но вместе с тем способен
удовлетворить запросы профессиональных программистов.
Хотя PHP, главным образом, предназначен для работы в среде
web-серверов, область его применения не ограничивается только
этим.
Главным образом, область применения PHP сфокусирована на
написание скриптов, работающих на стороне сервера; таким образом,
PHP способен выполнять всё то, что выполняет любая другая
программа CGI, например, обрабатывать данных форм, генерировать
динамические страницы или отсылать и принимать cookies. Но PHP
способен выполнять и множество других задач.
Существуют три основных области, где используется PHP:
Создание скриптов для выполнения на стороне сервера. PHP
наиболее широко используется именно таким образом. Все, что вам
понадобится, это парсер PHP (в виде программы CGI или серверного
модуля), веб-сервер и броузер. Чтобы вы могли просматривать
результаты выполнения PHP-скриптов в броузере, вам нужен
работающий веб-сервер и установленный PHP. В случае, если вы
просто экспериментируете, вы вполне можете использовать свой
домашний компьютер вместо сервера.
Создание скриптов для выполнения в командной строке. Вы
можете создать PHP-скрипт, способный запускаться вне зависимости
от вебсервера и броузера. Все, что вам потребуется - парсер PHP.
Такой способ использования PHP идеально подходит для скриптов,
которые должны выполняться регулярно, например, с помощью cron
(на платформах *nix или Linux) или с помощью планировщика задач
(Task Scheduler) на платформах Windows. Эти скрипты также могут
быть использованы в задачах простой обработки текстов
Создание оконных приложений, выполняющихся на стороне
клиента. Возможно, PHP является не самым лучшим языком для
создания подобных приложений, но, если вы очень хорошо знаете
PHP и хотели бы использовать некоторые его возможности в своих
клиент-приложениях, вы можете использовать PHP-GTK для
создания таких приложений. Подобным образом вы можете создавать
и кросс-платформенные приложения.
7
Одним из значительных преимуществ PHP является поддержка
широкого круга баз данных. В качестве платформы Web-сервера
часто выбирается Apache, о достоинствах которого будет рассказано
далее.
2. Web-сервер Apache.
Самый распространенный Web-сервер в мире - это Apache. По
данным компании Netcraft (http://www.netcraft.com/ Survey/) общее
число Web-узлов, работающих под его управлением, к началу 2008 г.
превысило 50% (таблица 1) общего числа узлов и постоянно растет.
Для сравнения: на долю серверов Microsoft приходится 35%. Это
является закономерным (рисунок 2.1), так как Apache предоставляет
платформу, на базе которой можно построить надежные
высокопроизводительные системы с поддержкой резервирования,
балансировки нагрузки и других возможностей современных
промышленных систем.
Доля и число различных платформ в общем числе веб-серверов.
Платформа Декабрь 2007
Январь 2008
Кол-во
Доля
Кол-во
Доля
Apache
76,945,640 49.57%
78,735,581 50.61%
Microsoft
55,509,223 35.76%
55,709,926 35.81%
Google
8,558,256 5.51%
8,290,471 5.33%
lighttpd
1,521,250 0.98%
1,536,981 0.99%
Sun
588,997
0.38%
557,673
0.36%
Apache является бесплатной открытой программой, по
функциональным возможностям и надежности не уступает
коммерческим серверам, а широкие возможности конфигурирования
позволяют настроить его для работы практически с любой
конкретной системой. Существуют локализации сервера для
различных языков, в том числе и для русского. По своей сути Webсервер Apache является конечным результатом совместного труда
группы программистов высокой квалификации. Официальный сайт
разработчиков Apache (www.apacke.org) считает, что «Сервер Apache
существует для того, чтобы обеспечить надежные решения на
коммерческом уровне с использованием протокола HTTP. Он
является платформой, на основании которой как частные лица, так
и организации могут создавать надежные системы и для
экспериментальных, и критических задач.»
8
Рис. 2. Динамика использования различных платформ с августа 1995 по январь
2008.
3. Установка PHP 5.2.5
Сайт разработчиков: http://www.php.net/
Дистрибутив
("PHP
5.2.5
zip
package"
архив):
http://www.php.net/downloads.php.
Документация на русском языке в формате .chm, она вам
понадобится при изучении и работе: http://www.php.net/downloaddocs.php. Распакуйте архив в желаемый каталог (изначально
предлагается "C:\php"). Откройте конфигурационный файл
содержащий рекомендуемые настройки - "php.ini-recommended"
(находящийся в корне дистрибутива), переименуйте его в "php.ini" и
произведите следующие изменения:
Редакция php.ini
1) Найдите и включите (измените Off на On) следующие директивы:
short_open_tag = On
display_errors = On
register_globals = On
register_long_arrays = On
2) Найдите строку:
post_max_size = 8M
Увеличьте до 16 Мбайт максимальный размер данных принимаемых
методом POST, изменив ее на:
9
post_max_size = 16M
3) Найдите строку:
;include_path = ".;c:\php\includes"
Раскомментируйте ее, убрав перед строкой символ точки с запятой.
(Внимание исключение! Обратные косые черты при указании пути):
include_path = ".;c:\php\includes"
Создайте пустой каталог "C:\php\includes", для хранения
подключаемых классов.
4) Найдите строку:
extension_dir = "./"
Установите значением данной директивы путь к папке с
расширениями:
extension_dir = "C:/php/ext"
5) Найдите строку:
;upload_tmp_dir =
Раскомментируйте ее и укажите в значении следующий путь:
upload_tmp_dir = "C:/php/upload"
Создайте пустую папку "C:\php\upload", для хранения временных
файлов загружаемых через HTTP.
6) Найдите строку:
upload_max_filesize = 2M
Увеличьте максимально допустимый размер загружаемых файлов до
16 Мбайт:
upload_max_filesize = 16M
7) Подключите, расскомментировав, данные библиотеки расширений:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
8) Найдите строку:
;session.save_path = "/tmp"
Раскомментируйте и установите значением данной директивы такой
путь:
session.save_path = "C:/php/tmp"
Создайте пустую папку "C:\php\tmp" для хранения временных файлов
сессий.
Сохраните изменения и закройте файл php.ini.
10
Далее необходимо добавить каталог с установленным PHP
интерпретатором в PATH операционной системы. Для чего пройдите
по пути "Start" ("Пуск") -> "Control Panel" ("Панель управления") ->
"System"
("Система"),
откройте
вкладку
"Advanced"
("Дополнительно"), нажмите кнопку "Environment Variables"
("Переменные среды"), в разделе "System Variables" ("Системные
переменные") сделайте двойной щелчок на строке "Path", добавьте в
поле "Variable Value" ("Значение переменной"), к тому что там уже
существует, путь к каталогу с установленным PHP, например,
"C:\php" (без кавычек).
Обратите внимание на то что символ точки с запятой разделяет
пути. И еще один важный момент – обязательно установите в
переменных среды путь к PHP перед уже имеющимся там путем к
каталогу "bin" установочной директории MySQL. Чтобы внесенные
изменения вступили в силу, перезагрузите операционную систему.
Пример
строки
Path:
%SystemRoot%\system32;
%SystemRoot%; %SystemRoot%\System32\Wbem; C:\php;
C:\Program Files\MySQL\MySQL Server 5.0\bin
Установка и настройка PHP интерпретатора – завершена.
Описание подключаемых библиотек:
php_curl.dll – Очень важная и нужная библиотека,
позволяющая соединяться и работать с серверами, с помощью
огромного количества интернет-протоколов.
php_gd2.dll –Библиотека, позволяющая работать с графикой
с помощью которой, можно почти все, в том числе и рисовать.
php_mbstring.dll – Библиотека содержит функции для
работы с много-байтными кодировками, к которым относятся
кодировки восточных языков (японский, китайский, корейский),
Юникод (UTF-8) и другие.
php_mcrypt.dll – Библиотека позволяющая работать с
большим количеством алгоритмов шифрования, среди которых DES,
TripleDES, Blowfish и другие.
php_mysql.dll – Имя библиотеки говорит само за себя - она
необходима для работы с сервером MySQL.
php_mysqli.dll – Данная библиотека является расширением
предыдущей и содержит дополнительные функции PHP для работы с
сервером MySQL версии 4.1.3 и выше.
11
Вышеназванных библиотек должно хватить для полноценной
работы PHP. Со временем, если появится такая необходимость, вы
сможете подключить дополнительные библиотеки, но не стоит
подключать их все сразу. Излишнее количество подключенных
библиотек может заметно замедлить работу PHP.
4. Установка Apache HTTP Server 2.2.6
Перед установкой Apache важно убедится, что порт 80 (HTTP)
не занят другим Web-сервером, например IIS (Internet Information
Services). Для этого проверьте отражение страницы по адресу
http://127.0.0.1. Браузер должен сообщить о невозможности
отображения страницы. Дополнительно проверьте, запущена ли
соответствующая
служба
через
Панель
управления
\
Администрирование \ Internet Information Services, при выборе в
древовидной структуре раздела «Веб-узлы» справа все строки
должны иметь состояние «Останов» (Stopped) либо отсутствовать,
см. рисунок 2.
Только после указанных подготовительных шагов можно
перейти к установке Apache, либо потребуется в окне установки
выбрать свободный порт, отличный от 80, например 8080.
Рис. 3. Проверка наличия установленного web-сервера.
Сайт разработчиков: http://www.apache.org/ Прямая ссылка на
дистрибутив:
http://www.apache.org/dist/httpd/binaries/win32/apache_2.2.6-win32-x86no_ssl.msi
12
Установка в картинках
Рис. 4. Заполнение информации о веб-сервере.
Заполните форму, как показано на рисунке 4.
Рис. 5. Выбор типа установки.
При выборе "Typical" установится все необходимое для полноценной
работы сервера- рисунок 5.
13
Рис. 6. Выбор пути установки
В данном окне вы можете выбрать каталог для установки
сервера (рис. 6).
Если все прошло успешно, в панели задач, рядом с часами,
должен появиться значок пера с синей стрелочкой, обозначающий
запущенный сервис Apache. Сперва щелкаем на значке пера в панели
задач правой кнопкой мышки и выбираем "Open Services". В
открывшемся
окне
управления
служб
выбираем
строку
"Apache2.2" и делаем на ней двойной щелчок, после чего во
вкладке "General" ("Общие") выбираем ручной запуск сервиса "Startup type: Manual" ("Тип запуска: вручную"). Это
необходимо сделать для того, чтобы лишние службы не загружали
систему. Учитывая, что домашний компьютер используется не только
для веб-разработок, но и для многих других нужд, ручной запуск и
остановка, непостоянно используемых сервисов, является наиболее
приемлемым.
В корне диска необходимо создать каталог "apache" - в нем
будут лежать ваши виртуальные хосты (домены), глобальный файл
14
журнала ошибок "error.log" (создается программой при первом
запуске, автоматически), глобальный файл доступа "access.log"
(создается автоматически). В каталоге "apache" создаем еще одну
пустую папку - "localhost", в которой, в свою очередь, создаем папку
"www", именно в последней и надо будет держать наше добро в виде
локальных скриптов. Такая, казалось бы странная структура
каталогов, продиктована схожей схемой построения каталогов в
системах Unix, и призвана упростить в дальнейшем ее понимание и
использование.
Далее, в директории, куда был установлен Apache, необходимо
найти и открыть в текстовом редакторе файл "conf\httpd.conf",
являющийся основным конфигурационным файлом сервера Apache.
Правка файла "httpd.conf"
1) Для загрузки модуля mod_rewrite найдите и раскомментируйте
(уберите в начале строки символ решетки "#") данную строку:
LoadModule rewrite_module modules/mod_rewrite.so
2) Для загрузки PHP интерпретатора, в конец блока загрузки модулей
необходимо добавить строку:
LoadModule php5_module "C:/php/php5apache2_2.dll"
3) Определите каталог содержащий конфигурационный файл PHP,
добавив ниже следующую строку:
PHPIniDir "C:/php"
4) Найдите строку:
DocumentRoot "C:/Program Files/Apache Software
Foundation/Apache2.2/htdocs"
Назначьте корневую директорию управления сайтами (немного
раньше вы ее уже создали):
DocumentRoot "C:/apache"
5) Найдите данный блок:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
Замените его на нижеследующий:
15
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory>
6) Удалите или закомментируйте первоначальный блок управления
директориями (он нам не понадобится), который без комментариев
выглядит примерно так:
<Directory "C:/Program Files/Apache Software
Foundation/Apache2.2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
7) Найдите блок:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Замените его на:
<IfModule dir_module>
DirectoryIndex index.html index.htm
index.shtml index.php
</IfModule>
8) Найдите строку:
ErrorLog logs/error.log
Замените на нижеследующую (в этом случае просматривать
глобальный файл ошибок сервера будет удобнее):
ErrorLog C:/apache/error.log
9) Найдите строку:
CustomLog logs/access.log common
Замените на:
CustomLog C:/apache/access.log common
10) Для работы SSI (включения на стороне сервера) следующие
строки, находящийся в блоке <IfModule mime_module>, необходимо
найти и раскомментировать:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
16
11) Добавьте ниже, в тот же блок <IfModule mime_module>, две
строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
12) И, наконец, найдите и раскомментируйте строки:
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-default.conf
Сохраните изменения и закройте файл "httpd.conf". Теперь
откройте файл "httpd-vhosts.conf", находящийся в каталоге
"conf\extra", и произведите в нем следующие изменения:
Существующие
блоки
примеров
виртуальных
хостов
необходимо закомментировать, либо удалить, и вставить
нижеследующее:
<VirtualHost *:80>
DocumentRoot C:/apache/localhost/www
ServerName localhost
ErrorLog C:/apache/localhost/error.log
CustomLog C:/apache/localhost/access.log
common
</VirtualHost>
Пример создания виртуального хоста. При необходимости
установки собственных виртуальных хостов сделайте следующее:
Откройте файл "httpd-vhosts.conf", и создайте в нем блок,
примерно, следующего содержания:
<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot C:/apache/test.ru/www
# Домен по которому вы сможете обращаться к виртуальному
хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog C:/apache/test.ru/error.log
# Файл журнала доступа к хосту.
CustomLog C:/apache/test.ru/access.log common
17
</VirtualHost>
Затем в каталоге "apache", создайте папку "test.ru" (прямо
так, с точкой), в которой, в свою очередь, создайте папку "www".
5. Проверка работоспособности Apache и PHP.
В папке apache/ localhost/ www создаем файл
index.php следующего содержания.
<h4> проверка работы Apache и PHP <h4>
<?php
echo ‘Работает !’;
phpinfo ();
?>
Далее
в
строке
браузера
набрать
адрес
«http://127.0.0.1/index.php».
В
случае
корректной
настройки на экран будет выведена информация, как на рисунке 7.
18
Рис. 7. Демонстрация работы примера проверки.
19
СОДЕРЖАНИЕ РАБОТЫ
6. Исходные данные к заданию
Пакет программных средств: Apache, PHP.
7. Перечень исследуемых задач анализатора протоколов (в
рамках работы):
 настроить поддержку языка PHP;
 настроить работу web-сервера Apache;
 проверить корректность работы PHP через Apache.
8. Содержание отчета
 порядок настройки поддержки языка PHP;
 порядок настройки web-сервера Apache;
 выполнение тестового примера проверки работоспособности;
 выводы.
20
Лабораторная работа №5
Инструментарий веб-разработчика: MySQL, phpMyAdmin
ЦЕЛЬ РАБОТЫ
Подключение к веб-серверу Apache СУБД MySQL и средства
администрирования БД MySQL - phpMyAdmin.
ВВЕДЕНИЕ
Если в Вашем распоряжении есть работоспособный Web-сервер
с поддержкой языка серверных сценариев PHP - лабораторная работа
№4 «Инструментарий веб-разработчика: Apache, PHP», мы
продолжим настраивать Web-сервер, подключив к нему СУБД MySQL
и графическое средство по работе с данной СУБД phpMyAdmin.
Результатом правильного выполнения работы будет корректная
работа phpMyAdmin, который использует все ранее установленные
компоненты Web-сервера (Apache, PHP, MySQL).
Поясним СУБД MySQL и средство управления данной СУБД
PhpMyAdmin.
21
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1. Что такое MySQL
MySQL – компактный многопоточный сервер баз данных.
MySQL характеризуется большой скоростью, устойчивостью и
легкостью в использовании.
MySQL был разработан компанией TcX (Михаэль ВидениусMichael Widenius, monty@analytikerna.se) для внутренних нужд,
которые заключались в быстрой обработке очень больших баз
данных. Компания утверждает, что использует MySQL с 1996 года на
сервере с более чем 40 БД, которые содержат 10,000 таблиц, из
которых более чем 500 имеют более 7 миллионов строк.
MySQL-сервер является бесплатным для некоммерческого
использования. Иначе необходимо приобретение лицензии. MySQL
является относительно небольшой и быстрой реляционной СУБД
основанной на традициях Hughes Technologies Mini SQL (mSQL).
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и
кроме этого имеет множество расширений к этому стандарту.
2. Основные возможности MySQL
Внутренние характеристики и переносимость:
- написан на C и C++. Протестирован на множестве различных
компиляторов.
- работает на различных платформах.
- для обеспечения переносимости используется GNU Automake,
Autoconf и Libtool.
- API для C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl.
- полностью многопоточный с использованием потоков ядра.
Это означает, что, если такая возможность обеспечивается, можно
легко организовать работу с несколькими процессорами.
- быстрые дисковые таблицы на основе В-деревьев со сжатием
индексов.
- быстрая базирующаяся на потоках система распределения
памяти.
- быстрые соединения, использующие оптимизированный метод
однопроходного мультисоединения (one-sweep multi-join).
- хеш-таблицы в памяти, используемые как временные таблицы.
- SQL-функции реализованы при помощи хорошо
оптимизированной библиотеки классов, поэтому они выполняются
22
настолько быстро, насколько это возможно. Обычно после
инициализации запроса распределения памяти не происходит вообще.
- MySQL- код протестирован с использованием Purify
(коммерческий детектор утечки памяти), а также Valgrind, одного из
GPL-инструментов (http://developer.kde.org/~sewardj/
Типы столбцов:
- большое количество: целочисленные со знаком/беззнаковые,
длиной в 1, 2, 3, 4 и 8 байтов, FLOAT, DOUBLE, CHAR, VARCHAR,
TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET и
ENUM. See Раздел 6.2, «Типы данных столбцов».
- с записями фиксированной и переменной длины.
- все столбцы имеют значения по умолчанию. С помощью
INSERT можно вставить подмножество столбцов таблицы; столбцы,
для которых явно не заданы значения, устанавливаются в значения по
умолчанию.
Команды и функции
- полная поддержка операторов и функций в SELECT- и
WHERE- частях запросов. Например:
mysql> SELECT CONCAT(first_name, " ",
last_name)
-> FROM tbl_name
-> WHERE income/dependents > 10000 AND age
> 30;
- полная поддержка для операторов SQL GROUP BY и ORDER
BY с выражениями SQL. Поддержка групповых функций (COUNT(),
COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() и MIN()).
- поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN с
синтаксисом ANSI SQL и ODBC.
- разрешены псевдонимы для таблиц и столбцов в соответствии
со стандартом SQL92.
- DELETE, INSERT, REPLACE, and UPDATE возвращают число
строк, которые были изменены. Вместо этого можно задать
возвращение совпавших строк. Для этого следует установить флаг
при соединении с сервером.
- команду SHOW, которая является специфической для MySQL,
можно использовать для получения информации о базах данных,
23
таблицах и индексах. Чтобы выяснить, как оптимизатор выполняет
запрос, можно применять команду EXPLAIN.
- имена функций не конфликтуют с именами таблиц и столбцов.
Например, ABS является корректным именем столбца. Для вызова
функции существует только одно ограничение: между именем
функции и следующей за ним открывающей скобкой ‘(’ не должно
быть пробелов
- в одном и том же запросе могут указываться таблицы из
различных баз данных (с версии 3.22).
Безопасность
- система, основанная на привилегиях и паролях, за счет чего
обеспечивается гибкость и безопасность, и с возможностью
верификации с удаленного компьютера. Пароли защищены, т.к. они
при передаче по сети при соединении с сервером шифруются.
Масштабируемость и ограничения
- управляет очень большими базами данных. Компания MySQL
AB. использует MySQL для работы с несколькими базами данных,
которые содержат 50 миллионов записей, кроме того, нам известны
пользователи, использующие MySQL для работы с 60000 таблицами,
включающими около 5000000000 строк.
- для каждой таблицы разрешается иметь до 32 индексов.
Каждый индекс может содержать от 1 до 16 столбцов или частей
столбцов. Максимальная ширина индекса 500 бит (это значение
может быть изменено при компиляции MySQL). Для индекса может
использоваться префикс поля CHAR или VARCHAR.
Установка соединений
- клиенты могут соединяться с MySQL, используя сокеты
TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT).
- поддержка ODBC (Open-DataBase-Connectivity) для Win32 (с
исходным кодом). Все функции ODBC 2.5 и многие другие.
Например, для соединения с MySQL можно использовать MS Access.
Локализация
- сервер может обеспечивать сообщения об ошибках для
клиентов на различных языках.
24
полная поддержка нескольких различных кодировок, включая
ISO-8859-1 (Latin1), немецкий, big5, ujis и многие другие. Например,
скандинавские символы разрешены в именах таблиц и столбцов.
- для хранения всех данных используется выбранный набор
символов. Все сравнения для столбцов с нормальными строками
проводятся с учетом регистра символов.
- сортировка производится согласно выбранному алфавиту (по
умолчанию используется шведский). Эту установку можно изменить
при запуске сервера MySQL. Чтобы ознакомиться с примером очень
грамотной сортировки, можно обратиться к коду сортировки для
чешского языка. MySQL поддерживает много различных кодировок,
которые можно задавать во время компиляции и в процессе работы.
-
Клиенты и инструментарий
- включает myisamchk, очень быструю утилиту для проверки,
оптимизации и восстановления таблиц. Все функциональные
возможности myisamchk также доступны через SQL-интерфейс.
- все MySQL-программы можно запускать с опциями --help или ? для получения помощи.
3. Установка MySQL 5.0.27
В качестве примера демонстрации установки MySQL возьмем
последнюю стабильную версию на момент написания методических
указаний с сайта разработчиков: http://www.mysql.com/
Дистрибутив расположен по адресу
http://dev.mysql.com/downloads/mysql/5.0.html
Приведем процесс установки. Далее будут показаны те
диалоговые окна, в которых необходимо делать выбор.
25
Рис. 1. Выбор типа установки
Отметьте в данном окне выборочную установку компонентов
"Custom" (рис. 1).
Рис. 2. Дополнительные параметры установки.
26
Здесь вы можете выбрать дополнительные компоненты и
сменить каталог установки программы (рис. 2).
Рис. 3. Регистрация на www.mysql.com
Если у вас еще нет учетной записи на сайте MySQL.com, то
можете создать его в данном диалоговом окне выбрав "Create a new
free MySQL.com account" (не помешает). Либо выберите "Skip SignUp" для перехода на следующую страницу (рисунок 3).
Теперь приступим к настройке MySQL сервера (рис. 4).
Рис. 4.Начало установки MySQL сервера.
27
Рис. 5. Выбор типа настройки.
Выбираем детализированную настройку - "Detailed
Configuration" (рис. 5).
Рис. 6. Выбор типа сервера
Оставляем отмеченным пункт "Developer Machine" (рис. 6).
28
Рис. 7. Выбор типа БД
Выбрав пункт "Multifunctional Database", вы сможете работать
как с таблицами типа InnoDB (с возможностью использования
транзакций), так и с высокоскоростной MyISAM (как правило, для
веб-разработок используется именно этот тип таблиц)- рисунок 7.
Рис. 8. Размещение в файловой системе.
29
Выбор диска и каталога для хранения таблиц типа InnoDB (рис.
8).
Рис. 9. Определение максимального числа подключений.
В данном диалоговом окне выбирается максимально возможное
количество подключений к серверу MySQL. При выборе "Decision
Support (DSS)/OLAP", максимальное количество подключений будет
ограничено двадцатью, чего более чем достаточно при установке
сервера на домашнем компьютере и отсутствии большого количества
одновременных подключений (рисунок 9).
30
Рис. 10. Сетевые настройки.
Отметив "Enable TCP/IP Networking" мы включаем поддержку
TCP/IP соединений и выбираем порт, через который они будут
осуществляться. Стандартным для сервера MySQL является порт
3306. Отметив "Enable Strict Mode", мы задаем режим строгого
соответствия стандарту SQL (данный параметр рекомендуется
оставлять включенным) – рисунок 10.
Рис. 11. Выбор кодировки БД.
31
Обратите внимание на выставление настроек данного окна.
Отметив "Manual Selected Default Character Set / Collation" и выбрав
из ниспадающего списка "cp1251" определяем, что изначально для
таблиц будет использоваться кодировка Cyrillic Windows (cp1251),
что означает корректную работу с русским языком в данной
кодировке.
Рис. 12. Настройка в ОС.
Если отметить "Install As Windows Service", сервер будет
запускаться в виде сервиса, что является рекомендуемым способом
запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее,
уберите галочку рядом с "Launch the MySQL Server automatically", мы
будем запускать сервер вручную. Так же поставьте галочку рядом с
"Include Bin Directory in Windows PATH" - это позволит установить
видимость каталога "bin", для командной строки (рисунок 12).
Установите пароль главного пользователя - "root". Советуем
сделать это. Поставьте хотя бы какой-нибудь простенький пароль,
только не оставляйте поле пустым, это убережет вас от возможных
неприятностей в дальнейшем (рисунок 13).
32
Рис. 13. Настройка прав доступа к СУБД.
Рис. 14. Завершение установки.
33
В данном окне обратите внимание на строку "Write
configuration file", которая указывает на месторасположение
конфигурационного файла MySQL - "my.ini", который далее,
необходимо будет немного отредактировать (рисунок 14).
Откройте для редактирования файл "my.ini".
1) В раздел [client], после строки:
port=3306
Добавьте строку определяющую каталог содержащий файлы
описания кодировок:
character-sets-dir="C:/Program Files/MySQL/MySQL Server
5.0/share/charsets"
2) В раздел [mysqld], после строки:
port=3306
Добавьте следующие две строки, первая из которых вам уже
известна, вторая – устанавливает кодировку в которой данные
передаются MySQL:
character-sets-dir="C:/Program
Files/MySQL/MySQL Server 5.0/share/charsets"
init-connect="SET NAMES cp1251"
3) Далее, найдите строку:
default-storage-engine=INNODB
Замените изначально устанавливаемый тип таблиц:
default-storage-engine=MYISAM
Сохраните изменения и закройте файл "my.ini".
Установка и настройка сервера MySQL – завершена.
34
4. Что такое phpMyAdmin
В качестве интерфейса для MySQL используется phpMyAdmin PHP приложение, запущенное на Web-сервере. phpMyAdmin может
управлять как целым MySQL сервером (для этого необходимы права
супер-пользователя), так и отдельной базой данных. Возможно
мультипользовательское использование. В последнем случае
пользователи могут пользоваться только назначенным им базами
данных.
В данный момент phpMyAdmin позволяет:
- создавать и удалять базы данных;
- создавать, копировать, удалять, переименовывать и изменять
таблицы;
- осуществлять сопровождение таблиц;
- удалять, править и добавлять поля;
- выполнять SQL-запросы, в том числе пакетные SQL-запросы;
- управлять ключами;
- загружать текстовые файлы в таблицы;
- создавать (*) и просматривать дампы таблиц;
- экспортировать (*) данные в форматах CSV, XML, PDF, ISO/IEC
26300 - OpenDocument Text and Spreadsheet, Word, Excel и
LATEX;
- администрирование нескольких серверов;
- управлять пользователями MySQL и привилегиями;
- проверять целостность ссылочных данных в таблицах MyISAM;
- использовать запрос по образцу (Query-by-example - QBE),
создавать комплексные запросы, автоматически соединяясь с
указанными таблицами;
- создавать графическую схему базы данных в формате PDF;
- осуществлять поиск в базе данных или в её разделах;
- модифицировать хранимые данные в различные форматы,
использующиеся в предустановленных функциях, например,
отображение BLOB-данных как изображений или как
загружаемые ссылки и т.д.;
- поддерживает InnoDB таблицы и внешние ключи;
- поддерживает mysqli, улучшенное расширение MySQL;
- переведен более чем на 50 языков.
35
5. Установка phpMyAdmin 2.11.2.1
Сайт разработчиков: http://phpMyAdmin.net/
Дистрибутив (скачайте all-languages.zip архив):
http://phpMyAdmin.net/home_page/downloads.php
Документация на русском языке: http://php-myadmin.ru/
Вместо тестирования всего хозяйства, предлагаю установить
скрипт phpMyAdmin для управления базой данных MySQL.
Остановите сервис Apache с помощью ярлыка "Stop"
находящегося в меню "Start" ("Пуск"), либо с помощью пакетного
файла "stop-webserver.bat". Распакуйте архив в каталог
"C:\apache\localhost\www\". Появившуюся папку, для
большего удобства, желательно переименовать в "phpMyAdmin".
Далее, в каталоге "C:\apache\localhost\www\phpMyAdmin"
создайте файл "config.inc.php" следующего содержания (не
забудьте вписать пароль пользователя "root", который вы создавали
при установке MySQL):
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'пароль'; //
Пароль пользователя root
?>
Обратите внимание, что при подключении мы указываем
phpMyAdmin, использовать расширение "mysqli", так как
установленный нами MySQL 5, и произведенные выше настройки
PHP 5, позволяют полноценно работать с функциями данного
расширения.
Далее, откройте многострадальный "httpd.conf" и добавьте в
блок начинающийся строкой:
36
<IfModule alias_module>
Следующую строку:
Alias /pma
"C:/apache/localhost/www/phpMyAdmin"
Теперь запустите сервисы с помощью пакетного файла "startwebserver.bat" и введите в адресной строке браузера
"localhost/phpMyAdmin". Вы увидите основное окно скрипта
phpMyAdmin для управления базами данных MySQL. Благодаря
добавленной нами выше строке в конфигурационный файл Apache
(так называемый алиас), мы также можем попасть в phpMyAdmin из
любого хоста, для чего понадобится установить виртуальный хост и
ввести в адресной строке браузера адрес вида:
"имя хоста/pma". Например: "http://www.test.ru/pma".
Далее мы воспользуемся возможностью установить расширение
функциональности phpMyAdmin, позволяющее работать с закладками,
историями вводимых команд, дизайнером связанных таблиц и
некоторыми другими дополнительными функциями.
Для установки расширения сперва необходимо создать базу
данных "phpMyAdmin" и импортировать в нее специально
предназначенные таблицы, для чего выберите на главной странице
ссылку "Import" ("Импорт"), на открывшейся странице, в разделе
"File to import" ("Импортируемый файл") нажмите кнопку "Browse..."
("Обзор..."),
выберите
файл
"create_tables_mysql_4_1_2+.sql", находящийся в каталоге
"scripts", и нажмите кнопку "Go" ("OK").
Следующим шагом необходимо создать специального
пользователя с именем "pma" и наделить его соответствующими
правами, для чего нажмите "Privileges" ("Привилегии"), на
открывшейся странице нажмите ссылку "Add a new User" ("Добавить
нового пользователя"), в разделе "Login Information" ("Информация
учетной записи") заполните поля следующим образом:
User name (Имя пользователя): pma
Host (Хост): localhost
Password (Пароль): придумайте пароль
37
Нажмите кнопку "Go" ("OK").
На открывшейся странице, в разделе "Database-specific
privileges" ("Привилегии уровня базы данных") из ниспадающего
меню "Add privileges on the following database:" ("Добавить
привилегии на следующую базу") выберите "phpMyAdmin".
Откроется следующая страница, где в разделе "Databasespecific
privileges" ("Привилегии уровня базы данных"), в блоке "Data"
("Данные"), поставьте галочки рядом с опциями: SELECT, INSERT,
UPDATE, DELETE и нажмите "Go" ("OK").
И последнее что надо сделать – это вновь открыть
конфигурационный файл phpMyAdmin "config.inc.php" и
добавить
несколько
новых
директив.
Все
содержимое
конфигурационного файла должно будет выглядеть примерно так:
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'пароль'; //
Пароль пользователя root.
$cfg['Servers'][$i]['controluser'] = 'pma'; //
Имя созданного вами только что
пользователя для доступа к расширенным
таблицам.
$cfg['Servers'][$i]['controlpass'] = 'пароль';
// А здесь его пароль.
$cfg['Servers'][$i]['pmadb'] = 'phpMyAdmin';
$cfg['Servers'][$i]['bookmarktable'] =
'pma_bookmark';
$cfg['Servers'][$i]['relation'] =
'pma_relation';
$cfg['Servers'][$i]['table_info'] =
'pma_table_info';
38
$cfg['Servers'][$i]['table_coords'] =
'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] =
'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] =
'pma_column_info';
$cfg['Servers'][$i]['history'] =
'pma_history';
$cfg['Servers'][$i]['designer_coords'] =
'pma_designer_coords';
?>
Теперь у вас будет возможность воспользоваться всеми
дополнительными функциями скрипта phpMyAdmin.
Вот и все. Полная установка и настройка скрипта phpMyAdmin –
завершена, как и всего комплекса веб-разработчика в целом.
6. Проверка работоспособности Web-сервера.
Перейдите в браузере на адрес http://127.0.0.1/pma/ .
Вам будет предложено указать имя и пароль, которые Вы ввели на
этапе установки MySQL. После успешной авторизации Вы перейдете
в систему управления PhpMyAdmin. Пример окна приведен на рис. 15.
Рис. 15. Проверка работоспособности Web-сервера.
В случае если указанное окно не появилось или возникла
ошибка,
проверьте,
сначала
доступность
адреса
39
http://127.0.0.1/index.php . Если адрес доступен и Вы
видите тестовый пример, значит ошибки произошли на этапе
установки настройки MySQL или phpMyAdmin. Проверьте еще раз
параметры настройки. Дополнительно убедитесь, что запущены
соответствующие службы (или консольные файлы) в списке служб
(оснастка services.msc).
Просмотреть список служб можно через главное меню OC Win
Start/Control panel/ Administrative Tools/ Services или Пуск/ Панель
управления / Администрирование / Службы.
В списке служб необходимо проверить наличие и статус
(должен быть started) служб Apache, MySQL.
40
СОДЕРЖАНИЕ РАБОТЫ
7. Исходные данные к заданию
Apache с подключенным языком
Web-сервер
серверных
сценариев PHP.
8. Перечень исследуемых задач анализатора протоколов (в
рамках работы):
- настроить поддержку СУБД MySQL;
- настроить работу через графическое средство phpMyAdmin;
- проверить корректность работы Web- сервера в среде
phpMyAdmin.
9. Содержание отчета
- порядок настройки поддержки СУБД MySQL;
- порядок настройки phpMyAdmin;
- вывод тестового примера проверки работоспособности;
- выводы.
41
СПИСОК ЛИТЕРАТУРЫ
1. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы,
технологии, протоколы. -Спб.: Питер, 2007. -960с.
2. http://www.php.ru/manual/introduction.html, русскоязычный
официальный сайт языка PHP.
3. http://www.apache.ru/docs/rabota.html, русскоязычный
официальный сайт web-сервера Apache.
4. http://php-myadmin.ru/learning/instrument-intro.html,
инструментарий веб- разработчика, статья, Виктор Волков, Иван
Шумилов.
5. http://dev.mysql.com/doc/ , официальный англоязычный сайт СУБД
MySQL.
6. http://www.mysql.ru/docs/tkachenko/ , Вступление в PHP и MySQL,
Вадим Ткаченко
7. http://www.mysql.ru/docs/pautov/ , Описание СУБД MySQL,
А.Паутов
8. http://php-myadmin.ru/doc/ability.html , русскоязычный сайт
PhpMyAdmin
9. http://php-myadmin.ru/learning/instrument-intro.html,
инструментарий веб- разработчика, статья, Виктор Волков, Иван
Шумилов.
42
Составители: Николай Михайлович Дубинин
Руслан Николаевич Агапов
Геннадий Владимирович Старцев
ИНСТРУМЕНТАРИЙ ВЕБ-РАЗРАБОТЧИКА:
APACHE, PHP, MYSQL, PHPMYADMIN
Лабораторный практикум по дисциплине
«Сети ЭВМ и телекоммуникации»
Подписано в печать хх.05.2008. Формат 60х84 1/16.
Бумага офсетная. Печать плоская. Гарнитура Times New Roman.
Усл. печ. л. . Усл. кр. – отт. . Уч. – изд. л. .
Тираж 100 экз. Заказ №
ГОУ ВПО Уфимский государственный авиационный
технический университет
Центр оперативной полиграфии УГАТУ
450000, Уфа-центр, ул. К. Маркса, 12
43
Download