Основы языка HTML. Создание домашней страницы.

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

по дисциплине «Введение в инфокоммуникации»

для студентов технического направления

 

 

Одобрено

Учебно-методическим

советом университета,

Научно-техническим

советом университета

 

 

Составитель: ст. преподаватель Устинова Е.С.

 

 

Тольятти 2012

 

 

Лабораторный практикум по дисциплине «Введение в инфокоммуникации» для студентов технического направления разработан на основании Государственного образовательного стандарта высшего профессионального образования для студентов технического направления, утвержденная Министерством образования РФ 23 декабря 2005 года.

 

УТВЕРЖДЕНО

на заседании кафедры "Информационный и электронный сервис".

Протокол № ______________

Зав. кафедрой, к.т.н., доц. _________________ В.И.Воловач

 

УТВЕРЖДЕНО

На заседании научно-методического совета по специальностям 100101.65 «Сервис», 210303.65 «Бытовая радиоэлектронная аппаратура», 210312.65 «Аудиовизуальная техника», направлениям подготовки 010300.62 «Фундаментальные информатика и информационные технологии», 100100.62 «Сервис», 210100.62 «Электроника и микроэлектроника», 210300.62 «Радиотехника», 210400.62 «Телекоммуникации» (ГОС ВПО), 210400.62 «Радиотехника» (ФГОС ВПО), 210700.62 «Инфокоммуникационные технологии и системы связи», 230100.62 «Информатика и вычислительная техника», 230100.68 «Информатика и вычислительная техника», 230200.62 «Информационные системы», 230400.62 «Информационные системы и технологии», 231000.62 «Программная инженерия», 231000.68 «Программная инженерия», специальностям СПО 210308.51 «Техническое обслуживание и ремонт радиоэлектронной техники (по отраслям)», 230106.51 «Техническое обслуживание средств вычислительной техники и компьютерных сетей», 230113.51 «Компьютерные системы и комплексы».

 

Протокол № ______________

Председатель НМС, к.т.н., доц. ______________ В.И.Воловач

 

 

Рецензент: к.т.н., доцент Жуков Г.П.

СОДЕРЖАНИЕ

Введение………………………………………………………………………………………..…3

Лабораторная работа №1 «Основы языка HTML. Создание домашней страницы»…………5

Лабораторная работа №2 «Конфигурирование и администрирование web-сервера»………18

Лабораторная работа №3 «Язык написания скриптов PHP»……….…………………….…...26

Лабораторная работа №4 «Работа с графическим редактором Adobe Photoshop» ………….34

Библиографический список……………………………………………………………………...47

Приложение…………………………………………………………………………………….…48

 

Введение

 

Основной целью курса является:

- формирование и закрепление системного подхода при разработке программного обеспечения с применением современных инфокоммуникационных технологий, в курсе рассматриваются средства и методы создания такого программного обеспечения;

- ядро курса составляют средства и приемы создания программного обеспечения с использованием современных инфокоммуникационных технологий;

- в курсе выделены связанные составляющие: создание программного обеспечения, используемого на стороне «клиента», и создание программного обеспечения, используемого на стороне «сервера», соответственно рассматриваются средства и методы создания программного обеспечения для каждой составляющей;

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

Защита лабораторных работы проходит в виде собеседования.

Общие правила оформления «Журнала отчетов по лабораторным занятиям»:

- по объему и содержанию «Журнала отчетов по лабораторным занятиям должен отвечать требованиям, устанавливаемым кафедрой,

- «Журнала отчетов по лабораторным занятиям» представляется в виде бланков формата А4 (210х297 мм),

Отчет оформляется на листах формата А4 в текстовом редакторе WORD шрифт Times New Roman размер шрифта 12, поля: сверху и снизу 1,5 см., слева 2 см., справа 1,5 см. После выполнения цикла лаборатрныхз работ, все отчеты подшиваются в единый журнал (либо записываются на диск) с титульным листом (приложение 1) и сдаются преподавателю.

