Студопедия — Лабораторная работа №12.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа №12.






 

HАИМЕНОВАНИЕ:Установка и настройка web-сервера Apache.

 

1.ЦЕЛЬ РАБОТЫ:

1.1. Познакомиться с сервером Apache, его установкой и настройкой.

 

2.ЛИТЕРАТУРА:

2.1. http://www.codenet.ru/webmast/apache/Apache-PHP-Perl-Mysql/ -Установка и настройка Web - сервера Apache, базы данных MySQL и интерпретаторов языков PHP и Perl

2.2. http://www.apache.org/ - Сайт для скачивания web-сервера Apache.

 

3.ПОДГОТОВКА К РАБОТЕ:

3.1. Изучить предложенную литературу.

3.2. Подготовить бланк отчёта.

 

4. ОСНОВНОЕ ОБОРУДОВАНИЕ:
4.1. IBM PC.

 

5. СОДЕРЖАНИЕ ОТЧЕТА:

5.1. Наименование и цель работы.

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

5.3. Описание выполненной практической работы на ПК.

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

 

6. КОНТРОЛЬНЫЕ ВОПРОСЫ:

6.1. Дайте определение web-сервер Apache.

6.2. Как установить сервер Apache?

6.3. Что еще нужно установить для наилучшей работы сервера?Зачем?

6.4. Что такое php, Active Perl, MySQL? Как устанавливать эти компоненты?

6.5. Как настраивать php, Active Perl, MySQL?

6.6. Почему лучше установить Active Perl, а не Perl?

6.7. Что такое SSI?

 

7. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

7.1. Установка Apache

7.1.1.Установите сам Веб-сервер Apache. Заходите на сайт www.apache.org, и скачайте программу: ссылка на файл должна выглядеть примерно так:

Apache 1.3.xx Win32 Binary (Self extracting)

Название файла выглядит примерно как apache_1.3.33-win32-x86-no_src.exe.

7.1.2. Откройте этот файл. Вы видите следующее окно:

 

 

Нажмите Next.

7.1.3. Появится окно с лицензионным соглашением.

Выберите пункт I accept the terms in the license agreement и жмите Next.

В следующем окне тоже жмите Next.

7.1.4.Теперь должно появиться окно:

 

 

7.1.5. Первое поле - название домена. Напишите mysite.ru

Второе поле - название сервера. Допустим, www.mysite.ru

Третье поле - e-mail адрес администратора. Напишите [email protected]

Примечание:

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

После установки, если захотите, можете переправить эти поля. Ниже выберите пункт Run as a service for Al Users.

Жмите Next.

 

 

7.1.7. В следующем окне выберите пункт Complete и нажмите Next.

Ставьте по умолчанию: C:\Program Files\Apache Group\

Жмите Next.

Нажмите Install, чтобы начать установку.

7.1.8. Если все прошло успешно, по окончанию инсталляции Вы увидите окно. Жмите Finish.

7.2. Установка php

Зайдите на сайт http://www.php.net/ и качаем оттуда ZIP-архив Windows Binaries (PHP5.x.x Zip package).

Не стоит качать "PHP 5.x.x installer" - так как там отсутствуют многие необходимые нам файлы!

Далее распаковываем архив в C:\php, нужно распаковать в C:\php:

7.3. Установка Active Perl 5.8.0

Аналогично с использованием сайта -www.activestate.com.

Подробно об установке этой версии можете прочитать тут http://poizon.net.ru/?s=4;f=5.

 

7.3.1 Мы скачали файл.

Он выглядит примерно, как ActivePerl-5.8.0.805-MSWin32-x86.msi - обычный Win - инсталлятор. Запускаем и видим окно:

 

Жмем Next.

7.3.2 Появится окно с лицензионным соглашением. Выберите пункт I accept the terms in the license agreement и жмите Next.

7.3.3 Установите на C:\usr.. Далее аналогично. Нажмите Install.

