Дата и время в HTTP. Форматы даты/времени
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы…
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Веб-программирование и ее раздел PHP. В данной записи мы установим PHP как модуль сервера Apache на компьютер под управлением Windows 10. Отмечу сразу, что инструкция по установки серверной связки PHP 5.6 + Apache 2.4 подойдет всем пользователям, у которых установлена Windows 7 и выше, к сожалению, на Windows XP и Vista эта инструкция не сработает. Также хочу сказать, что данную запись не стоит рассматривать только как инструкцию по установки PHP + Apache на Windows.
Поскольку перед установкой серверной связки в виде PHP и Apache мы поговорим о том, как вообще работают серверные технологии и за счет чего мы можем взаимодействовать с посетителями наших сайтов. Поскольку мы собрались устанавливать PHP как модуль сервера Apache, то в этой записи мы в общих чертах разберемся с архитектурой веб-сервера Apache и, собственно, поймем что значит установить PHP как модуль Apache и в чем особенность такой работы этих двух приложения. И лишь в завершении этой записи вы найдете простую и подробную инструкцию по установки вышеописанной связки.
Содержание статьи:
Перед тем, как начать установку сервера Apache 2.4 + PHP5.6 на компьютер под управлением Windows 10, давайте немного поговорим о том, как работают серверные технологии и конкретно наша связка PHP + Apache. Начнем мы немного издалека и дойдем до нашей связки.
Первое и самое главное: любой сайт для конечного пользователя или посетителя в браузере представляет собой HTML страницу, которую создает браузер, анализируя HTML документ и ее структуру. Посетитель сайта видит HTML элементы на странице, которые получаются путем интерпретации HTML тэгов и HTML атрибутов браузером. Сайты в принципе могут быть статическими, а все логика и интерактивность может быть заключена в HTML ссылках, которые будут помогать посетителям передвигаться по сайтам.
Для работы статических сайтов не нужен никакой сервер, ведь HTML документы мы можем просматривать локально, так как браузеры могут спокойно работать с файловой системой компьютера, но такой подход, при котором сайты статические недостаточно гибок и не предоставляет нам интерактивных возможностей взаимодействия с посетителями сайта. Гораздо интереснее, когда на сайте может происходить взаимодействие с пользователем, то есть когда сайт является динамическим.
Для такого сайта нужен целый набор различных технологий, начиная с базы данных, управление которой происходит при помощи СУБД (например, сервер MySQL, библиотека SQLite или PostgreSQL) и заканчивая различными языками программирования, например, язык PHP – является серверным языком и при помощи него реализуются различные серверные возможности. А язык JavaScript – создает интерактивность на стороне клиента.
В данной публикации наибольший интерес для нас представляют серверные технологии и непосредственно связка PHP + Apache. Стоит отметить, что динамические сайты реализуются намного сложнее, чем статические, во-первых, из-за наличия целого стека технологий. Во-вторых, динамические сайты уже подразумевают деление функционала и ролей на клиентские и серверные. То есть в основе динамических сайтов лежит архитектура взаимодействия клиент-сервер.
В данном случае в качестве клиентского приложения выступает браузер, а в качестве серверного приложения выступает связка Apache + PHP (на самом деле эта связка может быть расширена другими приложениями и технологиями). Если смотреть на сеть Интернет глазами веб-мастера или веб-разработчика, то взаимодействие в Интернете происходит по протоколу HTTP (который находится на седьмом уровне сетевой модели OSI), реализует это взаимодействие как раз-таки сервер Apache (мы уже рассматривали установку Apache 2.4 на Windows). Язык PHP в данном случае мы можем рассматривать, как средство, которое позволяет выполнять две базовые вещи:
Общую схему взаимодействия посетителя с динамическим сайтом, находящимся на веб-сервере, вы можете увидеть на рисунке ниже.
Теперь немного поговорим о взаимодействие по протоколу HTTP и работе динамических сайтов. Отметим, что ни в один браузер в мире не встроен интерпретатор PHP кода, поэтому браузер не может его исполнять, в отличии от кода JavaScript. Весь PHP код выполняется на сервере, а браузер лишь получает результаты его работы. Этот процесс можно описать довольно просто следующим образом:
Простейшая схема взаимодействия веб-клиента с сервером HTTP показана на рисунке ниже.
Обратим внимание, что процесс взаимодействия между браузером может быть локальным: в этом случае сервер Apache, PHP и другие серверные технологии установлены на одну и ту же машину, что и браузер или клиент. Таким образом можно разработать, настроить и протестировать сайт перед тем, как будет куплено доменное имя сайта и арендован хостинг, то есть перед тем, как он появится в сети Интернет.
Для некоторых пользователей установка связки PHP + Apache может показаться довольно утомительной и нудной, поэтому специально для таких людей были созданы готовые серверные сборки, в качестве примера можно привести локальный сервер AMPPS или сборку Денвер. Они вполне удобны и на 100% удовлетворят потребности новичков в мире веб-разработки, а также потребности 70-80% разработчиков. Для тех, кто хочет понять как работают серверные технологии и детально разобраться с работой веб-серверов рекомендуется ручная сборка веб-сервера, при которой мы можем самостоятельно, в процессе установки, настроить сборку под свои специфичные нужды. В данной же публикации мы будем устанавливать связку Apache 2.4 + PHP 5.6 на Windows и при этом PHP будет работать, как модуль сервера Apache.
Ранее мы уже разобрались с вопросами что такое PHP и что такое Apache, теперь нам стоит немного поговорить о том, что такое модуль сервера Apache и в чем его особенности, так как отдельной публикации пока нет, об этом мы поговорим в следующем разделе данной публикации, а затем составим инструкцию по установки Apache + PHP на Windows.
Когда мы рассматривали процесс установки PHP на Windows без Apache с использованием встроенного веб-сервера, то говорили, что PHP в связки Apache может работать как его модуль, а можно сделать так, чтобы PHP работал как обработчик CGI. В первом случае PHP является частью архитектуры сервера Apache и поток PHP (в случае с Windows) работает параллельно с потоками других модулей сервера Apache.
Чтобы детально разобраться с тем, что собой представляет модуль в Apache и в чем будет заключаться особенность установки PHP как модуль сервера Apache, давайте немного разберемся с архитектурой веб-сервера Apache, для начала отметим, что Apache состоит из нескольких частей:
Рисунок ниже схематично демонстрирует модульную архитектуру сервера Apache.
Итак, мы собрались устанавливать PHP, как модуль сервера Apache, следовательно, в данном случае PHP и Apache можно рассматривать как единое целое, грубо говоря, одно многофункциональное приложение, так как PHP будет как бы встроен в архитектуру Apache, каждый модуль Apache при выполнении своих функций создает поток, а PHP будет лишь одни из потоков сервера Apache.
Но обратите внимание на то, что PHP в данном в случае можно лишь условно назвать встроенным в Apache, естественно, он будет модулем Apache, но их взаимодействие будет происходит при помощи специального программного кода, который является связующим звеном между средой PHP и сервером Apache, этот код в Apache оформлен в виде отдельного модуля.
Особенность установки Apache + PHP на Windows заключается в модуле MPM, который появился тогда, когда была разработана версия Apache для операционных систем семейства Windows. Этот модуль реализует мультипроцессорные модели и управляет взаимодействием ядра сервера с операционной системой и другими модулями. Модуль MPM имеет две модели: Worker и Prefork. Первая модель thread safe, вторая модель non-threaded, а как вы помните мы скачивали PHP версии Thread Safe.
Мы детально разобрались с техническими тонкостями, теперь давайте составим небольшую инструкцию по установке Apache 5.6 + Apache 2.4 на Windows, естественно, устанавливать PHP мы будем как модуль сервера Apache. Также заметим, что во многих книгах и на многих сайтах авторы усердно копируют друг друга и говорят: сначала мы должны установить сервер Apache, настроить его, а только потом устанавливать PHP, а только после PHP мы можем устанавливать и конфигурировать сервер MySQL.
Все это чушь, все эти три приложения независимы друг от друга и прекрасно могут работать по отдельности. Другое дело, что мы не сможем заставить работать PHP, как модуль сервера Apache, собственно, без самого Apache, но нам ведь никто не мешает установить и настроить PHP, а затем установить Apache и связать их вместе.
Для установки связки PHP + Apache нам потребуется редактор, хорошо если редактор будет удобным и многофункциональным, мы можем порекомендовать вам выбрать один из четырех редакторов, все они кроссплатформенные, имеют подсветку синтаксиса, очень активное сообщество и множество поклонников по всему миру:
Ранее мы уже рассматривали процесс установки Apache 2.4 на Windows 10, в котором мы разобрались с тем откуда скачать Apache и с тонкостями его установки на Windows. Также мы уже говорили о том, как установить PHP на Windows без Apache: здесь мы разобрались с особенностями версий PHP, выбрали версию, которую необходимо скачать, чтобы эта версия работала в Windows и, собственно, установили PHP.
Теперь давайте установим связку Apache + PHP по инструкции ниже и сделаем так, чтобы PHP работал как модуль Apache:
[php]
# указываем расположения модуля PHP
LoadModule php5_module «c:/server/php/php5apache2_4.dll»
AddHandler application/x-httpd-php .php
# Путь к файлу php.ini
PHPIniDir «с:/server/php»
[/php]
[php]
; extension_dir = «ext»
на
extension_dir = « с:/server/php/ext»
; sys_temp_dir = «/tmp»
на
sys_temp_dir = « с:/server /tmp»
[/php]
На этом мы можем сказать, что инструкция по установки связки PHP + Apache на Windows завершена. PHP работает как модуль сервера Apache, поэтому его конфигурации зависят от Apache, а следовательно, чтобы конфигурации PHP вступали в силу, нужно перезагружать Apache. Чтобы посмотреть расширения PHP, которые на данный момент установлены и работают, выполните команду в командой строке Windows: php -m или откройте файл index.php, созданные нами ранее в браузере.
Не забывайте делиться своим мнением в комментариях и оставлять отзывы, это поможет сделать нашу работу лучше, с уважением ZametkiNaPolyah.ru!
Выберете удобный для себя способ, чтобы оставить комментарий