В содержании указывается перечень тем выполненных лабораторных занятий. Основная часть включает в себя собственно отчеты по лабораторным занятиям, которые оформляются в следующей последовательности:

1. Номер лабораторного занятия;

2. Тема лабораторной работы;

3. Цель работы;

4. Условие задачи;

5. Результат выполнения задания;

6. Ответы на контрольные вопросы;

7. Вывод о проделанной работе.

Лабораторная работа №1

Основы языка HTML. Создание домашней страницы.

 

Цель работы: основы языка разметки гипертекста - HTML. Разработка Web-страниц используя специальный язык разметки гипер-текста HTML (Hyper Text Markup Language).

Методические указания:

Язык разметки гипертекста HTML (HyperText Markup Language) HTML (HyperText Markup Language) - язык разметки гипертекста, используемый для создания документов, независимых от аппаратно-программной платформы. HTML - это не язык программирования, а описательный язык разметки. HTML-документ состоит из текста, который представляет собой содержимое документа, и тегов, которые определяют структуру и внешний вид документа при его отображении браузером. Структура HTML-документа проста:

<html>

<head>

<title>HTML-документ</title>

</head>

<body>

<i>Internet</i>

</body>

</html>

Текст всего документа заключается в теги <html>. Текст документа состоит из заголовка и тела, которые выделяются соответственно тегами <head> и <body>. В заголовке указывают название HTML-документа и другие параметры, которые браузер будет использовать при отображении документа. Тело - это та часть, в которую помещается собственно содержимое HTML-документа. Тело включает предназначенный для отображения текст и управляющую разметку документа (теги), которые используются браузером. Теги содержат указания о способе отображения текста. С помощью тегов, кроме того, создаются ссылки на файлы, содержащие дополнительные данные (графику, звук), и обозначаются точки привязки (гиперссылки или якоря), посредством которых данный документ связывается с другими документами. HTML-тег состоит из имени, за которым может следовать необязательный список атрибутов тега. Текст тега заключается в угловые скобки < >. Атрибуты тега следуют за именем и отделяются друг от друга одним или несколькими знаками табуляции, пробелами или символами конца строки. Порядок записи атрибутов в теге значения не имеет. Значение атрибута, если таковое имеется, следует за знаком равенства, стоящим после имени атрибута. Если значение атрибута - одно слово или число, то его можно просто указать после знака равенства, не выделяя дополнительно. Все остальные значения необходимо заключать в кавычки, особенно если они содержат несколько разделенных пробелами слов. Регистр символов в именах тегов и атрибутов не учитывается.

Как правило, теги состоят из начального и конечного элементов, между которыми размещаются текст и другие элементы документа. Имя конечного тега совпадает с именем начального, но перед именем конечного тега ставится косая черта / (<html>…</html>). Конечные теги никогда не содержат атрибутов. При использовании вложенных тегов их нужно закрывать, начиная с самого последнего и двигаясь к первому.

Некоторые теги не имеют конечного элемента.

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

 

Каскадные таблицы стилей (CSS – Cascading Style Sheets)

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

Стили можно реализовать тремя способами:

связанные таблицы стилей (Linked Style Sheets) – таблица стилей определяется в отдельном текстовом файле с расширением .css и ее стиль связывается с одной или несколькими страницами. Связанные стили воздействуют на отдельный Web-узел;

внедренные таблицы стилей (Global Style Sheets) – стили можно внедрить непосредственно в текст на HTML. Внедренные стили воздействуют на отдельную страницу;

встроенные таблицы стилей (Inline Style Sheets) – встроенные стили создаются с помощью атрибута style. Встроенные стили воздействуют на отдельный тег.

Пример связанной таблицы стилей:

Таблица стилей (в файле lss.css)

h1 {font-size:10; color:red}

