Создание сайтов в Суходольске, ЛНР. Настройка среды разработки PHP с помощью Docker

Следующая статья представляет собой выдержку из PHP и MySQL: от новичка до ниндзя, 7-е издание, практического руководства по изучению всех инструментов, принципов и методов, необходимых для создания профессионального веб-приложения. В этом первом руководстве из серии мы расскажем, как настроить среду разработки PHP с помощью Docker.

Настройка среды разработки PHP с помощью Docker

Руководство для начинающих по PHP

Знакомство с MySQL: руководство для начинающих

Отображение данных из MySQL в Интернете: введение

В этой книге я помогу вам сделать первые шаги за пределами статичного мира создания веб-страниц с использованием чисто клиентских технологий HTML, CSS и JavaScript. Вместе мы исследуем мир создания веб-сайтов и откроем головокружительный набор динамических инструментов, концепций и возможностей, которые они открывают. Что бы вы ни делали, не смотрите вниз!

Ладно, может тебе стоит посмотреть вниз. В конце концов, именно здесь находится остальная часть этой книги. Но помните, вас предупредили!

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

Если вы привыкли создавать веб-сайты с помощью HTML, CSS и, возможно, даже небольшого количества JavaScript, вы, вероятно, знакомы с загрузкой файлов, составляющих ваш сайт, в определенное место. Это может быть оплаченный вами веб-хостинг, веб-пространство, предоставленное вашим интернет-провайдером, или веб-сервер, настроенный ИТ-отделом компании, в которой вы работаете. В любом случае, как только вы скопируете свои файлы в любое из этих мест, программа, называемая веб-сервером, сможет найти и предоставить копии этих файлов всякий раз, когда они запрашиваются веб-браузером, таким как Microsoft Edge, Internet Explorer, Google Хром, Сафари или Фаерфокс. Обычные программы для веб-серверов, о которых вы, возможно, слышали, включают Apache HTTP Server (Apache), NGINX и Internet Information Services.

PHP — это серверный язык сценариев. Это абсолютно бесплатно для скачивания и использования. Вы можете думать об этом как о плагине для вашего веб-сервера, который позволяет ему делать больше, чем просто отправлять точные копии файлов, запрашиваемых веб-браузерами. С установленным PHP ваш веб-сервер сможет запускать небольшие программы, называемые PHP-скриптами, которые могут выполнять такие задачи, как извлечение самой последней информации из базы данных и использование ее для создания веб-страницы на лету перед отправкой. его браузеру, который его запросил. Большая часть этой книги посвящена написанию PHP-скриптов, которые делают именно это.

Чтобы ваши PHP-скрипты извлекали информацию из базы данных, у вас сначала должна быть база данных. Вот тут-то и появляется MySQL. MySQL — это система управления реляционными базами данных, или РСУБД. Мы обсудим точную роль, которую он играет, и как он работает позже, но вкратце: это программа, способная эффективно организовывать множество фрагментов информации и управлять ими, отслеживая при этом, как все эти фрагменты информации связаны друг с другом. MySQL также упрощает доступ к этой информации с помощью языков сценариев на стороне сервера, таких как PHP. И, как и PHP, он совершенно бесплатен для большинства применений.

Целью этой первой главы является установка веб-сервера, оснащенного PHP и MySQL. Я предоставлю пошаговые инструкции, которые работают в последних версиях Windows, macOS и Linux, поэтому независимо от того, какой тип компьютера вы используете, инструкции, которые вам нужны, должны быть прямо здесь.

Ваш собственный веб-сервер

Скорее всего, на веб-сервере вашего текущего веб-хостинга уже установлены PHP и MySQL, что является одной из причин популярности PHP и MySQL. Если ваш веб-хост оборудован таким образом, хорошая новость заключается в том, что вы сможете опубликовать свой первый веб-сайт без необходимости покупать веб-хост, поддерживающий нужные технологии.

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

Однако, когда дело доходит до динамических веб-сайтов, созданных с использованием PHP и MySQL, вашему веб-браузеру нужна помощь. Веб-браузеры не могут понимать PHP-скрипты. Вместо этого PHP-скрипты содержат инструкции для PHP-подкованныхвеб-серверов, которые необходимо выполнить для создания HTML-кода, понятного браузерам.