Каждый веб - мастер, пишущий серьезные проекты (а рано или поздно Вы начнете их писать) использует базы данных, а самой популярной, удобной и простой в использовании базой данных является, безусловно, MySQL. тут: http://www.mysql.com/

7.4. Настройка.

7.4.1. Настройка работы Apache

Основные настройки сервера храняться в файле httpd.conf, который находится по адресу c:\Program Files\Apache Group\Apache\conf\httpd.conf (если Вы, конечно, установили его туда как я описывал в первой части). Это обычный текстовый файл, открывайте его блокнотом.

7.4.2. Найдите строчку: DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs" и меняем ее на DocumentRoot "C:/www/html"

Не очень удобно делать так, чтобы все html - страницы Вашего сайта находились по адресу C:\Program Files\Apache Group\Apache\htdocs. Гораздо удобнее, когда все HTML - документы на Вашем сервере лежали бы в одной папке C:\www\html.

Обратите внимание, что в пути вместо стандартного для Win - систем обратного слэша "\" используется прямой - "/". Это объясняется тем, что Apache разрабатывался изначально под *nix - системы, а там везде вместо "\" используется "/".

7.4.3. Найдите строчку

ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"

и поменяйте ее на 2 следующие строчки:

ScriptAlias /cgi/ "C:/www/cgi/"

ScriptAlias /cgi-bin/ "C:/www/cgi/"

Мы делаем 2 вещи: первая, что все cgi - скрипты будут располагаться в папке c:\ www\cgi.

Делается это также исключительно для удобства. А вторая, что для каталога C:/www/cgi создается 2 псевдонима.

Таким образом, если будет указан путь http://localhost/cgi или http://localhost/cgi-bin, то на самом деле обращение будет идти к одной и той же папке c:\www\cgi

7.4.4. Найдите секцию <Directory "C:/Program Files/Apache Group/Apache/htdocs"> и замените ее содержимое на следующее:

<Directory "C:/www">

Options Indexes Includes

AllowOverride All

Allow from all

</Directory>

Мы задаем ряд настроек по умолчанию для нашего каталога c:\www и всех подкаталогов, которые в нем содержатся: автоматическую генерацию списка содержимого каталога при просмотре его в браузере, поддержку SSI, возможность использовать файлы.access для индивидуальной настройки каталогов.

7.4.5. Найдите строчку

#AddHandler cgi-script.cgi

стираем перед ней комментарий и добавляем.bat.exe

В результате строчка принимает вид:

AddHandler cgi-script.cgi.bat.exe

Тут мы указываем серверу, что файлы с расширениями.bat,.exe,.cgi надо рассматривать как cgi - модули

7.4.6. Найдите строчки

#AddType text/html.shtml

#AddHandler server-parsed.shtml

И замените их на

AddType text/html.shtml

AddHandler server-parsed.shtml.html.htm

Здесь мы указываем серверу, файлы с какими р будут обрабатываться как SSI.

Не забудьте сохранить изменения в файле httpd.conf

7.4.7. Общая настройка Apache закончена.

7.4.8. Нажмите Пуск -> Выполнить, введите команду: net start apache.

Если в адресной строке браузера Вы введете http://localhost, то высветится страничка index.html, расположенная в папке c:\www\html, а если ее там нет, то список файлов в этой папке.

7.5. Настройка связки Apache + PHP5

7.5.1 Скопируйте файл php5ts.dll из папки C:\php в папку C:\WINDOWS\SYSTEM32

7.5.2 Скопируйте файл php.ini-dist из папки C:\php в каталог C:\WINDOWS и переименуйте его в php.ini, откройте в блокноте, найдите переменные, указанные ниже и установите их значения, как написано ниже:

register_globals = off

magic_quotes_gpc = off

magic_quotes_runtime = off

error_reporting = E_ALL # - и именно так, никаких E_ALL & ~E_NOTICE и пр.!