p {color:#0000ff; font-style:italic}

HTML-документ

<html>

<head><link href=lss.css rel=stylesheet></head>

<body>

<h1>Заголовок нового стиля</h1>

<p>Абзац нового стиля</p>

</body>

</html>

Пример внедренной таблицы стилей:

<html>

<head><style><!h2 {font-weight:bold; color:green}></style></head>

<body><h2>Заголовок нового стиля</h2></body>

</html>

Пример встроенной таблицы стилей:

<html>

<h1 style="font-size:40pt; color:blue">Заголовок нового стиля</h1>

<p style="font-size:40; color:magenta">Абзац нового стиля</h1>

</html>

Слои

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

С помощью JavaScript можно изменять размеры слоя, его видимость, перемещать слой и т.п.

В общем случае слой – это часть HTML-документа, выделенная тегом div, которому присвоен некоторый идентификатор id:

<div id=layer1>

</div>

Также необходимо, чтобы слой был описан с помощью стилевых таблиц:

<style type=text/css>

#layer1 {position:absolute; top=0; left=0; z-index=1; visibility:visible; width:100px;

height:120px;}

</style>

С помощью стилевых таблиц описываются следующие параметры слоя:

position –точка отсчета координат положения слоя, возможные значения: absolute

и relative;

top, left – координаты верхнего левого угла слоя;

z-index – уровень слоя;

visibility – видимость слоя, возможные значения: visible и hidden;

width; height – ширина и высота слоя.

Пример скрытия и отображения слоя:

<html>

<head>

<script language=JavaScript>

function showlayer(layername)

{eval('document.all[" '+layername+' "].style.visibility="visible" ');}

function hidelayer(layername)

{eval('document.all[" '+layername+' "].style.visibility="hidden" ');}

</script>

</head>

<body>

<style type=text/css>

#mylayer {position:absolute; top:0; left:400; z-index:1; visibility:visible; width:100px;

height:100px;}

</style>

<div id=mylayer>

<img src=dove.gif border=1>

</div>

<p><button onclick="showlayer('mylayer');">Показать слой</button>

<p><button onclick="hidelayer('mylayer');">Спрятать слой</button>

</body>

</html>

Пример перемещения слоя:

<html>

<head>

<script language=JavaScript>

function movelayer(layername,newtop,newleft)

{eval('document.all[" '+layername+' "].style.pixelTop=newtop');

eval('document.all[" '+layername+' "].style.pixelLeft=newleft');}

</script>

</head>

<body>

<style type=text/css>

#mylayer {position:absolute; top:0; left:400; z-index:1; visibility:visible; width:100px;

height:100px;}

</style>

<div id=mylayer>

<img src=dove.gif border=1>

</div>

<p><button onclick="movelayer('mylayer',0,600);">Переместить слой</button>

</body>

</html>

Объектная модель браузера

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

Объект window

Объект window находится в вершине иерархии и является контейнером для других объектов. Он представляет текущее окно браузера.

Свойства объекта window

Методы объекта window

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

Методы open и close

Для открытия нового окна можно воспользоваться методом open. Полный синтаксис метода open выглядит следующим образом:

newWnd=window.open(URL, name, features, replace),

где:

URL адрес документа, отображаемого в новом окне. Если адрес не задан, отображается пустое окно;

name строка, задающая имя окна;

features строка, задающая параметры нового окна;

replace - указывает, замещает ли новое окно текущее в списке history или нет.

Закрыть окно позволяет метод close. Синтаксис метода close выглядит следующим образом:

newWnd.close()

Для закрытия текущего окна можно воспользоваться одним из двух способов: window.close() или self.close().

Методы alert, prompt, confirm

Эти методы позволяют отображать различные диалоговые панели. window.alert(«Сообщение») выводит строку и ожидает, когда пользователь щелкнет кнопку OK.

string=window.prompt(«Вопрос», «Значение по умолчанию») служит для ввода информации. Введенная пользователем строка возвращается при щелчке на кнопке OK. При щелчке на кнопке Cancel возвращается значение null. truefalse=window.confirm(«Вопрос») используется для получения подтверждения. При щелчках на кнопках OK и Cancel возвращается true или false соответственно.