Даже если у вас есть существующий веб-хост, поддерживающий PHP, вы все равно захотите иметь возможность запускать PHP-скрипты самостоятельно, не используя чужой сервер. Для этого вам нужно настроить собственный веб-сервер. Слово «сервер» может натолкнуть вас на мысль о большой комнате с кондиционером, заполненной большими компьютерами в стойках. Но не волнуйтесь, вам не нужно какое-то модное новое оборудование. Ваш ноутбук или настольный компьютер будут работать нормально.

Чтобы запустить PHP-скрипты на вашем веб-хостинге, вам нужно написать их в редакторе, открыть FTP-клиент или SSH-клиент и загрузить их на сервер. Только после этого вы сможете увидеть результат в своем браузере, перейдя по URI созданного вами файла. Если вы допустили ошибку и есть ошибка, вам нужно будет изменить код, вернуться в свою FTP-программу, снова загрузить файл, а затем перезагрузить страницу. Это утомительно и отнимает драгоценное время, которое вы могли бы потратить на написание кода. Запустив сервер на своем ПК, вы сможете сохранить файл в своем редакторе и просмотреть изменения в браузере, просто обновив страницу — загрузка файла не требуется. Это реальная экономия времени и одно из самых больших (хотя и не только!) преимуществ запуска сервера на вашем ПК, даже если у вас уже есть отличный веб-хостинг.

Так как же запустить веб-сервер на вашем ПК? Есть четыре способа добиться этого, каждый со своими преимуществами и недостатками.

Настройка сервера 1: установка всех компонентов программного обеспечения вручную

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

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

Вам также потребуется настроить Apache для взаимодействия с PHP, чтобы, когда кто-то подключается к серверу и запрашивает файл с.phpрасширением, файл сначала отправлялся в PHP для обработки.

Чтобы следовать этой книге, вам также понадобится MySQL, что означает ручную установку и настройку.

Apache, MySQL и PHP имеют десятки параметров конфигурации, и если вы точно не знаете, что делаете, их может быть сложно настроить. Даже если вы эксперт, потребуется не менее часа, чтобы все заработало!

Ручная установка требует значительного объема знаний или исследований и выходит за рамки этой книги. Умение настраивать сервер — это, конечно, полезный навык, но он не поможет вам научиться программировать с использованием PHP — именно это вас действительно интересует, если вы читаете эту книгу.

Эта опция не для слабонервных, и даже опытные профессионалы могут легко пропустить некоторые важные настройки. Если вы действительно хотите настроить все вручную, ознакомьтесь с нашим руководством по установке PHP в Windows. Однако, если вы не хотите беспокоиться об установке и настройке всего программного обеспечения по отдельности, есть несколько отличных альтернативных вариантов.

Настройка сервера 2: готовые установки

Проблемы с ручной установкой были признаны группами разработчиков на протяжении многих лет, и для их преодоления они создали предварительно упакованные установки — единый установщик, который устанавливает PHP, Apache, MySQL и другое соответствующее программное обеспечение, предварительно сконфигурированное с соответствующими настройками. настройки для таких разработчиков, как вы. Наиболее популярными примерами такого рода пакетов являются XAMPP: X (любая операционная система), Apache, MySQL (или, точнее, MariaDB, «форк» MySQL с лучшей лицензией), PHP и Perl. Альтернативы включают WAMP (Windows, Apache, MySQL и PHP), LAMP (Linux, Apache, MySQL и PHP) и MAMP (macOS, Apache, MySQL и PHP).

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

Ваш веб-хост, вероятно, работает под управлением Linux, но ваш компьютер, вероятно, не работает. Хотя Apache, MySQL и PHP работают в Windows, Linux или macOS, между тем, как работают операционные системы, существуют большие различия. В Windows имена файлов не чувствительны к регистру, то FILE.PHPесть это то же самое, что file.phpи fIlE.pHp. На вашем веб-хостинге этого почти наверняка не будет! Это вызывает частые проблемы, когда сценарий, отлично работающий на вашем сервере разработки Windows, не работает после загрузки, потому что в коде на файлы ссылаются в неправильном регистре.

Apache и MySQL — это серверы, и они работают в фоновом режиме. Даже когда вы не разрабатываете программное обеспечение, оно будет работать, используя оперативную память и вычислительную мощность вашего компьютера.

Готовое программное обеспечение всегда немного устарело. Хотя исправления безопасности не являются приоритетом для компьютера разработчика (вы не должны позволять людям получать к нему доступ через Интернет!), разработчикам всегда полезно оставаться на самых последних версиях программного обеспечения, чтобы проверить наличие проблем, которые могут быть обнаружены. возникает при обновлении программного обеспечения на вашем веб-узле. Если ваш веб-хост использует более новую версию PHP, чем ваш сервер разработки, это может вызвать проблемы с функциями, которые были изменены или удалены. Наконец, разработчики любят экспериментировать с новыми функциями по мере их выпуска. Вы не сможете сделать это, если не используете последние версии!

