Создание сайта дистанционного тестирования клиентов - Программирование, компьютеры и кибернетика дипломная работа

Главная
Программирование, компьютеры и кибернетика
Создание сайта дистанционного тестирования клиентов
Язык разработки PHP: применение, синтаксис, типы данных, суперглобальные массивы, особенности интерпретатора. Apache-HTTP сервер: архитектура, механизм виртуальных хостов, функциональные возможности. Разработка сайта системы диагностики. Бюджет проекта.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В настоящее время сеть Интернет является не только площадкой для различного рода развлечение, но и площадкой для ведения бизнеса и заработка в сети. Доступность в сеть Интернет постоянно растёт, в нашей стране уже далеко не исключение из случая, что компьютер подключён к всемирной сети интернет. Многие люди имеют подключение к сети даже на домашнем персональном компьютере. Большинство современных организаций имеют своё представительство в сети Интернет. Многие делают простые сайты так называемые сайты-визитки, для пополнения клиентской базы, а некоторые разворачивают настоящие торговые магазины в сети. Такой интерес обусловлен всеобщей заинтересованностью людей в современных технологиях, так как Интернет это быстрый, дешёвый и удобный способ ведения бизнеса в современном обществе. На сайтах фирм выкладывается информация о деятельности фирмы, контакты связи с ней и очень часто делают представление предлагаемых товаров и услуг. В сети процветает реклама, раскрутить фирму гораздо дешевле и быстрее можно в сети Интернет, нежели другими общепринятыми способами. В настоящее время сайт организации это как лицо фирмы, на них сделан красивый и удобный интерфейс, после посещения этих сайтов у пользователя складывается первое мнение о фирме.
При создании сайта организации в сети необходим комплексный подход. Провести анализ нынешнего состояния сайтов конкурентов, составить техническое задание, выбрать метод создания, провести финансовый анализ затрат и посчитать эффективность от создания сайта.
Компания «Информ-С», где я проходил практику, предоставила мне всю нужную информацию для создания своей разработки. Они оказывали мне содействие и помощь в написании интернет ресурса.
Цели: Создание сайта дистанционного тестирования клиентов, с дальнейшим формированием отчёта о прохождении тестирования.
- изучить язык Веб-программирования PHP;
- изучить язык запросов к базе данных (MySQL) в контексте PHP;
- проанализировать современное состояние сайтов и сайто-строение;
- написать функциональную часть сайта;
- написать код сайта на PHP с применением таблиц баз данных (MySQL);
- описать экономическую часть проекта.
Материал в дипломном проекте расположен в той последовательности как происходило изучение и обработка. В первой главе приведён анализ программных продуктов, которые были использованы при разработке и написании сайта. Во второй главе описан исходный код PHP с пояснениями, и структура самого сайта. В третей главе описано обоснование экономической эффективности от проделанной работы. Выводы по разработке интернет ресурса находятся в заключительной части.
В процессе разработки интернет ресурса были использованы бесплатные инструменты создания подобного рода интернет ресурсов. В качестве интернет сервера был выбран Apache, в качестве языка написания страниц PHP, в качестве СУБД MySQL. В связке эти три программных компонента дают огромные возможности для создания интернет ресурсов, где присутствует большая гибкость написания кода, простота и лёгкость понимания. Не последнюю роль в этом играет также и бесплатность, присущая всем OpenSource-овым проектам, к числу которых принадлежат все перечисенные продукты. Количество сайтов на связке PHP+Apache+MySQL уже исчисляется миллионами и постоянно растёт, откуда можно сделать вывод о возрастающей актуальности технологии в ближайшем будущем.
1. А нализ программного обеспечения
PHP (англ. PHP: Hypertext Preprocessor -- «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) -- «Инструменты для создания персональных веб-страниц») -- скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
В области программирования для Сети 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-заголовков;
- работа с локальными и удалёнными файлами, сокетами.
- обработка файлов, загружаемых на сервер;
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.
Входит в LAMP -- распространённый набор программного обеспечения для создания веб-сайтов (Linux, Apache, MySQL, PHP).
В 1994 году датский программист Расмус Лердорф создал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl -- интерпретатора скриптов -- перестало хватать, и Лердорф разработал с использованием языка C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter -- «Личная Домашняя Страница / Интерпретатор форм»).
В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C -- PHP/FI 2.0. Её использовали около 1 % (приблизительно 50 тысяч) всех интернет-доменов мира.
Версия PHP 3.0 подверглась значительной переработке, определившей современный облик и стиль языка программирования. В 1997 году два израильских программиста, Энди Гутманс и Зээв Сураски, полностью переписали код интерпретатора. PHP 3.0 был официально выпущен в июне 1998 года.
Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра дополнительными модулями. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Большое количество разработчиков привело к быстрому развитию языка и стремительному росту его популярности. С этой версии акроним php расшифровывается как «PHP: hypertext Preprocessor», вместо устаревшего «Personal Home Page».
К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зээв Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Новый движок, названный Zend Engine, успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.
Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend (Zend Engine 2), что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. В последующих версиях также были введены пространства имён, замыкания и целый ряд достаточно серьёзных изменений, количественно и качественно сравнимых с теми, которые появились при переходе на PHP 5.0.
Шестая версия PHP находится в стадии разработки с октября 2006 года. В ней уже сделано множество нововведений, как, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, magic_quotes_gpc и register_globals из конфигурационного файла php.ini. Также много внимания уделено поддержке Юникода.
Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.
Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.
Простейшая программа Hello world на PHP выглядит следующим образом:
PHP исполняет код, находящийся внутри ограничителей, таких как . Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ, например, так:
Помимо ограничителей , допускается использование дополнительных вариантов, таких как и . Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> (конструкции и <% %> могут быть выключены в конфигурационном файле php.ini).
Имена переменных начинаются с символа $, тип переменной объявлять не нужно. Имена переменных, функций и классов чувствительны к регистру. Константы также чувствительны к регистру. Переменные обрабатываются в строках, заключённых в апострофы или двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).
PHP рассматривает переход на новую строку как пробел, так же как HTML и другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев, после объявления конструкции if/else и циклов.
PHP поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).
PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами зачастую осуществляются неявно без дополнительных усилий (впрочем, PHP предоставляет широкие возможности и для явного преобразования типов).
К скалярным типам данных относятся:
- вещественный тип данных (float, double);
- mixed один или несколько необязательных параметров;
- number число (integer либо float);
- callback (string или анонимная функция);
Диапазон целых чисел (integer) в PHP зависит от платформы (обычно, это диапазон 32-битных знаковых целых чисел, то есть, от ?2 147 483 648 до 2 147 483 647). Числа можно задавать в десятичной, восьмеричной и шестнадцатеричной системах счисления. Диапазон вещественных чисел (double), также, зависит от платформы (для 32-битной архитектуры диапазон позволяет оперировать числами от ±1.7Ч10?308 до ±1.7Ч10+308).
PHP предоставляет разработчикам логический тип (boolean), способный принимать только два значения TRUE («истина») и FALSE («ложь»). При преобразовании в логический тип число 0, пустую строку, ноль в строке «0», NULL и пустой массив считаются равными FALSE. Все остальные значения автоматически преобразуются в TRUE.
Специальный тип NULL предназначен для переменных без определённого значения. Единственным значением данного типа является константа NULL. Тип NULL принимают неинициализированные переменные, переменные инициализированные константой NULL, а также переменные, удалённые при помощи конструкции unset().
Ссылки на внешние ресурсы имеют тип «ресурс» (resource). Переменные данного типа, как правило, представляют собой дескриптор, позволяющий управлять внешними объектами, такими как файлы, динамические изображения, результирующие таблицы базы данных и т. п.
Массивы (array) поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Порядок элементов и их ключей сохраняется. Не совсем корректно называть php-массивы массивами, на самом деле это, скорее всего, упорядоченный хеш. Возможно неожиданное поведение при использование цикла for со счетчиком вместо foreach. Так, например, сортируя массив с численными индексами функциями из стандартной библиотеки, сортируются и ключи тоже.
Указатель на функцию в PHP может быть представлен замыканием или псевдотипом callback. Замыкание доступно с версии 5.3 и в коде выглядит как простое определение функции, в которую явно можно утянуть значения из контекста, например:
function($args..$argsN) use($ctxVar,$ctxVar1) { definition ; }
callback тип может быть представлен:
- строкой (интерпретируется как название функции);
- массивом где нулевой и первый элемент строки (интерпретируется как название статичной функции в классе);
- массивом где нулевой элемент объект, а первый строка (интерпретируется как метод у объекта).
Суперглобальными массивами (англ. Superglobal arrays) в PHP называются предопределённые массивы, имеющие глобальную область видимости без использования директивы global. Большая часть этих массивов содержит входные данные запроса пользователя (параметры GET-запроса, поля форм при посылке методом POST, куки и т. п.).
Все суперглобальные массивы, кроме $GLOBALS и $_REQUEST, имеют устаревшие аналоги с длинными именами, которые доступны вплоть до пятой версии PHP (в шестой версии планируется их исключение). Таким образом, обращения $_GET['year'] и $HTTP_GET_VARS['year'] идентичны (за исключением области видимости: массивы с «длинными» именами не являются суперглобальными). Cуперглобальные массивы:
- $GLOBALS - Массив всех глобальных переменных (в том числе и пользовательских);
- $_SERVER - Содержит переменные окружения, которые операционная система передаёт серверу;
- $_ENV - Текущие переменные среды (англ. Environment variables). Их набор специфичен для платформы, на которой выполняется скрипт;
- $_GET - Содержит параметры GET-запроса, переданные в URI после знака вопроса «?»;
- $_POST - Ассоциативный массив значений полей HTML-формы при отправке методом POST. Индексы элементов соответствуют значению атрибута name элементов управления HTML-формы;
- $_FILES - Ассоциативный массив со сведениями об отправленных методом POST файлах. Каждый элемент имеет индекс, идентичный значению атрибута «name» в форме, и, в свою очередь, также является массивом со следующими элементами:
['name'] -- исходное имя файла на компьютере пользователя;
['type'] -- указанный агентом пользователя MIME-тип файла. PHP не проверяет его, и поэтому нет никаких гарантий, что указанный тип соответствует действительности;
['tmp_name'] -- полный путь к файлу во временной папке. Файл необходимо переместить оттуда функцией move_uploaded_file. Загруженные файлы из временной папки PHP удаляет самостоятельно;
['error'] -- код ошибки. Если файл удачно загрузился, то этот элемент будет равен 0 (UPLOAD_ERR_OK);
- $_COOKIE - Ассоциативный массив с переданными агентом пользователя значениями куки;
- $_REQUEST - Содержит элементы из массивов $_GET, $_POST, $_COOKIE. С версии PHP 4.1 включает $_FILES;
- $_SESSION (уст. $HTTP_SESSION_VARS) - Содержит данные сессии.
PHP-скрипты обычно обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:
1) лексический анализ исходного кода и генерация лексем;
2) интаксический анализ полученных лексем;
4) выполнение байт-кода интерпретатором (без создания исполняемого файла).
Для увеличения быстродействия приложений, возможно, использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1--3, что в общем случае ведёт к значительному ускорению работы. Наибольшая эффективность акселератора достигается на скриптах с большим количеством исходного кода, содержащих небольшое количество операций, ресурсоёмких при выполнении, даже, считанного количества раз (например таких, как масштабирование изображений).
Важной особенностью является то, что разработчику нет необходимости заботиться о распределении и освобождении памяти. Ядро PHP реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта.
Интерпретатор состоит из ядра и подключаемых модулей, «расширений», представляющих собой динамические библиотеки. Расширения позволяют дополнить базовые возможности языка, предоставляя возможности для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и тому подобным. Любой желающий может разработать своё собственное расширение и подключить его. Существует огромное количество расширений, как стандартных, так и созданных сторонними компаниями и энтузиастами, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Множество расширений доступно в репозитории PECL.
Интерпретатор PHP имеет специальный конфигурационный файл -- php.ini, содержащий множество настроек, изменение которых влияет на поведение интерпретатора. Имеется возможность отключить использование ряда функций, изменить ограничения на используемую скриптом оперативную память, время выполнения, объём загружаемых файлов, настроить журналирование ошибок, работу с сессиями и почтовыми сервисами, подключить дополнительные расширения, а также многое другое.
Существует несколько способов использования интерпретатора PHP:
1) В качестве модуля к веб-серверу посредством SAPI или ISAPI (например, для Apache модуль mod_php). Веб-сервер запускается с загруженным модулем и при обращении к php-скрипту он выполняется в окружении процесса веб-сервера. Это наиболее распространённый метод использования PHP в силу следующих причин:
- он наиболее удобен для отладки, так как ошибки PHP выводятся на экран (если данный режим включен в настройках), тогда как в режиме CGI ошибка приводит к генерации HTTP-кода 500 и дополнительную информацию необходимо искать в логах веб-сервера;
- имеется возможность менять некоторые настройки PHP «на лету» с помощью файла .htaccess, без перезагрузки веб-сервера;
- в режиме CGI нет возможности воспользоваться HTTP-аутентификацией.
- обладает более высокой скоростью работы.
2) В качестве CGI. В этом случае, при вызове скрипта веб-сервер вызывает /usr/bin/php-cgi /path/to/script.php. При этом создаётся новый процесс и скрипт выполняется в окружении php-cgi, которое, в зависимости от настроек, может сильно отличаться от окружения процесса веб-сервера. Более современным вариантом является FastCGI. Несмотря на то, что препроцессор PHP все равно будет перезапускаться при каждом запросе, преимуществом данного варианта перед предыдущим является более высокая степень безопасности, потому как PHP работает как отдельное приложение со своими правами.
3) В качестве скрипта командной строки, являющегося исполняемым файлом, который вызывается пользователем из командной строки; скрипт выполняется в окружении вызвавшего пользователя. В этом случае возможно использование PHP для создания клиентских GUI-приложений и решения административных задач в операционных системах UNIX, Linux, Microsoft Windows, Mac OS X и AmigaOS. Однако, в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript
Программа phpMyAdmin является одним из самых распространенных средств для администрирования, управления и каждодневной работы с базами данных MySQL. Практически на каждом хостинге, где установлена поддержка этой СУБД, в качестве панели управления предлагают phpMyAdmin.
phpMyAdmin - это набор скриптов, написанных на РНР, который предоставляет практически все необходимые функции по работе с базами данных MySQL. В дополнение к возможностям самого сервера MySQL, он предоставляет дополнительные "фичи", которые позволяют более эффективно и легко работать с данными.
Администраторы могут легко создавать аккаунты для пользователей, назначать им привилегии, создавать и настраивать базы данных. Причем, и пользователи, и администраторы могут использовать один и тот же скрипт - просто у пользователя, не обладающего необходимым уровнем доступа, не будет некоторых функций - например, выбора сервера БД, доступа к служебным базам и базам других пользователей и т.д. Но вся функциональность в рамках созданной для него базы полностью доступна.
Разработчики получают полный контроль над своим сервером, над всеми базами и таблицами, возможность интерактивно исполнять SQL-запросы и даже начальные функции отладки неверных запросов. Конечно, до отладчика из пакета MySQL Query Browser phpMyAdmin еще очень далеко, но это ведь совершенно различные весовые категории.
phpMyAdmin имеет встроенные средства для проведения текущих работ с базами и таблицами - обслуживание, проверка и починка испорченных таблиц, резервирование и восстановление из архивов, экспорт данных из таблиц, как в формате SQL, так и в более специфических, например LaTeX или PDF. Для уменьшения объема файл с данными можно сразу же на сервере сжать архиватором - это очень полезно для создания на своей машине копии из удаленной базы на сайте.
Установка пакета очень проста, необходимо лишь указать данные для доступа к серверу MySQL - логин, пароль и имя хоста. После установки появится еще одна служебная база, в дополнение к базе самой СУБД - phpmyadmin. В этой базе программа хранит свои настройки и другие необходимые ей данные.
Рисунок 1.1 - Интерфейс «phpMyAdmin»
Интерфейс программы состоит из двух вертикальных фреймов, в первом из них перечислены доступные базы (если вы администратор), или же сразу таблицы вашей текущей базы данных, если вы не имеете доступа к другим БД. Выбрав необходимую таблицу, вы можете перейти в окно просмотра ее параметров и настроек. Страница загружается в основной фрейм, так что вся информация всегда находится перед глазами в одном окне браузера.
В основном окне присутствует ряд вкладок вверху страницы, для перехода между основными операциями над таблицей, остальные же функции доступны через ссылки, которые теперь чаще всего обозначаются пиктограммами, что позволило получить очень компактный интерфейс.
Программа позволяет выполнять любые SQL-запросы над базами, причем это можно делать как из специального, отдельного, окна запросов, так и для каждой таблицы отдельно. На наиболее частые запросы можно делать специальные закладки и в последствии получить доступ к ним по одному нажатию на ссылку.
Рисунок 1.2 - Обслуживание таблицы в phpMyAdmin
Очень интересная возможность - после выполнения запроса программа показывает не только детальную информацию о нем (время обработки, количество затронутых рядов), но и предлагает показать расширенную информацию о использованных данных при построении запроса (индексах и прочее, что может быть полезно при построении сложных запросов, отладке и ручной оптимизации). Еще одна функция позволяет по введенному запросу автоматически строить код на PHP. Хотя результирующий код очень прост - всего лишь переменная $sql, которая содержит код запроса, оптимизированный под синтаксис PHP, но это очень полезная функция, особенно если вы сначала отлаживаете сложный запрос через интерфейс phpMyAdmin-а, а потом, убедившись в корректной выдаче результатов, хотите перенести запрос в свой скрипт.
Хотя большинство запросов надо прямо вводить в виде корректных SQL-выражений, но для операции поиска данных существует специальный удобный интерфейс. Для этого есть специальная вкладка "Искать", переход по которой открывает страницу, где поля для поиска представлены в виде формы, заполняя которую можно, не особо вдаваясь в тонкости синтаксиса конкретных выражений, создать довольно таки сложный запрос (имеется ввиду, запрос SELECT). Допустимые поля, варианты сравнения и сортировки результатов - все можно задать через выпадающие списки и меню, а дополнительные условия поиска можно указать в специальных текстовых полях. Хотя такой построитель выражений совсем не отменяет знания особенностей работы БД и SQL, он существенно помогает, когда надо быстро построить специфический поисковый запрос.
Рисунок 1.3 - Операция поиска по таблицам
Хотя большинство запросов надо прямо вводить в виде корректных SQL-выражений, но для операции поиска данных существует специальный удобный интерфейс. Для этого есть специальная вкладка "Искать", переход по которой открывает страницу, где поля для поиска представлены в виде формы, заполняя которую можно, не особо вдаваясь в тонкости синтаксиса конкретных выражений, создать довольно таки сложный запрос (имеется ввиду, запрос SELECT). Допустимые поля, варианты сравнения и сортировки результатов - все можно задать через выпадающие списки и меню, а дополнительные условия поиска можно указать в специальных текстовых полях. Хотя такой построитель выражений совсем не отменяет знания особенностей работы БД и SQL, он существенно помогает, когда надо быстро построить специфический поисковый запрос.
phpMyAdmin позволяет сделать практически все, что необходимо обычному администратору, разработчику или пользователю - и сделать это без необходимости установки какого-либо ПО, из любой точки мира, лишь бы был Интернет.
Apache HTTP-сервер -- свободный веб-сервер. Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.
Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Входит в LAMP -- распространённый набор программного обеспечения для создания веб-сайтов (Linux, Apache, MySQL, PHP).
Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (англ. «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х сервер был переписан заново и теперь не содержит кода NCSA, но имя осталось. На данный момент разработка ведётся в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности.
Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.
С апреля 1996 и до настоящего времени является самым популярным HTTP-сервером в Интернете. По статистике Netcraft, в августе 2007 года он работал на 51 % всех веб-серверов, в мае 2009 года -- на 46 %. По данным Netcraft на январь 2011 года, более 160 миллионов сайтов обслуживаются веб-сервером Apache, что составляет 59 % от общего числа веб-сайтов.
Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.
Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена.
Ядро Apache полностью написано на языке программирования C.
Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:
- Конфигурация сервера (httpd.conf);
- Конфигурация виртуального хоста (httpd.conf c версии 2.2 extra/httpd-vhosts.conf);
- Конфигурация уровня директории (.htaccess).
Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры.
Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).
Помимо этого, параметры могут быть заданы через ключи командной строки.
Apache HTTP Server поддерживает модульность. Существует более 500 модулей[6], выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество -- отдельными open source-разработчиками.
Модули могут быть, как включены в состав сервера в момент компиляции, так и загружены динамически, через директивы конфигурационного файла.
В модулях реализуются такие вещи, как:
- Поддержка языков программирования;
- Исправление ошибок или модификация основных функций;
Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.
Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.
Также, существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.
Интеграция с другим ПО и языками программирования
Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.
Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, sh, Java.
Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:
- Ограничение доступа к определённым директория
Создание сайта дистанционного тестирования клиентов дипломная работа. Программирование, компьютеры и кибернетика.
Сочинение по теме Образ «маленького человека» в повести Н. В. Гоголя «Шинель»
Реферат: Анализ качества гостиничных услуг на примере гостиницы Калининград
Установление Личности Петра Гринева Сочинение
Оценка Эссе Английский Егэ
Курсовая По Психологии
Курсовая работа: Спартанское воспитание. Скачать бесплатно и без регистрации
Ботанический Сад Реферат
Сочинение Тверь В Годы Войны 1941 1945
Мертвые Языки Реферат
Реферат: Базовые и организационно-правовые формы предпринимательской деятельности
Реферат: Трехфазные цепи
Дипломная работа по теме Концепт 'Брат' в русской языковой картине мира
Контрольная работа по теме Процессор MS Word
Реферат На Тему Теория Власти И Властных Отношений
Дипломная работа: Стратегия совершенствования информационной сферы в предпринимательстве
Реферат: Правовой режим недвижимых вещей
Лучшие Презентации Дипломных Работ
Реферат: Светлая личность
Контрольная Работа На Тему Региональные Особенности Развития Художественных Промыслов
Курсовая работа по теме Проектирование индуктивной трёхточки на транзисторе с индуктированным n-каналом
Управление качеством - Менеджмент и трудовые отношения контрольная работа
Технології приготування салатів і вінегретів - Кулинария и продукты питания курсовая работа
Проведение горноразведочной выработки - Геология, гидрология и геодезия курсовая работа