Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы ИИТ / No.4923. Самойлов А.Н., Кучеров С.А. ИИТ-1.doc
Скачиваний:
61
Добавлен:
01.06.2015
Размер:
532.48 Кб
Скачать

681.3(07)

4923

М-545

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное

автономное образовательное учреждение

высшего профессионального образования

«Южный федеральный университет»

ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ В Г. ТАГАНРОГЕ

КАФЕДРА СИСТЕМНОГО АНАЛИЗА И ТЕЛЕКОММУНИКАЦИЙ

Методические указания к лабораторной работе №1

Классификация и сравнение современных инструментов разработки веб-приложений на платформе WAMP/LAMP

Установка и настройка локального сервера XAMPP

по курсу

Интернет-Интранет технологии

Для студентов специальности

230102 – Автоматизированные системы обработки информации и управления

и направления

230100 – Информатика и вычислительная техника,

профиль

«Автоматизированные системы обработки информации и управления»

всех форм обучения

Таганрог 2012

УДК 683.324 (07.07)

Самойлов А.Н., Кучеров С.А.

Методические указания к лабораторной работе «Классификация и сравнение современных инструментов разработки веб-приложений на платформе WAMP/LAMP. Установка и настройка локального сервера XAMPP». – Таганрог: Изд-во ТТИ ЮФУ, 2012. – 16 c.

В лабораторной работе рассматриваются ключевые аспекты выбора средств разработки и запуска веб-приложений. Изучаются процессы начальной настройки и установки локального веб-сервера на примере XAMPP 1.7.3.

Предназначено для студентов специальности 230102 –Автоматизированные системы обработки информации и управления и направления 230100 ­– Информатика и вычислительная техника, профиль «Автоматизированные системы обработки информации и управления».

Ил. 7

Рецензент канд.техн.наук, доцент Косенко Е.Ю.

  1. Цели и задачи лабораторной работы

Цель работы: изучить архитектуру современных веб-приложений и современные средства разработки веб-приложений. Получить практические навыки по установке и настройке локального сервера XAMPP.

    1. Задачи работы

  1. Изучить теоретический материал:

  • ознакомиться с платформой WAMP/LAMP и используемыми в ней технологиями;

  • ознакомиться с назначением и применением современных инструментальных средств, используемых в создании веб-приложений;

  • ознакомиться с базовыми принципами построения веб-приложений.

  1. Согласно методическим указаниям произвести установку локального сервера XAMPP.

  2. Выполнить индивидуальное задание.

  3. Отразить проделанные действия в отчете.

  4. Написать осмысленный вывод.

    1. Исходные данные

  1. Пакет установки веб-сервера.

  2. ПК с установленной на нем OC Microsoft Windows или ОС семейства Unix.

  1. Теоретические основы

    1. Краткие сведения о платформе WAMP/LAMP

WAMP/LAMP – акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый с целью разработки, предоставления веб-приложений. WAMP/LAMP назван по первым буквам входящих в его состав компонентов:

  • W-Windows – операционная система от компании Microsoft;

  • L-Linux – операционная система семейства Unix;

  • Apache – веб-сервер;

  • MySQL – СУБД;

  • PHP – язык программирования, используемый для создания веб-приложений.

  • Apache HTTP-сервер – свободный веб-сервер. Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т.д. Поддерживает IPv6.

Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако функциональность такого решения крайне ограничена. Ядро Apache полностью написано на языке программирования C.

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  1. Конфигурация сервера (httpd.conf).

  2. Конфигурация виртуального хоста (extra/httpd-vhosts.conf).

  3. Конфигурация уровня директории (.htaccess).

Apache имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM (мультипроцессорные модели).

Большая часть модулей имеет собственные параметры. Часть модулей использует в своей работе конфигурационные файлы операционной системы (например, /etc/passwd и /etc/hosts). Кроме того, параметры могут быть заданы через ключи командной строки.

Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество – отдельными open source-разработчиками.

Модули могут быть как включены в состав сервера в момент компиляции, так и загружены динамически, через директивы конфигурационного файла.

В модулях реализуются следующие функции:

  • поддержка языков программирования;

  • добавление функционала;

  • исправление ошибок или модификация основных функций;

  • усиление безопасности.

Часть веб-приложений, например панели управления ISPmanager и VDSmanager, реализованы в виде модуля Apache.

Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.

Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.

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

К ним относятся:

  • PHP (mod_php);

  • Python (mod python, mod wsgi);

  • Ruby (apache-ruby);

  • Perl (mod perl);

  • ASP (apache-asp);

  • Tcl (rivet).

Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, sh, Java.

Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:

  • Ограничение доступа к определённым директориям или файлам.

  • Механизм авторизации пользователей для доступа к директории по методу HTTP-Авторизации (mod_auth_basic) и digest-авторизации (mod_auth_digest).

  • Ограничение доступа к определённым директориям или всему серверу, основанное на IP-адресах пользователей.

  • Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных.

  • Существуют модули, реализующие авторизацию через СУБД или PAM.

MySQL – свободная система управления базами данных (СУБД). MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Существует также порт MySQL к OpenVMS. Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, PureBasic, Python, Ruby, Smalltalk, Компонентный Паскаль и Tcl библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

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

В области программирования для сети Интернет PHP – один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

  • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

  • взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

  • автоматизированная отправка HTTP-заголовков;

  • работа с HTTP-авторизацией;

  • работа с cookies и сессиями;

  • работа с локальными и удалёнными файлами, сокетами;

  • обработка файлов, загружаемых на сервер;

  • работа с XForms.

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.

Простейшая программа Hello world на PHP выглядит следующим образом:

<?php

echo 'Hello, world!';

?>

PHP исполняет код, находящийся внутри ограничителей, таких как <?php ?>. Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ, например, так:

<html>

<head>

<title>Тестируем PHP</title>

</head>

<body>

<?php echo 'Hello, world!'; ?>

</body>

</html>

Помимо ограничителей <?php ?>, допускается использование дополнительных вариантов, таких как <? ?> и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> (конструкции <? ?> и <% %> могут быть выключены в конфигурационном файле php.ini).

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

Для увеличения быстродействия приложений возможно использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1–3, что в общем случае ведёт к значительному ускорению работы.

Интерпретатор состоит из ядра и подключаемых модулей, «расширений», представляющих собой динамические библиотеки. Расширения позволяют дополнить базовые возможности языка, предоставляя возможности для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и тому подобным. Любой желающий может разработать своё собственное расширение и подключить его. Существует огромное количество расширений, как стандартных, так и созданных сторонними компаниями и энтузиастами, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Множество расширений доступно в репозитории PECL.