Хотя предварительно упакованные установки намного лучше, чем установки, эти проблемы не делают их идеальными. К счастью, есть еще лучший подход!

Настройка сервера 3: виртуальные серверы

Третий метод запуска сервера — это «виртуальный сервер». Виртуальный сервер действует как веб-сервер на другом компьютере. На этом компьютере может быть установлена ​​любая операционная система, и вы можете подключиться к нему со своего ПК, как будто он находится где-то еще в мире.

Программное обеспечение для виртуализации, такое как VirtualBox, и инструменты, предлагаемые VMware, широко распространены. Как веб-разработчик, вы можете быть знакомы с такими инструментами, как modern.ie, полезным сервисом, предоставляемым Microsoft, который позволяет загружать виртуальные машины с различными версиями Windows, Microsoft Edge и Internet Explorer. Если вы хотите увидеть, как выглядит ваш веб-сайт в Internet Explorer 8 в Windows XP, вы можете загрузить соответствующую виртуальную машину и запустить ее в окне на рабочем столе Windows 10/macOS/Linux без фактической установки и запуска Windows 7 с Internet Explorer 8 внутри существующей установки Windows 10, Linux или macOS.

Windows 10 работает внутри Arch Linux

Программное обеспечение, такое как VirtualBox, позволяет вам запускать операционную систему внутри другой операционной системы. Для тестирования Internet Explorer 8 вы можете запустить Windows 7 на виртуальной машине. Тем не менее, для наших целей запуска PHP-скриптов это позволяет нам сделать кое-что намного круче: мы можем запустить веб-сервер Linux с PHP, Apache и MySQL, установленными на нашем ПК с Windows или macOS.

Это может быть использовано для того, чтобы вы могли запускать те же самые версии PHP, MySQL и Apache, которые используются на вашем веб-хостинге, в той же самой операционной системе, что предотвращает любые проблемы, которые могут возникнуть из-за различий версий или различий в используемые операционные системы.

Одним из самых больших преимуществ является то, что вы можете загрузить предварительно настроенные виртуальные машины, такие как виртуальная машина Windows XP и Internet Explorer 8, предоставленная Microsoft, или виртуальную машину, на которой установлены и настроены PHP, Apache и MySQL для совместной работы. Это похоже на предварительно настроенный пакет, но работает в Linux, как если бы это был настоящий веб-сервер в вашей сети.

Недостатком всего этого является то, что вам нужно загрузить всю операционную систему, чтобы запустить свой код. Это означает больше загрузки. Это также означает, что пакеты привязаны к тому, что предоставляется виртуальной машиной, которую вы загружаете. Замена PHP 7 на PHP 8 требует загрузки совершенно новой копии операционной системы.

Настройка сервера 4: Докер

Docker берет идею виртуализации и переворачивает ее с ног на голову. Каждая программа (или «сервис» в терминологии Docker) работает в своей изолированной среде, называемой контейнером.

Docker позволяет разработчику программного обеспечения предоставить файл конфигурации, в котором описаны все программы, необходимые для запуска приложения, например, PHP, MySQL, Apache и т. д.

Затем этот файл конфигурации рассматривается как отдельное приложение. Когда вы запускаете приложение, Docker автоматически загружает и настраивает все программное обеспечение, указанное в файле конфигурации.

Накладные расходы на это намного ниже, чем вы думаете, и есть множество преимуществ:

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

Несколько веб-сайтов могут работать одновременно на вашем компьютере для разработки с разными конфигурациями и даже с разным серверным программным обеспечением (например, один веб-сайт использует Apache, другой — NGINX). Без Docker обычно устанавливается одна версия PHP с единой конфигурацией, применяемой к каждому веб-сайту, работающему на компьютере.

Вы можете легко заменить часть программного обеспечения. Если вы хотите изменить веб-сайт с PHP 7 на PHP 8, это одно изменение в одном файле, и вы можете сделать это для каждого веб-сайта отдельно, а не принудительно обновлять все свои веб-сайты одновременно.

В настоящее время Docker является лучшим вариантом для настройки среды разработки PHP. Если вы хотите узнать больше о настройке среды разработки для себя с помощью Docker, ознакомьтесь с моей статьей «Настройка современной среды разработки PHP с помощью Docker «.

