Для разработки веб-сайта по промышленному альпинизму необходимы следующие дополнительные инструментальные программные средства:
— язык программирования PHP5 и его расширения,
— локальный сервер nginx,
— система управления базами данных MySQL.
В качестве программы для быстрого развертывания на своем компьютере локального сервера, будем использовать локальный сервер nginx, с помощью которого не надо устанавливать отдельно сервер, систему управления базами данных MySQL и админисраторскую панель для баз данных phpMyAdmin.
Программная оболочка - это специально разработанная программа для создания на персональном компьютере локального сервера, который в свою очередь позволяет создавать Web-сайты без необходимости выхода в Internet.
У nginx есть один главный и несколько рабочих процессов. Основная задача главного процесса — чтение и проверка конфигурации и управление рабочими процессами. Рабочие процессы выполняют фактическую обработку запросов. nginx использует модель, основанную на событиях, и зависящие от операционной системы механизмы для эффективного распределения запросов между рабочими процессами. Количество рабочих процессов задаётся в конфигурационном файле и может быть фиксированным для данной конфигурации или автоматически устанавливаться равным числу доступных процессорных ядер.
Как работают nginx и его модули, определяется в конфигурационном файле. По умолчанию, конфигурационный файл называется nginx.conf и расположен в каталоге /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx..
Использование локального сервера nginx вызвано необходимостью возможности предварительного просмотра и тестирования разработанного web-сайта до размещения его на хостинге [8, с. 12].
PHP (PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
PHP обладает множеством преимуществ по сравнению с этими продуктами, в числе которых:
- Высокая производительность; РНР исключительно эффективен. Используя единственный недорогой сервер, можно обслуживать миллионы обращений в день.
- Наличие интерфейсов ко многим различным системам баз данных; Синтаксис РНР основывается на других языках программирования, в первую очередь на С и Perl. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению/освобождению памяти.
- Переместимость; Пакет РНР можно использовать под управлением многих различных операционных систем.
- Доступность исходного кода;
PHP является препроцессором HTML, то есть его работа построена по следующей схеме (рисунок 4):
Рисунок 4 — Схема работы PHP
До того, как сервер «отдаст» файл браузеру, его просматривает препроцессор-интерпретатор. Перед отправкой страницы PHP-код проигрывается на сервере и браузеру выдается результат в виде опять таки HTML-страницы, которая может сильно отличаться от той, что хранится на сервере.
PHP называется языком серверных скриптовв отличие от JavaScript/Jscript/VBScript, которые являются языками клиентских скриптов. Это значит, что PHP-скрипт выполняется на сервере, а клиенту передается результат его работы, тогда как в JavaScript-код полностью передается на клиентскую машину и только там выполняется браузером.
Использование наиболее эффективного языка написания скриптов бессмысленно, если выбрана низкопроизводительная СУБД. Поэтому самым оптимальным является выбор MySQL, обладающей высокой производительностью и низкой стоимостью [7, с. 20].
— MySQL – это система управления реляционными базами данных.
Реляционная база данных хранит информацию в отдельных таблицах, а не в одном большом хранилище, благодаря чему достигается высокая производительность и гибкость. Часть «SQL» слова «MySQL» обозначает «Structured Query Language» («Язык структурированных запросов»). SQL – наиболее общий стандартизованный язык доступа к базам данных; он соответствует стандарту ANSI/ISO SQL.
— MySQL – это система с открытым кодом. Открытость исходного кода означает, что любой желающий имеет возможность использовать и модифицировать это программное обеспечение MySQL можно из Internet, причем совершенно бесплатно.
— Сервер баз данных MySQL – очень быстрый, надежный и простой в эксплуатации сервер. Сервер MySQL включает в себя практичный набор средств, разработанных в тесной кооперации с сообществом пользователей.
Несмотря на то, что MySQL пребывает в непрекращающемся процессе разработки, на сегодняшний день он предоставляет богатый набор удобных в эксплуатации средств и функций.
— Сервер MySQL работает в клиент-серверных и встроенных системах.
— Доступен огромный объем программного обеспечения MySQL, написанного независимыми разработчиками [7, с. 21].
Использование локального сервера nginx вызвано необходимостью возможности предварительного просмотра и тестирования разработанного web-сайта до размещения его на хостинге.
nginx HTTP-сервер — это так называемый свободный web-сервер, представляющий собой кросплатформенное программное обеспечение. nginx поддерживает следующие операционные системы: BSD, Microsoft Windows, Linux, Mac OS, BeOS, Novell NetWare.
— Надежность и гибкость конфигурации – главные достоинства nginx. Благодаря этому программному обеспечению можно осуществлять подключение внешних модулей, использующихся для предоставления данных, модифицировать сообщения об ошибках, применять СУБД для аутентификации пользователей.
— nginx оснащен встроенным механизмом виртуальных хостов. Благодаря этому на одном IP-адресе можно обслуживать большое количество web-проектов, при этом отображая для каждого из них свое содержимое.
— Взаимосвязь с языками программирования и программным обеспечением. Есть большое количество модулей, добавляющих к nginx поддержку систем разработки и многих языков программирования [7, с. 23].
В качестве html-редактора был выбран Notepad++, который является бесплатным редактором текстовых файлов с возможностью поддержки синтаксиса многих популярных языков программирования. Среди лучших функциональных возможностей Notepad++ можно выделить подсветку текста и возможность свернуть блоки кода, согласно синтаксису языка программирования. Пользователь также сможет самостоятельно определить синтаксис языка программирования и сделать настройку режима подсветки.
Другие возможности Notepad++:
— Авто-завершение набираемого слова.
— Возможность создания собственного списка API функций.
— Поддержка регулярных выражений Поиска/Замены.
— Полная поддержка перетягивания фрагментов текста.
— Динамическое изменение окон просмотра.
— Автоматическое определение состояния файла.
— Увеличение и уменьшение (масштабирование).
— Поддержка большого количества языков.
— Листинг программ можно печатать в цвете.
— Заметки о документе.
— Выделение скобок при редактировании текста.
— Запись макроса и его выполнение [7, с. 25].
Все перечисленные инструментальные средства имеют свободную лицензию и распространяются бесплатно, что позволяет избежать дополнительных затрат на разработку.