РНР – это интерпретатор, а не компилятор. Компиляторы создают исполняемый код, который может выполняться без самого компилятора. Интерпретатор такого кода не создает, поэтому для выполнения php-кода понадобится интерпретатор РНР — программа, которая будет выполнять РНР-сценарии.
Так как РНР предназначен для создания сайтов, то еще нужен web-сервер. РНР может работать с разными серверами, предпочтение обычно отдается серверу Apache, который бесплатный и доступен для нескольких платформ (Windows, Linux, Мас OS).
Когда клиент (например, Web-браузер) запрашивает документ с Web-сервера, то Web-сервер извлекает документ и отправляет клиенту. В большинстве случаев этот документ представляет собой HTML-файл, графический образ или нечто подобное. Клиент обрабатывает его и отображает в окне браузера.
В отличие от этого, при использовании PHP-сценария добавляется еще одна промежуточная стадия — предварительная обработки. Web-сервер запускает интерпретатор РНР и передает ему файл. На этой стадии интерпретатор РНР обрабатывает запросы PHP-сценария, выполняет код, содержащийся в нем, и посылает вывод обратно Web-серверу, чтобы тот отправил его клиенту. Несмотря на то, что главная цель РНР-сценария состоит в генерировании HTML-содержимого, во время его выполнения может происходить все, что угодно — от доступа к базе данных до отправки почтовых сообщений.
Сайту нужно где-то хранить свой контент – страницы, которые он будет выводить пользователю. Контент можно хранить либо в файлах, либо в базе данных. Чаще всего используются базы данных MySQL. Все современные версии РНР поддерживают MySQL по умолчанию..