display_errors = on

Примечание:

Если Вы начинающий программист на PHP, то советую Вам установить значение register_globals = on. Почти во всех руководствах по РНР пишут, что даные, полученные из формы, или переданные по ссылке, вот так: http://localhost/my_script.php?variable1=x&variable2=y автоматически становятся переменными PHP, $x и $y. Но эта информация немного устарела.

Отрывок с сайта http://phpfaq.ru-Приложение.

7.6. Настройка PHP, как модуля Apache:

7.6.1.В файл конфигурации Apache httpd.conf добавляем:

LoadModule php5_module C:/php/php5apache.dll

(хотя может быть и LoadModule php5_module C:/php/sapi/php5apache.dll. Зависит от Вашей версии PHP. У меня 5.0.3 и этот файл лежит, как в первом случае)

После последней директивы AddModule добавляем строку

AddModule mod_php5.c

Внутри блока <IfModule mod_mime.c> добавляем строку

AddType application/x-httpd-php.php

В строке DirectoryIndex надо прописать еще index.php:

DirectoryIndex index.php index.html

7.6.2 Настройка PHP, как CGI - бинарника:

В файл конфигурации Apache httpd.conf добавляем:

Внутри блока <IfModule mod_mime.c> добавляем строку:

AddType application/x-httpd-php.php

Сразу после нее добавляем 2 строки:

ScriptAlias /_php_/ "c:/php/"

Action application/x-httpd-php "/_php_/php-cgi.exe"

Примечание:

Если у Вас стоит четвертая версия PHP, то вместо последней строки надо написать:

Action application/x-httpd-php "/php/php.exe"

В строке DirectoryIndex надо прописать еще index.php:

DirectoryIndex index.php index.html

Примечание:

Я советую Вам устанавливать PHP как модуль Apache. В противном случае, Вы лишитесь некоторых функций в PHP, например очень полезной полезной функции virtual(). Да и вообще, на мой взгляд, PHP, установленный как модуль Apache работает стабильнее и быстрее.

7.7. Проверьте работу. Создайте файл index.php в папке C:\www\html, а в нем напишите следующие строчки:

<?

phpinfo();

?>

Теперь если Вы, написав в адресной строке браузера http://localhost/index.php, увидите страничку с информацией о версии PHP, установленной на Ваш компьютере, то значит, что все работает, связка Apache+PHP настроена правильно.

7.8. Проверьте работу. Напишите следующий простенький скрипт test-perl.cgi на Perl:

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "It works!<br>\n";

Сохраните его в папке C:\www\cgi. В адресной строке пишем

http://localhost/cgi-bin/testperl.cgi

Если видите надпись "It works!", значит действительно It works;).

 

Работу составил преподаватель Ходотова Е.А.

 

ПРИЛОЖЕНИЕ

 

SSI (Server Side Include) - технология, которая позволяет включать в WEB - страницу "внешние" файлы (будь то другая html - страница или скрипт, находящийся в папке cgi).

 

Отрывок с сайта http://phpfaq.ru-"Дело в том, что в целях безопасности, начиная с версии 4.1, РНР настраивается по умолчанию так, чтобы переданные значения не назначались переменным.

Получить же переданное значение можно обратившись к соответствующему массиву.

Например:

Если передаем методом GET, обратившись к скрипту по ссылке вида

script.php?var=value

или отправив форму, указав в ней method="GET",

то все переменные содержатся в массиве $_GET.

echo $_GET['var']; напечатает "value".

Если получаем данные из формы, отправленной методом POST, то все поля этой формы содержатся в массиве $_POST. Допустим, в форме был элемент

<input type="hidden" name="var" value="1">,

то в скрипте, который указан в action формы, можно написать echo $_POST['var']; и будет выведена 1.

Поэтому, если вы уверены, что переменная есть, но вы не можете ее найти - ищите ее в суперглобальных массивах.

