Как на самом деле работает серверная технология?

Я продолжаю слышать о популярных конфигурациях LAMP и WAMP для серверной части, а также знаю, что LAMP обозначает Linux, Apache, MySQL, PHP/Python/Perl/Ruby и т. Д.
Но я не знаю, как все они интегрируются друг с другом.
Например, если у меня дома установлен Xampp на моей машине с Windows, и у него есть папка htdocs, где я храню свои веб-страницы... и когда я запрашиваю эту страницу, браузер показывает ее мне...
Мне нужно знать, что:

  • Apache на самом деле это жесткий диск для моих веб-страниц?
  • Где подходят PHP / Python / Perl / Ruby и MySQL?
  • Как у Xampp есть htdocs на моем компьютере, есть ли подобная папка на веб-сервере Apache?

Это все сбивает с толку на данный момент, кто-нибудь может объяснить?

3 ответа

Решение

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

Тем не менее, просто чтобы дать вам краткое изложение:

Веб-сервер - это программа, которая предоставляет данные людям, которые получают доступ к вашему компьютеру через Интернет. Двумя самыми популярными веб-серверами в мире являются Apache и Microsoft Internet Information Services (IIS).

База данных хранит данные, чаще всего в реляционной манере. Вы можете использовать эти данные для веб-контента, то есть он может хранить сообщения в блоге, имена пользователей и пароли, в основном все, что угодно. Наиболее распространенными базами данных, используемыми для веб-разработки, являются вариации SQL, чаще всего MySQL и MS SQL Server.

PHP, Python, Ruby и Perl являются языками высокого уровня, которые, возможно, когда-то называли языками сценариев (но стали намного больше). Между ними существуют различные технологические и философские различия, но все они используются для одних и тех же целей. В веб-терминах эти языки используются для программирования динамического веб-контента. Ваш веб-сервер выполняет код PHP/Ruby/Perl/Python, и этот код, в сочетании с данными из базы данных и / или HTML-страниц, выводит веб-контент, который обслуживается программным обеспечением вашего веб-сервера и в конечном итоге просматривается пользователем. Все эти языки имеют различные структуры, облегчающие разработку веб-сайтов (например, Rails для Ruby).

XAMPP - это просто предварительно упакованный комплект, содержащий веб-сервер apache, программное обеспечение базы данных mysql и установки PHP и Perl.

Основной поток процесса обслуживания страницы заключается в следующем:

  1. Удаленный пользователь запрашивает http://www.yoursite.com/index.php
  2. Программное обеспечение веб-сервера Apache получает этот запрос и готовится предоставить соответствующую информацию по соединению с этим конкретным пользователем
  3. Интеграция Apache с PHP запускает интерпретатор PHP на вашем сервере и выполняет код PHP в index.php
  4. Этот код PHP, в свою очередь, может содержать запросы на получение и / или установку данных из базы данных MySQL для использования на веб-странице или для управления пользователями или сеансами.
  5. Ваш веб-сервер отправляет удаленному пользователю HTML-документ, составленный с помощью вышеуказанной комбинации кода PHP, информации базы данных и предварительно написанных статических HTML и CSS с вашего веб-сайта.

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

Apache - веб-сервер, который на самом деле слушает ваши запросы к localhost или 127.0.0.1, а затем отвечает на основании запроса. Обычно Apache слушает порт 80, 8080 и т. Д.

PHP, Python, Perl Ruby являются серверными включениями (или скриптами), в которые вы, как программист, пишете. Когда Apache получает запрос, он ищет эти файлы и просит соответствующие парсеры проанализировать и вернуть выходные данные.

Например, вы звоните http://localhost/test.php. Apache получает вызов и ищет файл test.php в htdocs. Так как это файл PHP, Apache будет вызывать PHP для анализа файла, а затем вернет HTML или любой вывод.

MySQL - это база данных для хранения ваших данных. Подумайте обо всех этих сообщениях StackOverflow, они все хранятся в базе данных.

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

Apache - это веб-сервер, который открывает порт на вашем компьютере для подключения к сети. Это позволяет людям в вашей сети перейти на http://192.168.1.101/ (ваш IP-адрес). Если ваш маршрутизатор настроен правильно, вы можете открыть свой собственный веб-сайт.

Из коробки apache доставляет HTML в браузер. Если вы просматриваете источник этой страницы, то вы можете увидеть HTML.

PHP/Python/Ruby - это языки, которые используются для взаимодействия с Apache для создания HTML на лету (динамическое поведение).

MySQL - это постоянство ваших данных. Он хранит ваши данные таким образом, что PHP/Python/Ruby может легко преобразовать и отобразить.

Xampp использует Apache.

Другие вопросы по тегам