Введение . XV
Как появилась ОС Linux . XV
Основные дистрибутивы Linux . XVI
Преимущества и недостатки Linux XIX
О бесплатности Linux . XIX
Сопровождение Linux XX
Предварительная установка Linux на новые компьютеры . XXI
Приложения для Linux . .XXII
Linux и настольные персональные компьютеры . .XXII
Открытость Linux . . XXIV
Linux как платформа для приложений Интернета .XXV
Сетевые средства Linux . .XXV
Web_серверы XXVII
CERN HTTPD . XXVII
NCSA HTTPd XXVII
Apache XXVIII
Web_сервер THTTPD . XXIX
FTP_серверы . XXIX
Серверы электронной почты . . .XXX
Базы данных . .XXX
Инструментальные средства и кросс_разработка
Web_приложений . XXXII
На кого ориентирована эта книга . XXXV
Проекты, на базе которых создана эта книга . XXXV
Узел Web службы восстановления данных
DataRecovery.Ru XXXV
Виртуальное кадровое агентство Трудоголик.Ру XXXVII
Узел Web симпозиума "Сердечно_сосудистая
и интервенционная радиология" XXXVIII
Содержание книги . XXXIX
Благодарности . . .XL
Об авторах .XL
Глава 1 Стенд для создания Web-приложений . 1
Простейший стенд . .2
Аппаратные средства . .3
Центральный процессор . .3
Оперативная память .4
Жесткий диск . .4
Сканер и цифровой фотоаппарат . . .4
Принтер .5
Модем . . .6
Выделенная линия . . .6
Спутниковый Интернет . .8
Устройство бесперебойного питания . .9
Заземление компьютерного оборудования . .9
Программные средства . . 10
Выбор операционной системы 10
Выбор инструментальных средств разработки
Web_приложений 10
Подготовка исходных текстовых и графических материалов 11
Подготовка страниц HTML 12
Создание программных расширений сервера Web . 12
Подготовка Web_приложений для Linux в среде Microsoft
Windows . 13
Стенд из двух компьютеров . 14
Аппаратные средства 15
Локальная сеть Web_студии . . 15
Подключение к Интернету . 16
Программные средства . . 16
Стенд для разработки сложных Web_приложений . 17
Рабочая станция Web_дизайнера . 18
Рабочая станция Web_программиста . 19
Сервер разработки Web_приложений . . 19
Сервер отладки Web_приложений . 20
Сервер макетов Web_приложений . 20
Подключение к Интернету 20
Защита от вирусов и атак хакеров . 21
Установка антивирусных программ 21
Установка брандмауэра . . 22
Глава 2 Установка RedHat Linux . 25
Подготовка к установке . 25
Определение числа операционных систем на сервере . 25
Одновариантная загрузка 26
Многовариантная загрузка . 26
Размещение операционных систем на дисках . 26
Выделение диска для установки Linux 27
Установка нескольких ОС на одном диске 28
Определение конфигурации аппаратных средств . 30
Предварительная установка Microsoft Windows . 31
Мастер установки RedHat Linux . . 32
Запуск мастера установки . 32
Выбор типа установки . 33
Создание разделов диска 34
Установка программы управления загрузкой LILO . 36
Настройка параметров TCP/IP 37
Настройка брандмауэра . 38
Выбор временной зоны . . 39
Выбор национального языка . 39
Создание учетных записей . 40
Конфигурирование системы аутентификации пользователей . 41
Выбор устанавливаемых компонентов ОС . 42
Конфигурирование графического интерфейса 43
Копирование дистрибутивных файлов . 43
Создание загрузочной дискеты . . 43
Завершение установки . . 44
Настройка менеджера загрузки Microsoft Windows 45
Файл boot.ini . . 45
Добавление ОС Linux в список загрузки . 45
Копирование содержимого первого сектора корневого раздела
Linux . 46
Копирование средствами Microsoft Windows 46
Копирование средствами Linux . 50
Удаленное администрирование Linux . 51
Глава 3 Установка и настройка Web-сервера Apache . 55
Краткая история создания Web_сервера Apache . 55
Установка Web_сервера Apache . . 57
Конфигурационные файлы Apache . . 61
Расположение и состав конфигурационных файлов 62
Каталоги документов и программ Web_сервера Apache . 65
Каталоги Apache в RedHat Linux . 66
Каталоги Apache в Microsoft Windows 66
Проверка работоспособности Web_сервера 67
Управление Web_сервером Apache 68
Запуск сервера Apache . 68
Останов сервера Apache . 69
Перезапуск сервера Apache . . 69
Просмотр журналов . 70
Журнал ошибок error.log . 70
Журнал доступа к Web_серверу access.log . 71
Редактирование конфигурационных файлов . 72
Настройка основных параметров сервера Apache . . 74
Доменное имя Web_узла . 74
Адрес IP Web_узла . . 75
Номер порта TCP/IP 75
Расположение каталогов с документами HTML 76
Расположение каталогов с программами CGI 77
Создание виртуальных Web_узлов 79
Использование одного IP для виртуальных Web_узлов . 80
Исходные данные для примера . 80
Создание зон DNS для доменов виртуальных Web_узлов 80
Настройка файла httpd.conf 81
Адрес IP виртуального Web_узла 82
Доменное имя виртуального Web_узла 82
Расположение каталога документов HTML 82
Адрес E_Mail администратора виртуального
Web_узла . 83
Отдельные файлы журналов 83
Имя главного документа HTML . 83
Виртуальный каталог программ CGI 84
Конфигурирование главного Web_узла . 84
Использование разных IP для виртуальных Web_узлов . 88
Исходные данные для примера . 89
Создание зон DNS для доменов виртуальных Web_узлов 89
Настройка файла httpd.conf 89
Комбинированный способ . 91
Исходные данные для примера . 91
Создание зон DNS для доменов виртуальных Web_узлов 92
Настройка файла httpd.conf 92
Использование разных портов IP 93
Доменные псевдонимы 95
Управление доступом к страницам Web_узла . . 96
Команда <Directory> . . 96
Команда <File> . 97
Команда <Location> . . 97
Ограничение доступа посетителей Web_узла к каталогу 98
Ограничение доступа к каталогам программ CGI . 99
Файлы .htaccess 100
Обработка файлов .htaccess . 101
Аргументы команды AllowOverride 102
Парольный доступ к страницам Web_узла . 103
Базовая аутентификация 104
Создание файла идентификаторов и паролей . 104
Проверка имени файла управления доступом . 105
Подключение файла управления доступом . 105
Подготовка файла управления доступом . 106
Аутентификация типа Digest 107
Подключение модуля mod_auth_digest 107
Создание файла идентификаторов и паролей . 107
Подключение файла управления доступом . 108
Подготовка файла управления доступом . 108
Дополнительные возможности сервера Apache . 108
Просмотр содержимого каталогов Web_узла 108
Автоматический выбор национального языка для документов . 113
Согласование содержимого по именам документов . 115
Использование команд AddLanguage и AddCharset 116
Настройка браузера посетителя . 118
Использование программы Apache Configuration . 120
Преимущества и недостатки Apache Configuration . 120
Создание виртуального Web_узла при помощи
Apache Configuration . 120
Глава 4 Краткое введение в CGI 127
Пассивные и активные Web_серверы . 127
Статические страницы . 128
Динамические страницы . 129
Технологии создания Web_приложений . 130
Программы CGI . . 131
Приложения ISAPI . 133
Расширения ISAPI . 133
Фильтры ISAPI . . 134
Приложения ASP . 134
Приложения PHP . 135
Подготовка форм HTML . . 135
Пример простейшей формы 136
Параметры тега <FORM> 137
Элементы управления формы . . 139
Тег <INPUT> . 139
Тег <TEXTAREA> . . 141
Тег <SELECT> . 142
Пример документа HTML с формой 142
Указание параметров тега <FORM> . 144
Однострочное поле ввода . 145
Поле ввода пароля . . 145
Поле ввода многострочного текста . 145
Флажки с независимой фиксацией 145
Флажки с зависимой фиксацией . . 146
Списки текстовых строк 146
Скрытый элемент управления . 146
Кнопки типа SUBMIT и RESET . 147
Передача данных программе CGI . . 147
Метод GET . 147
Метод POST 148
Выбор между GET и POST 149
Передача ответа из программы CGI . 149
Переменные среды для программы CGI . 150
Глава 5 Создание программ CGI на языке Perl . . 155
Установка интерпретатора Perl . 156
Установка в RedHat Linux . . 156
Установка в Microsoft Windows . 157
Установка дополнительных модулей Perl . 162
Загрузка дистрибутива с Web_узла CPAN 163
Утилита PPM для Microsoft Windows 164
Утилита CPAN для Linux 165
Настройка конфигурации Apache . 166
Создание виртуального каталога программ CGI 167
Определение виртуального каталога программ CGI . 168
Права доступа к каталогу программ CGI . . 168
Права доступа к файлам программ CGI . 169
Создание простейшей программы CGI . 170
Параметры виртуального Web_узла . 170
Документ HTML со ссылкой на программу CGI . 171
Исходный текст программы CGI . . 172
Просмотр переменных окружения . 173
Обработка формы . 177
Извлечение содержимого текстовых полей формы 181
Обработка флажков с независимой фиксацией 181
Обработка флажков с зависимой фиксацией 182
Обработка списка . . 182
Обработка данных от графической кнопки 183
Программа AREF 184
Применение шаблонов HTML . 186
Шаблоны переменных 187
Циклические шаблоны . 190
Условные шаблоны . 193
Работа с Cookie в программах CGI . 196
Заголовок HTTP для создания Cookie 198
Запись Cookie программой CGI . 200
Получение значения Cookie . . 200
Изменение значения параметра Cookie 201
Удаление Cookie . 201
Ограничения на использование Cookie 201
Обмен данными с сервером электронной почты 202
Протокол SMTP . 203
Протокол POP3 . . 206
Протокол IMAP . . 209
Внутренняя структура электронного сообщения 210
Заголовок сообщения . 211
Тело сообщения . 213
Наборы символов и кодировка сообщения . 214
Присоединенный файл 216
Отправка данных из формы по электронной почте 218
Исходный текст программы urgent_mail.pl 219
Функция win2koi . 220
Функция send_mail . 221
Обработка формы HTML . 222
Получение электронной почты . 224
Использование модуля Net::POP3 . 225
Использование модуля Mail::POP3Client 230
Глава 6 Знакомство с СУБД MySQL . 235
Ограничения MySQL . . 236
Установка и администрирование MySQL . 237
Установка в среде Linux 237
Установка в среде Microsoft Windows . 239
Запуск MySQL . 242
Управление работой MySQL . . 244
Базовая настройка учетных записей MySQL 245
Назначение пароля для пользователя
с идентификатором root . 245
Создание новых учетных записей 246
Управление правами пользователей . 246
Удаление учетных записей пользователей . 247
Создание баз данных и таблиц . 247
Создание базы данных . . 248
Удаление базы данных . . 248
Создание таблицы . . 248
Удаление таблицы . . 248
Программа MySQL_Front . . 249
Запуск программы и подключение к базе данных 249
Создание базы данных . . 251
Удаление базы данных . . 251
Создание таблицы . . 251
Удаление таблицы . . 252
Просмотр и изменение содержимого таблицы . 252
Сохранение описания и содержимого таблицы 253
Импорт текстовых данных в таблицу . 255
Глава 7 Базы данных и Perl 257
Знакомство с интерфейсом DBI . . 257
Драйвер DBD 258
Модуль DBI . 259
Использование DBI . 259
Открытие соединения с базой данных . 260
Указание драйвера базы данных и источника данных . 261
Задание идентификатора пользователя и пароля . 262
Выбор способа обработки ошибок . 262
Дескриптор соединения . 263
Выдача команд . 263
Простые команды . 263
Предварительная подготовка команд 264
Выполнение заранее подготовленных команд 264
Привязка параметров . 265
Команда SELECT . 266
Обработка ошибок DBI в Web_приложениях 267
Режимы обработки ошибок . 267
X Практика применения PERL, PHP, APACHE и MySQL для активных Web-сайтов
Определение причины ошибки 268
Закрытие соединения 268
Пакет Trudogolik . . 269
Структура пакета . . 269
Глобальные переменные . . 270
Функции для работы с DBI . 271
DB_OPEN 271
DB_CLOSE . 272
DB_SQL_DO . 272
DB_SQL_PREPARE 273
DB_SQL_BIND . 273
DB_SQL_EXECUTE . 274
DB_SQL_FETCHROW_ARRAY 274
DB_ERROR . . 274
Пример вызова функций . 275
Удаление всех записей из таблицы . 276
Обработка исходного файла списка участников 276
Цикл обработки записей 277
Вывод содержимого таблицы для контроля 278
Обработка ошибок . . 279
Использование модуля Win32::ODBC . . 279
Открытие соединения с базой данных . 280
Выдача команды SQL 280
Получение результата выполнения команды SELECT . 281
Закрытие соединения с базой данных . 281
Глава 8 Кадровое агентство Трудоголик.Ру . 283
База данных кадрового агентства . 285
Таблица зарегистрированных клиентов . 286
Таблица администраторов агентства . . 287
Таблица названий городов . . 287
Образование . 288
График работы . 288
Список профессий . 289
Разделы каталога профессий . 289
Резюме 290
Вакансии . . 291
Узел
www.trudogolik.ru 293
Регистрация посетителей . 294
Выбор идентификатора и пароля . . 294
Интерфейс регистрации в агентстве Трудоголик.Ру 295
Программная реализация . 297
Добавление вакансии . 306
Пользовательский интерфейс . 306
Программная реализация . 309
Программа формирования формы ввода сведений
о вакансии . 309
Шаблон формы сведений о вакансии . 312
Программа обработки данных формы 317
Добавление резюме . . 323
Пользовательский интерфейс . 323
Программная реализация . 324
Поиск вакансий 326
Пользовательский интерфейс . 326
Программная реализация . 329
Отображение формы поиска . 329
Шаблон формы поиска . 331
Получение результатов запроса 334
Шаблон страницы результатов поиска 340
Поиск резюме . . 342
Администрирование Web_узла кадрового агентства . 344
Защита от несанкционированного доступа 344
Пользовательский интерфейс . 344
Программная реализация . 346
Хранение идентификатора подключения в Cookie 347
Первая проверка идентификатора и пароля . 349
Создание записи по умолчанию 349
Последующие проверки идентификатора и пароля . 351
Редактирование словарей 352
Пользовательский интерфейс . 352
Программная реализация . 355
Программа просмотра и редактирования списка
городов 355
Шаблон страницы списка городов 359
Редактирование списка администраторов . 362
Пользовательский интерфейс . 362
Программная реализация . 363
Добавление, поиск и удаление вакансий . . 367
Работа с резюме 371
Обработка ошибок . 372
Глава 9 Web-узел для проведения симпозиума . 375
База данных Web_узла симпозиума 376
Пожелания и предложения посетителей 376
Предложения о сотрудничестве . 377
Участники симпозиума . 378
Запись на госпитализацию . 378
Доклады и докладчики . 379
Разделы Web_узла симпозиума . 379
Бланк направления на госпитализацию . 382
Фреймы бланка . 383
Сценарий печати бланка 384
Страница пожеланий и предложений . 385
Форма отправки сообщения . 385
Программа comment.pl . . 387
Поиск участников симпозиума . 388
Форма поиска участников . 390
Программа заполнения формы поиска . 391
Программа выполнения поиска 392
Шаблон страницы с результатами поиска 395
Поиск докладов 396
Форма поиска докладов . 398
Программа поиска докладов . 399
Администрирование Web_узла симпозиума . . 400
Загрузка списка участников симпозиума . . 400
Форма для загрузки файла . . 404
Программа загрузки файла списка участников
симпозиума . 404
Программа сохранения списка участников в базе данных . 406
Загрузка списка докладов . . 409
Загрузка файлов ангиограмм и других файлов . 413
Просмотр сообщений от посетителей Web_узла симпозиума . 417
Глава 10 Применение сценариев PHP . 421
Как работают сценарии PHP . 424
Установка интерпретатора PHP . . 425
Установка в среде Linux 425
Изменение параметров установки . 425
Проверка установки в среде Linux . 426
Установка в среде Microsoft Windows . 427
Настройка Apache для работы с PHP 428
Настройка Microsoft IIS для работы с PHP 428
Проверка установки в среде Microsoft Windows 431
Просмотр переменных окружения . 432
Обработка форм . 434
Способы получения содержимого полей формы . 434
Использование массива $HTTP_POST_VARS[] . 434
Использование глобальных переменных . 435
Сценарий для обработки формы . . 436
Однострочное текстовое поле . 437
Многострочное текстовое поле . 438
Флажки с независимой фиксацией . 439
Флажки с зависимой фиксацией . . 440
Обработка списка . . 441
Обработка данных от графической кнопки 441
Программа AREFPHP . 442
Работа с Cookie в сценариях PHP 444
Заголовок HTTP для создания Cookie 444
Оглавление XIII
Запись Cookie . . 445
Получение значения Cookie . . 446
Изменение значения параметра Cookie 446
Удаление Cookie . 446
Пример использования Cookie 446
Определение текущего цвета фона . 449
Установка нового цвета фона 449
Установка цвета фона по умолчанию 450
Обмен данными с сервером электронной почты 451
Настройка интерпретатора PHP для работы
с электронной почтой . . 451
Настройка для Linux 451
Настройка для Microsoft Windows . 452
Отправка почты с помощью функции mail 452
Шаблоны HTML в сценариях PHP . . 455
Состав дистрибутива класса Template . 455
Три типа шаблонов . 457
Простые шаблоны 457
Циклические шаблоны 457
Условные шаблоны . 458
Пример использования простого шаблона 458
Исходный текст файла шаблонов . . 458
Сценарий PHP для заполнения шаблона 459
Пример использования циклического шаблона 462
Исходный текст файла шаблонов . . 462
Сценарий PHP для заполнения шаблона 463
Глава 11 Базы данных и PHP . 465
Основные операции с базами данных . . 465
Установка соединения с сервером СУБД . . 465
Обычное соединение 466
Постоянное соединение . 467
Выбор текущей базы данных . 467
Выдача команд SQL . . 468
Обработка результатов выполнения команды SQL 469
Команды изменения таблиц базы данных 469
Команда SELECT . 469
Просмотр содержимого таблицы в сценарии PHP . 470
Обработка ошибок . . 473
Применение шаблонов HTML . 474
Обычная техника использования шаблонов . 474
Файл шаблона . . 474
Файл сценария PHP . . 476
Специальные методы класса Template . 479
Файл шаблона . . 479
Файл сценария PHP . . 479
Редактирование и просмотр дерева . 481
Экспертное дерево решений . . 481
Структуры данных . 483
Приложение для редактирования дерева . . 485
Сценарии PHP редактирования дерева 486
Просмотр узла . . 490
Редактирование заголовка и текста узла . 491
Создание дочернего узла 492
Удаление узла . 493
Приложение для просмотра дерева . 494
Сценарий для просмотра дерева . 494
Просмотр дочернего узла 497
Просмотр родительского узла . 497
Приложение Как выбрать провайдера для размещения Web-сайта . 499
Хостинг или размещение компьютера на площадке провайдера? 499
Виртуальный Web_сервер на компьютере провайдера . 500
Размещение компьютера в локальной сети провайдера 501
Выбор провайдера для размещения виртуального сайта 502
Пропускная способность каналов передачи данных
провайдера . 502
Предоставление собственного доменного имени . 505
Предоставление почтовых ящиков 506
Ограничения на объем файлов виртуального Web_сайта . 506
Ограничения на использование активных
компонентов и баз данных . . 506
Способы обновления файлов сайта . 507
Выбор провайдера для размещения компьютера
в локальной сети . . 507
Общая стоимость размещения сервера 507
Плата за установку сервера . 508
Электропитание сервера 508
Аренда места для размещения сервера в помещении
провайдера . 508
Подключение к Интернету . 509
Оплата входящего и исходящего трафика . 510
Использование дополнительных адресов IP . 511
Аренда дополнительного оборудования . 511
Выполнение работ на площадке провайдера . 511
Дополнительные услуги провайдера . . 512
Прочие факторы . 513
Предметный указатель . . 515
Библиографический список . . 525