Методы focus, blur

С помощью этих методов можно программно перемещаться между несколькими открытыми окнами и изменять текущее активное окно. Метод blur перемещает фокус из одного окна в другое (аналогично клавише Tab), метод focus перемещает фокус на окно, где находится исполняемый код, написанный на JavaScript.

Методы setTimeout, setInterval, clearTimeout, clearInterval

Методы setTimeout, setInterval используются для управления таймером. Метод setTimeout создает таймер, который выполняет указанные действия по истечении заданного числа миллисекунд, например window.setTimeout(«действие», миллисекунды).

Для выполнения действий, повторяющихся с определенным интервалом времени, используется метод setInterval, например window.setInterval(«действие», интервал в миллисекундах).

Методы clearTimeout, clearInterval отменяют действие методов setTimeout, setInterval соответственно.

Использование cookie

Cookie – это механизм, позволяющий серверу хранить информацию на клиентском компьютере и при необходимости извлекать ее. С помощью механизма cookie сервер может хранить на клиентском компьютере некоторый именованный информационный элемент. Это может быть имя пользователя, информация о настройках, служебная информация, используемая в данной сессии и т.п. Обычно данный механизм применяется для сохранения информации, введенной пользователем. На каком-то узле пользователь вводит свои данные в поля формы, она отсылается на сервер, и информация при этом сохраняется на компьютере пользователя.

Механизм cookies поддерживается с помощью свойства cookie объекта document. Минимально должно быть установлено значение атрибута name.

Следующий пример демонстрирует создание cookies.

<html>

<head>

<title>Cookies</title>

<script language=JavaScript>

function doCookie()

{myname="myname=";

if (document.cookie != -1)

{value=document.cookie;

alert("Hello, "+value)

}

else

{name=prompt("What is your name?", "I don't no");

document.cookie=myname+name+";";

}

}

</script>

</head>

<body onLoad="doCookie();">

</body>

</html>

В следующем примере запрашивается имя пользователя при первом посещении, сохраняется в виде информационного элемента, при последующих посещениях отображается в виде приветствия.

<html>

<head>

<title>Cookies</title>

<script language=JavaScript>

function doCookie()

{myName="myName=";

if (document.cookie.indexOf(myName) != -1)

{start=document.cookie.indexOf(myName);

end=document.cookie.indexOf(";");

value=document.cookie.substring(start+myName.length, end);

alert("Hello, "+value)

}

else

{name=prompt("What is your name?", "I don't no");

document.cookie=myName+name+";";

}

}

</script>

</head>

<body onLoad="doCookie();">

</body>

</html>

Использование графики

Управление графикой с помощью JavaScript базируется на доступе к коллекции images и управлении свойствами отдельных элементов этой коллекции. Атрибут name позволяет обращаться к графическому изображению по имени.

Например, изображение, описанное как <img src=“First.gif” name=“First”>, доступно из JavaScript как document.first.

Коллекция images содержит все графические изображения, включенные в состав данного HTML документа. Для доступа к первому элементу можно обратиться к 0-му

элементу коллекции: document.images[0]. Таким образом, если описанное выше графическое изображение было первым, можно обратиться к нему одним из следующих способов:

document.images[0]

document.images[“first”]

document.first

document[“first”]

Объект image

Объект image может использоваться для задания свойств графических изображений, включенных в состав данной страницы, а также для загрузки изображений в кэш-память и их последующего отображения.

В следующей таблице перечислены свойства объекта image.

Создание анимационных изображений

С помощью динамической смены растровых изображений в сценарии JavaScript можно получить эффект анимации. Например, это выглядит так, как будто какое-либо слово, или рисунок, периодически тонет в цветном шуме, и затем проявляется вновь. Исходный текст сценария приведен ниже.

<html>

<head>