Начиная

Прежде чем писать какой-либоPHP-код и разрабатывать ваш веб-сайт, мы настроим среду разработки с помощью Docker. Я предоставил вам всю конфигурацию, но прежде чем вы начнете, вам необходимо установить Docker.

Установка в Windows

Во-первых, скачайте и установите последнюю версию Docker для Windows с сайта Docker.

После того, как вы установили Docker (и перезагрузили его, если потребуется), создайте папку на своем компьютере, где вы хотите хранить свой веб-сайт. Это может быть где угодно: ваша Documentsпапка, рабочий стол, внешний жесткий диск и т. д., но убедитесь, что вы знаете, где это находится, так как вам придется часто возвращаться к этой папке.

Вам также необходимо знать, как открыть терминал. Windows 10 упрощает эту задачу. Открыв папку в проводнике, выберите меню «Файл» в левом верхнем углу окна, затем нажмите «Открыть Windows PowerShell «. Убедитесь, что вы делаете это из меню «Файл», а не из меню «Пуск», так как щелчок по нему из «Файла «откроет командную строку в выбранной вами папке.

Открыв PowerShell, убедитесь, что указанный путь соответствует выбранной вами папке, например, C: \Users\Tom\Documents\My Website. Затем перейдите к разделу «Начало работы с Docker» ниже.

На момент написания (сентябрь 2021 г.) в текущей предварительной сборке Windows 11 PowerShell был переименован в Терминал Windows и доступен по-другому:

Включите эту опцию, вручную открыв приложение Windows Terminal из меню «Пуск» один раз. Вы можете просто открыть и закрыть программу. Необъяснимым образом Microsoft спроектировала Windows 11 таким образом, что открытие одной программы включает скрытый параметр в другой, и если вы пропустите этот шаг, пункт меню из третьего шага отсутствует.

Используйте File Explorer, чтобы перейти к вашей папке.

Щелкните правой кнопкой мыши на главной панели (там должно быть написано «Эта папка пуста») и выберите «Открыть в терминале Windows «.

Параметр «Открыть терминал» в Windows 11

Примечание: эти инструкции могли измениться к моменту выпуска Windows 11 и после публикации этой книги.

Установка на macOS

Во-первых, скачайте и установите Docker для macOS с сайта Docker.

После того, как вы установили Docker (и перезагрузили его, если потребуется), создайте каталог на своем компьютере, где вы хотите хранить свой веб-сайт. Это может быть где угодно: ваш Documentsкаталог, рабочий стол, внешний жесткий диск и т. д., но убедитесь, что вы знаете, где это находится, так как вам придется часто возвращаться в эту папку.

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

открыть Системные настройки

перейти к клавиатуре

выберите вкладку «Ярлыки «

нажмите кнопку Услуги

установите флажок Новый терминал в папке

macOS: включить новый терминал в папке

При этом включено:

откройте приложение Docker из Applicationsпапки и примите условия

вернуться в Finder

перейдите в каталог, в котором вы хотите сохранить свой веб-сайт

щелкните правой кнопкой мыши (или controlщелкните) имя каталога, выберите параметр «Службы «в меню содержимого и выберите «Новый терминал в папке «.

Открыв этот терминал, вы готовы перейти к разделу «Начало работы с Docker» ниже.

В дальнейшем вам нужно будет только повторять последний набор шагов каждый раз, когда вы хотите запустить или остановить свой сервер.

Установка в Linux

Linux обычно делает установку программного обеспечения очень простой, а Docker на самом деле является программой Linux по своему дизайну. В большинстве дистрибутивов его можно установить с помощью диспетчера пакетов, но вам может потребоваться настроить собственный репозиторий пакетов.

Для дистрибутивов на основе Debian (Debian, Ubuntu, Mint и KDE Neon) и дистрибутивов на основе RedHat (RedHat, CentOS, Fedora) существует сценарий установки, который создает собственный репозиторий и устанавливает Docker:

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

Конкретные инструкции для вашего дистрибутива смотрите в руководстве по Docker.

После установки Docker вы должны включить и запустить службу с помощью следующих команд:

sudo systemctl enable docker

sudo systemctl start docker

Наконец, вы можете добавить себя в dockerгруппу, чтобы вам не нужно было запускать приложения Docker через sudo:

sudo usermod -aG docker ${USER}

Изменение групп пользователей требует выхода из системы и повторного входа, поэтому выйдите из системы и снова войдите (не забудьте сохранить все, что у вас открыто!), и как только вы вернетесь, вы будете готовы открыть терминал.

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

