Как на самом деле работает серверная технология?
Я продолжаю слышать о популярных конфигурациях 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.
Основной поток процесса обслуживания страницы заключается в следующем:
- Удаленный пользователь запрашивает http://www.yoursite.com/index.php
- Программное обеспечение веб-сервера Apache получает этот запрос и готовится предоставить соответствующую информацию по соединению с этим конкретным пользователем
- Интеграция Apache с PHP запускает интерпретатор PHP на вашем сервере и выполняет код PHP в index.php
- Этот код PHP, в свою очередь, может содержать запросы на получение и / или установку данных из базы данных MySQL для использования на веб-странице или для управления пользователями или сеансами.
- Ваш веб-сервер отправляет удаленному пользователю 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.