<title>Animation with JavaScritp</title>

<script language="JavaScript">

i=1;

bForward=true;

function showNextImage()

{if(bForward)

{i++;

if(i>5)

{bForward=false;}

}

else

{i--;

if(i<2)

{bForward=true;}

}

document.Img.src="noise0"+i+".gif";

setTimeout("showNextImage()",500);

}

</script>

</head>

<body bgcolor=white>

<img src="noise01.gif" name="Img">

<script language="JavaScript">

showNextImage();

</script>

</body>

</html>

Последовательность кадров выглядит следующим образом:

Кадры выводятся в прямой, а затем в обратной последовательности.

Изменение внешнего вида графических ссылок

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

Если расположить указатель мыши над одной из этих кнопок, кнопка изменит свой внешний вид и появится всплывающая подсказка.

<html>

<body bgcolor="#B0FFD8">

<font face=”Arial, Helvetica" size=1>

<p>

<a href="back.htm"

onMouseOver="document.btn1.src='back_down.gif'"

onMouseOut="document.btn1.src='back_up.gif'">

<img src="back_up.gif" name="btn1" border=0 alt="Back"></a>

<br>

<a href="forward.htm"

onMouseOver="document.btn2.src='forward_down.gif'"

onMouseOut="document.btn2.src='forward_up.gif'">

<img src="forward_up.gif" name="btn2" border=0 alt="Forward"></a>

</font>

</body>

</html>

Контрольные вопросы:

1. Что такое ТЕГ, как он записывается?

2. Виды ТЕГов.

3. Что представляет собой HTML документ?

4. Для чего предназначен элемент <BODY>?

5. Для чего используется элемент <FONT>?

6. Структура HTML-документа.

7. Для чего предназначен тэг <HTML>.

Задание для лабораторной работы:

1. Создание домашней страницы содержащей информацию о студенте.

Обязательное содержание:

· Информация о том, чей сайт и фото студента.

· Электронный почтовый адрес.

· Ссылка на рабочую страницу или сайт вуза студента.

· Мой ВУЗ - о ПВГУС.

· Моя группа.

· Моя будущая профессия.

· Мои увлечения или хобби.

· Любая другая информация.

В оформлении страницы следует использовать максимальное количество вышеперечисленных тегов HTML.

2. Создать HTML-документ, который должен содержать:

форматированный текст;

многоуровневые нумерованные и ненумерованные списки;

таблицу;

изображения;

гиперссылки на другие HTML-документы, гиперссылки в пределах HTML-

документа, гиперссылку на e-mail;

формы (input (text, checkbox, radio, submit, reset), textarea, select).

слои;

скрипты на языке JavaScript (в соответствии с вариантом).

 

Лабораторная работа №2

«Конфигурирование и администрирование web-сервера»

Цель работы: закрепить теоретические знания и практические навыки по следующим направлениям:

Технологии и протоколы WEB серверов. Статические и динамические WEB страницы.

Инсталляция, запуск и конфигурирование WEB сервера APACHE.

Динамически подключаемые модули WEB-сервера APACHE.

Виртуальный хостинг и управление WEB сервером APACHE.

Методические указания:

Web-сервер Apache

Apache – один из широко используемых в Internet web-серверов. В настоящее время программное обеспечение Apache установлено примерно на половине Web-узлов всего мира.

Основной файл конфигурации httpd.conf, используемый для управления web-узлом. В нем определяются базовые операции, указывается, как сервер должен работать с локальными ресурсами, отвечая на запрос, указывается, с какими файлами пользователи могут выполнять определенные операции. Через него осуществляется управление работой Apache. Настройка конфигурационного файла web-сервера – самый ответственный шаг при его установке.

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

В файле httpd.conf директивы группируются в три основных раздела:

Section 1. Global Environment – директивы, которые управляют работой Apache в целом, влияют на общее функционирование Apache;