Откройте папку в файловом менеджере и выберите опцию «Открыть терминал «. В файловом менеджере Dolphin вы можете щелкнуть правой кнопкой мыши и выбрать «Открыть терминал «, но этот параметр может находиться в другом месте и, возможно, называться по-разному, в зависимости от того, какой файловый менеджер вы используете.

Начало работы с Докером

Теперь, когда у вас установлено все программное обеспечение и ваш терминал открыт в нужном месте, пришло время выполнить некоторые команды Docker.

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

Во-первых, скопируйте конфигурацию с помощью этой команды:

docker run —rm -v ${PWD}: /install vjedev/installer: latest

Запуск установщика

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

Примечание. GitHub — это платформа для размещения исходного кода, используемая во многих проектах с открытым исходным кодом. Репозиторий — это имя, данное отдельному проекту. В данном случае код скачивается с github.com/v-je/docker.

Совет: если у вас установлен Git, вы можете просто запустить следующую команду на этом этапе: Однако вместо того, чтобы просить каждого читателя этой книги установить Git для одной команды, я создал сценарий установки, который сделает это за вас.git clone https://github.com/v-je/docker.

Вам нужно сделать это только в первый раз, и после завершения команды вы увидите, что в вашем каталоге появятся некоторые файлы конфигурации. Не стесняйтесь просматривать созданные файлы. Есть nginx.conf, который настраивает веб-сервер; PHP.Dockerfile, который настраивает расширения PHP; и docker-compose.yml, в котором перечислены все программы, которые будут установлены и запущены при запуске сервера (NGINX, MySQL, PHP и т. д.).

Не беспокойтесь о попытке понять эти файлы. Вам не нужно ничего с ними делать, так как они нужны только для настройки сервера при выполнении следующей команды.

Примечание: прежде чем мы продолжим, стоит упомянуть, что среда, которую мы только что настроили, использует NGINX, а не Apache. Если вы использовали XAMPP или аналогичный пакет, веб-сервер, который вы используете, — это Apache. Веб-сервер — это часть сервера, которая прослушивает запросы веб-браузера и отправляет ему файлы.

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

Мой общий совет: если у вас уже есть веб-сайт, на котором работает Apache, нет причин мучиться с его изменением, но если вы начинаете новый проект с нуля, используйте NGINX.

Теперь, когда у вас загружены файлы конфигурации сервера, пришло время заставить Docker загрузить и запустить все программы, необходимые для сервера. Выполните следующую команду:

docker compose up

Вывод докера компонуется

Примечание: по скучным техническим причинам, в которые не стоит вдаваться, docker composeкоманда раньше представляла собой отдельную программу с именем docker-compose. Эта функциональность теперь перенесена в сам Docker. Однако, если вы используете более старый дистрибутив Linux или используете более старую версию Docker Desktop, вам может потребоваться заменить docker composeво docker-composeвсех docker composeкомандах. Делайте эту замену только для compose. Другие команды docker runдолжны сохранять пробел.

При запуске вы можете получить следующую ошибку docker compose up:

docker: 'compose’ is not a docker command.

Если это так, вам нужно будет заменить команду на docker-compose up, а если вы работаете в Linux, вам, вероятно, также потребуется установить отдельный docker-composeпакет с помощью диспетчера пакетов.

Команда docker composeзагружает docker-compose.yml, затем загружает и устанавливает все программное обеспечение, указанное в качестве служб. Сейчас нас больше всего интересуют PHP, NGINX и MariaDB.

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

В отличие от ручной установки NGINX/PHP/MySQL непосредственно на ваш ПК, сервер запускается только тогда, когда вы этого хотите, путем запуска docker compose up. Вы можете остановить сервер в любое время, вернувшись в терминал и нажав Ctrl+ C.

Кроме того, вы можете запустить сервер в фоновом режиме с помощью этой команды:

docker compose up -d

Вы можете остановить сервер, запустив его docker compose downиз терминала. (Вы должны открыть терминал в правильном каталоге для запуска и остановки сервера!)

Каждый раз, когда вы хотите работать с веб-сайтом, вы можете запускать и останавливать сервер, используя один и тот же процесс:

перейдите в папку, которую вы создали

откройте свой терминал/Windows PowerShell, как вы это делали ранее

бегатьdocker compose up -d

Когда вы закончите, вы можете остановить сервер, используя тот же процесс:

перейдите в папку, которую вы создали