Подробнее о них можно почитать на русском языке в официальной документацииhttp://ru2.php.net/variables.predefined

То же касается и серверных переменных, таких, как $REMOTE_ADDR, $PHP_SELF. Получить их можно, обратившись к массивам $_SERVER, $_ENV или функцией getenv - getenv('HTTP_REFERER');

Переменные, зарегистрированные в сессии, следует искать в массиве $_SESSION.

Данные cookie содержатся в массиве $_COOKIE, сведения о закачанных файлах - в $_FILES

Переменные окружения - в $_ENV, а так же, существует массив $_REQUEST, в котором собраны данные из GET, POST и cookie.

Важно! Весьма в поисках переменных помогает одна их главных функций PHP - phpinfo()

ее следует применять всякий раз, когда вы "потеряли" переменную, вызовите phpinfo(32); в скрипте, в котором не работает авторизация, в скрипте, который принимает файл при аплоаде - и все найдется!

За назначение переменных отвечает параметр register_globals в php.ini.

Если register_globals=on, то все полученные скриптом данные будут назначены соответствующим переменным.

Разработчики PHP настоятельно рекомендуют выключать register_globals (такой режим даже введен по умолчанию во всех новых версиях) и пользоваться данными, полученными от пользователя, только обращаясь к соответствуюим массивам.

Это сделано потому, что при register_globals = on легко взломать небрежно написаный скрипт.

К примеру, функция авторизации выставляет переменную $admin=1, а если авторизации не было, то не делает ничего. В таком скрипте при register_globals=on очень легко стать админом, просто обратившись к нему script.php?admin=1

Огоромное количество сайтов было взломано таким образом.

К тому же, register_globals = off заставляет пользоваться суперглобальнми массивами ($_GET, $_POST и т.д.), что помогает избежать путаницы. ОЧЕНЬ много людей, записав некую переменную в сессию, а потом пытаясь изменить ее значение, передавая ее скрипту методом GET, долго не могли понять, почему у них ничего не работает? Поэтому

очень важно при работе с сессиями, при любых настройках (и особенно - при register_globals=on!) работать только с массивом $_SESSION, как это описано в соответствующем разделе.

То есть, register_globals=off - на самом деле не цель, а средство. Побудительный мотив для программиста писать защищенные скрипты и избегать путаницы.

Если вы хотите написать скрипт, не зависящий от настройки register_globals, и при этом защищенный - переменные надо объявлять перед использованием. На это нацелена еще одна инициатива разработчиков PHP - написание программ при уровне отображения ошибок (error_reporting) равном E_ALL, при котором об использовании необъявленных переменных выдаются предупреждения.

Именно объявление ВСЕХ переменных, используемых в скрипте и являетс гарантией от взлома. Если вы пишете программу для распространения, то гарантией ее безопасности является только объявление переменных.

Если же нет возможности переделать готовый скрипт, но его надо заставить работать при register_globals=off, то надо помнить, что во-первых, вы делаете потенциальную дыру у себя на сайте, а во-вторых, для этого можно воспользоваться функциями extract и import_request_variables

НО: Бездумное использование этих функций является таким же опасным!

Если вы хотите адаптировать старый скрипт под новые правила, то выполните приведенный код именно в таком порядке!

import_request_variables("GPC");

extract($_SERVER);

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

ВАЖНО!!! Этот код должен вызываться как можно раньше в скрипте. ДО любого кода и присвоения переменных.

Поскольку он являет собой дыру похлеще register_globals=on!

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

Последние версии PHP сообщают вам об этом нотайсом при использовании import_request_variables.

И то правда - три года прошло с тех пор, как введены новые правила. Пора бы уже и научиться писать скрипты правильно.

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

Все то же самое можно прочесть и в документации: http://www.php.net/manual/ru/security.globals.php"







Дата добавления: 2015-10-15; просмотров: 478. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

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

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия