Подтвердить что ты не робот

"Как сделана колбаса" тур по взаимодействию apache/php/mysql

У меня возникли проблемы с пониманием того, как apache/php/mysql-стек работает на низком уровне (включая взаимодействие с браузером). Есть хорошее описание где-нибудь (книга, веб-сайт и т.д.), Которые пройдут меня по всему пути и объяснят, как начать с браузера, требующего URL-адреса, отправляются HTTP-запросы, как apache ведет переговоры с php, как php разговаривает с mysql (постоянные и непостоянные соединения) и т.д. и т.д. Я хочу понять, что ждет, что в этой цепочке, где обрабатываются тайм-ауты, сколько розеток открыты и закрыты. Возможно, книга, статья? Существует много документации по каждому отдельному компоненту, но я не могу найти "пошаговое руководство".

Объяснения, которые я имею до сих пор, очень высокоуровневые: смотрите, вот счастливая корова, это идет в Bovine University, посмотрите - все это упаковано на полку супермаркета. Что мне нужно, это тур по колбасной ферме/бойне/грузовик/ factory, начиная с коровьей инсеминации:)

[update] До сих пор я не нашел лучшего способа узнать об этих вещах, кроме чтения источника.

4b9b3361

Ответ 1

PHP и MySQL на примере имеет довольно основную картину процесса, который, я думаю, вы, вероятно, уже понимаете.

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

Ответ 2

Я нашел сайт, который содержит, по крайней мере частично, содержимое из книги Advanced PHP Programming от George Schlossnagle.

Сайт расположен по адресу http://php.find-info.ru/php/016/toc.html. В частности, раздел Цикл жизненного цикла PHP содержит много подробных сведений, в том числе некоторый исходный код и диаграммы.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: IANAL, но учитывая, что книга по-прежнему указанная на Amazon, возможно, связанный контент до выше разрывает все виды кодов, правил и/или законов. Это не мое намерение распространять или оправдывать незаконные или пиратские материалы, поэтому, если это так, удалите указанные ссылки.

Ответ 3

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

http://computer.howstuffworks.com/web-server.htm

Надеюсь, что это поможет

Ответ 4

Лучший способ действий - получить хорошую книгу о стеке LAMP.

Быстрый ответ (попросите больше, если вы считаете, что вам это нужно) Браузер взаимодействует с веб-сервером по протоколу HTTP Сервер генерирует (пусть оставит как на данный момент) результат html и возвращает его обратно. Каждый браузер понимает только http-протокол (ради этого анализа).

Теперь такие элементы, как значки, изображения, javascript и т.д., просто считываются с сервера apache и "копируются" в браузер. То же самое в простых html файлах. Разница заключается в php файлах (я упрощаю здесь). Они передаются в php-модуль, и ответ (модуля) будет отправлен обратно в браузер.

Модуль php понимает php. Мы вместе здесь? если да, то: Php script может (или не обязательно) запрашивать данные с сервера MySQL, он должен подключать их, манипулировать ими и т.д.

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

Ответ 5

Насколько я понимаю, apache получает запрос и разрабатывает, что с ним делать, на основе параметров .htaccess или config. Затем он передает этот запрос на PHP для разбора, если это необходимо. PHP выполняет два сканирования кода, первый - предварительный синтаксический анализ, который поднимает очевидные недостатки и выполняет функции на верхнем уровне (игнорируя любые инструкции if, циклы, включенные, evals или функции, основанные на lamda), перед разбором страницы серьезно. Все, что сделано с эхом, я верю, возвращается как стандартный поток и возвращается в apache. Если apache раз выводит страницу, он отправляет сигнал kill на PHP, который закрывает объекты, после чего выводит сообщения об ошибках, прежде чем выйти. После выхода страницы apache имеет тенденцию к заголовкам и возвращает страницу.

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