откройте свой терминал/Windows PowerShell, как вы это делали ранее

бегатьdocker compose down

Если вы оставили терминал открытым в фоновом режиме, вы можете просто открыть окно и выполнить шаг 3.

Совет: команда docker compose downостанавливает запущенные службы и удаляет их, освобождая место на диске. Это также заставляет их воссоздавать каждый раз.

Вы также можете использовать docker compose stopи docker compose startдля остановки и запуска сервера. Но они полагаются на контейнер, сеть и другие вещи, которые Docker создает за кулисами и которые сохраняются между запусками. Восстановление системы, перемещение файлов между компьютерами или даже запуск других команд Docker, которые вы используете для других задач (будьте осторожны с docker prune!), могут удалить их.

Использование upи downбудет использовать подход с чистого листа и быть неизменно надежным. Однако он требует удаления, когда он не используется, и повторного создания, когда вы его используете. Однако не беспокойтесь: все ваши файлы PHP, JavaScript и CSS в созданном вами каталоге не будут удалены!

Подключение к серверу и создание вашего первого файла

Теперь, когда у вас запущен сервер, вы можете подключиться к нему с помощью своего любимого веб-браузера. Сервер действует как настоящий веб-сервер, работающий где-то в Интернете. Вы можете подключиться к нему, открыв браузер, набрав v.jeв адресной строке и нажав enter.

Вы должны увидеть тестовую страницу, как показано на рисунке ниже.

Скриншот тестовой страницы сервера

Когда сервер запущен, пришло время создать ваш первый файл. Когда вы запускали docker-compose upкоманду, папка с именем websitesавтоматически создавалась в каталоге, из которого была запущена команда. Файлы в websites/default/publicпапке — это файлы, используемые для тестовой страницы на скриншоте выше.

Используя ваш любимый текстовый редактор, создайте файл с именем test.htmlв websites/default/publicкаталоге, который содержит следующий код:

<! DOCTYPE html>

 

 

 

Hello World!

 

 

Теперь вы можете просматривать свою веб-страницу на сервере. По умолчанию (позже мы увидим, что это можно переопределить) URL напрямую сопоставляется с файлом. К файлу с именем, test.htmlпомещенному в publicкаталог, можно получить доступ на https: //v.je/test.html, public/products.htmlего можно просмотреть на https: //v.je/products.html, а файлы можно даже поместить в подкаталоги. Например, public/images/logo.pngможно посмотреть по URL https: //v.je/images/logo.png.

Совет: вам может быть интересно, почему есть три уровня папок — websitesи default— publicвместо того, чтобы просто иметь publicкаталог с файлами в нем.

Среда настроена на размещение нескольких веб-сайтов из разных папок в созданном websitesкаталоге. Чтобы создать новый веб-сайт, доступный по адресу https: //mysite.v.je/, выполните следующие действия:

Создайте каталог mysiteвнутри websitesкаталога.

Создайте каталог publicвнутри mysiteкаталога.

Поместите ваши веб-доступные файлы в websites/mysite/publicкаталог. Например, файл in websites/mysite/public/phpinfo.phpбудет доступен по URL-адресу https: //mysite.v.je/phpinfo.php.

Любой каталог, который вы создаете внутри websitesкаталога, рассматривается как поддомен домена v.je. Если поддомен не указан и вы просто заходите на сайт v.je, он загрузит сайт из defaultкаталога.

Как мы увидим далее в книге, в publicцелях безопасности рекомендуется хранить определенные файлы вне каталога, поэтому у каждого веб-сайта есть publicкаталог.

Примечание: текстовые редакторы, предоставляемые вашей операционной системой, такие как Блокнот или TextEdit, на самом деле не подходят для редактирования сценариев HTML и PHP. Тем не менее, есть несколько надежных текстовых редакторов с богатой поддержкой редактирования PHP-скриптов, которые вы можете скачать бесплатно. Вот некоторые из них, которые работают в Windows, macOS и Linux:

Код Visual Studio (руководство по началу работы)

Атом (руководство по началу работы)

Возвышенный текст (Документация)

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

Мы все настроены

В этой главе вы узнали, как настроить среду разработки PHP с помощью Docker и как разместить HTML-файл на сервере. Я рассмотрел только основы, чтобы быстро добраться до сути этой книги: собственно программирование на PHP. Тем не менее, наличие хорошего рабочего процесса разработки в качестве разработчика PHP само по себе является навыком.

Делитесь нашими материалами с друзьями!

 

 

Заказать разработку сайта