Section 2. Main Server Configuration – директивы, которые определяют параметры основного сервера, отвечающего на запросы, все эти директивы могут быть переопределены для виртуальных серверов;

Section 3. Virtual Hosts – установки для виртуальных серверов.

Виртуальные серверы (хосты)

Виртуальные серверы (хосты) – несколько web-серверов с различными IP-адресами, использующих один экземпляр программы Apache.

Сферы применения виртуальных серверов:

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

организация виртуальных серверов для отделов фирм, каждый отдел будет иметь собственное доменное имя и свой web-сервер;

организация общедоступного и внутреннего web-серверов в виде двух виртуальных серверов;

использование виртуального сервера для проверки или разработки web-сервера.

Директива VirtualHost

<VirtualHost ip_address_of_host>

</VirtualHost>

Пример: создать виртуальный сервер virthost2 c ip-адресом 127.0.0.2.

Структура каталогов выглядит следующим образом:

<disk:>\infocom\apache2 – каталог сервера Apache

<disk:> \infocom\virthost2\www – каталог для документов виртуального сервера

<disk:> \infocom\access.log – файл регистрации доступа

<disk:> \infocom\error.log – файл регистрации ошибок

Section 3 в файле httpd.conf будет иметь следующий вид:

<VirtualHost 127.0.0.2>

ServerName virthost2

ServerAdmin admin@virthost2

DocumentRoot “<disk:>/infocom/virthost2/www”

CustomLog “<disk:>/infocom/access.log” common

ErrorLog “<disk:>/infocom/error.log”

</VirtualHost>

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

Для организации доступа к каталогам и файлам используются следующие директивы.

Директива AuthType

AuthType type

Задает тип контроля полномочий. Возможное значение – Basic.

Директива AuthName

AuthName realm

Задает область (realm), в которой действительны имена и пароли пользователей.

Каждая пара имя/пароль действует в определенной области. Возможное значение – Test.

Директива AuthGroupFile

AuthGroupFile file_name

Задает имя файла, в котором содержится информация об именах групп и именах пользователей, входящих в эти группы. Этот файл текстовый и имеет следующий формат:

name_group: name_user name_user …

name_group: name_user name_user …

Директива AuthUserFile

AuthUserFile file_name

Задает имя файла, в котором содержится информация об именах пользователейи их паролях. Пароли хранятся в зашифрованном виде. Этот файл текстовый и имеет следующий

формат:

name_user:password

name_user: password

Пример: имена групп, имена и пароли пользователей хранятся соответственно в файлах <disk:>\home\security\groups и <disk:>\home\security\users. Все имена и расположение каталога security выбрано произвольно. Единственное соображение безопасности заключается в том, что этот каталог лучше хранить выше каталога, указанного в директиве

DocumentRoot.

Файл groups

adm: admin

group1: anna alex

group2: user1 user2 user3

Файл groups может быть создан с помощью простейшего текстового редактора

Файл users

admin:$apr1$yd5.....$Bkv.cPIQk/L7EOF2d2DNO.

anna:$apr1$Ze5.....$k/uC6j.ysELGdCK66BD6v0

alex:$apr1$Gf5.....$TZUpPFixB0h4pwvpfRkxl0

user1:$apr1$Sj5.....$HBg8Io5hbm/9quebHF3O01

user2:$apr1$Og5.....$WKYIDjTsbk.J.PDIhXu5x1

user3:$apr1$Xi5.....$AfQzJlIxyjiFh6KX23cE30

Для создания и изменения файла users используется Apache-утилита <disk:>\program

files\apache group\apache\bin\htpasswd.exe. Для получения справочной информации ее можно запустить с ключом -?. Для создания файла используется ключ –c. Формат команды

…\htpasswd.exe [-switch] name_user.

Для добавления второго и последующих пользователей или при изменениии пароля существующего пользователя ключ –c можно не указывать.

После создания файлов groups и users в блочную директиву <VirtualHost> можно добавить следующие строки:

<VirtualHost 127.0.0.2>

ServerName virthost2

ServerAdmin admin@virthost2

DocumentRoot “<disk:>/infocom/virthost2/www”

CustomLog “<disk:>/infocom/access.log” common

ErrorLog “<disk:>/infocom/error.log”

<Directory “<disk:>/infocom/virthost2/www”>

AuthType Basic

AuthName Test

AuthGroupFile “<disk:>/infocom/security/groups”

AuthUserFile “<disk:>/infocom/security/users”

</Directory>

</VirtualHost>

После создания этих файлов можно установить права доступа к каталогам и файлам для всех пользователей, для групп пользователей, для отдельных пользователей или запретить доступ всем пользователям.

Директива Require

Require [user name_user name_user …] # доступ разрешен всем перечисленным пользователям

Require [group name_group name_ group …] # доступ разрешен всем пользователям из групп

Require [valid-user] # доступ разрешен всем пользователям перечисленным в файле users

Пример:

<VirtualHost 127.0.0.2>

ServerName virthost2

ServerAdmin admin@virthost2

DocumentRoot “<disk:>/infocom/virthost2/www”

CustomLog “<disk:>/infocom/access.log” common

ErrorLog “<disk:>/infocom/error.log”

<Directory “<disk:>/infocom/virthost2/www”>

AuthType Basic

AuthName Test

AuthGroupFile “<disk:>/infocom/security/groups”

AuthUserFile “<disk:>/infocom/security/users”

Require valid-user

#Require user anna user1

#Require group adm

</Directory>

</VirtualHost>

Если последовательно убирать комментарии, то будет разрешен доступ или всем зарегистрированным пользователям, или пользователям anna и user1, или пользователям, принадлежащим группе adm

Директива Require разрешает доступ пользователям на персональной основе. Для разрешения/запрещения доступа всем пользователям или из конкретных ip-адресов, хостов, доменов используются директивы Allow from и Deny from. Эти директивы могут иметь следующие параметры: all – доступ разрешен/запрещен всем, имя хоста – доступ разрешен/запрещен __________только данному хосту, имя домена – доступ разрешен/запрещен только хостам из данного домена.

Порядок, в котором применяются директивы Allow from и Deny from, определяется не порядком их следования в конфигурационном файле, а директивой Order.

По умолчанию сначала выполняется директива Deny from, а затем Allow from. Если клиент упомянут в директиве Deny from, ему запрещается доступ при условии, что он не упомянут в Allow from. Если клиент не назван ни в одной из этих директив, ему доступ разрешается.

Порядок можно изменить, использовав директиву Order allow,deny. Это значит, что доступ клиенту, который указан в директиве Allow from разрешен, если только он не упомянут в Deny from. Если ни в одной из этих директив этот клиент не указан, доступ ему запрещается.

Директива Files

<Files name_file>

</Files>

Эта директива используется для организации доступа к файлу. Установки директивы Files отменяют установки директи вы <Directory>.

Пример: каталоге www содержит файл secret.html

<VirtualHost 127.0.0.2>

ServerName virthost2

ServerAdmin admin@virthost2

DocumentRoot “<disk:>/infocom/virthost2/www”

CustomLog “<disk:>/infocom/access.log” common

ErrorLog “<disk:>/infocom/error.log”

<Directory “<disk:>/infocom/virthost2/www”>

AuthType Basic

Auth Test

AuthGroupFile “<disk:>/infocom/security/groups”

AuthUserFile “<disk:>/infocom/security/users”

Require valid-user

#Require user anna user1

<Files secret.html>

Require user anna user1

#Require valid-user

</Files>

</Directory>

</VirtualHost>

При изменении прав доступа в файле httpd.conf каждый раз требуется перезапускать Apache. Для того, чтобы избежать перезапуска, можно поместить директивы, определяющие права доступа к каталогам и файлам непосредственно в каталог. Для определения имени файла с директивами используется директива AccessFileName.

Директива AccessFileName

AccessFileName file_name

Пример: AccessFileName htaccess

Если будут изменяться директивы в файле htaccess, то это не потребует перезапуска Apache.

Пример: использование файла htaccess

Файл httpd.conf

<VirtualHost 127.0.0.2>

ServerName virthost2

ServerAdmin admin@virthost2

DocumentRoot “<disk:>/infocom/virthost2/www”

CustomLog “<disk:>/infocom/access.log” common

ErrorLog “<disk:>/infocom/error.log”

<Directory “<disk:>/infocom/virthost2/www”>

AuthType Basic

Auth Test

AuthGroupFile “<disk:>/infocom/security/groups”

AuthUserFile “<disk:>/infocom/security/users”

Require valid-user

</Directory>

</VirtualHost>

Файл htaccess

<Files secret.html>

Require user anna user1

</Files>

В файл htaccess также можно помещать и директивы из блочной директивы <Directory>, но только без ее указания.

В том случае, если каталог не содержит файла index.html, Apache создает файл Index of/, который в общем случае выглядит не очень хорошо. Для изменения внешнего вида можно использовать улучшенную индексацию.

Директива IndexOptions

IndexOptions FancyIndexing

Данная директива позволяет применять расширенную индексацию.

Директива IndexIgnore

IndexIgnore file1 file2 …

Директива позволяет исключить файлы из списка. Несколько директив IndexIgnore

дополняют друг друга.

Пример: исключение из списка всех файлов с расширением jpg и родительского

каталога (например, из соображений безопасности).

<Directory …>

FancyIndexing on

IndexIgnore *.jpg ..

</Directory>

Директива AddIcon

Первый аргумент этой директивы – имя файла со значком, второй – тип файла, к которым значок следует добавить. Если в качестве второго аргумента использовать значение ^^DIRECTORY^^, то новый значок получит подкаталог.

Пример:

Alias “/icons” “<disk:>/program files/apache group/apache/icons”

AddIcon icons/first.gif *.html

AddIcon icons/second.gif ^^DIRECTORY^^

Директива AddDescription

Позволяет добавить описание для определенных файлов.

Пример:

AddDescription “Это файлы с HTML-документами” *.html

Директивы HeaderName и ReadmeName

Позволяют формировать верхний и нижний колонтитул индекса. Эти директивы имеют только один аргумент – имя файла. Для того, чтобы имена файлов, указанных в директивах HeaderName и ReadmeName не отображались в перечне, для них используется директива IndexIgnore.__

Контрольные вопросы:

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

2. Как выполнять код РНР в файлах HTML?

3. Для чего необходим запрет на отображение содержимого каталога при отсутствии индексного файла.

4. Для чего необходим файл .htaccess (с точкой в начале имени).

5. Какие особенности конфигурирования в Windows.

 

Задание к лабораторной работе:

Установить и настроить web-сервер. Проверить правильность настройки.

Создать два виртуальных сервера.

Расположить корневые каталоги документов серверов соответственно в <disk:>\infocom\virthost2\www и <disk:>\infocom\virthost3\www.

Файлы регистрации доступа и ошибок расположить в <disk:>\infocom\access.log и <disk:>\infocom\error.log. Файлы с описанием групп и пользователей расположить в <disk:>\infocom\security\groups и <disk:>\infocom\security\users.

В корневом каталоге документов одного из виртуальных серверов создать несколько каталогов и файлов. Определить различные права доступа к различным каталогам и файлам:

доступ разрешен всем;

доступ разрешен отдельным пользователям;

доступ разрешен одной группе пользователей;

доступ разрешен всем зарегистрированным пользователям;

доступ запрещен всем.

Перенести определение прав доступа к одному из каталогов и одному из файлов в файл htaccess, расположенный непосредственно в каталоге, для которого определяются права доступа.

В корневом каталоге документов другого виртуального сервера организовать расширенную индексацию.

 

Лабораторная работа №3