Как настроить стек LAMP с помощью Docker Compose

5 feb 2024 3 min di lettura
Как настроить стек LAMP с помощью Docker Compose
Indice dei contenuti

Введение

В развивающейся среде веб-разработки использование возможностей контейнеризации через Docker стало переломным моментом, особенно при развертывании сложных сред, таких как стек LAMP (Linux, Apache, MySQL, PHP). Цель этого руководства — провести вас через простой процесс настройки стека LAMP с помощью Docker-Compose, но с добавлением: мы включим шаг по настройке вашей среды PHP для включения дополнительных модулей и Composer, менеджера зависимостей PHP.

Предварительные условия

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

  • Docker: платформа для разработки, доставки и запуска контейнерных приложений.
  • Docker-Compose — инструмент для определения и запуска многоконтейнерных приложений Docker.

Вы можете проверить установку этих инструментов, запустив docker -v и docker-compose -v в своем терминале. Если вы еще не установили их, посетите официальный сайт Docker для получения инструкций по установке.

Шаг 1. Создайте файл Docker-Compose.

Начните с создания файла docker-compose.yml в каталоге вашего проекта. Этот файл имеет решающее значение, поскольку он управляет конфигурацией вашего стека LAMP, определяя, как должен создаваться и взаимодействовать каждый сервис.

version: '3'
 services:
 web:
 build:.
 container_name: apache-php
 ports:
 - "80:80"
 volumes:
 -./www:/var/www/html
 db:
 image: mysql:8
 container_name: mysql-server
 command: --default-authentication-plugin=mysql_native_password
 restart: always
 environment:
 MYSQL_ROOT_PASSWORD: secure_password
 MYSQL_DATABASE: mydb
 MYSQL_USER: myuser
 MYSQL_PASSWORD: password
 ports:
 - "3306:3306"
 volumes:
 - db_data:/var/lib/mysql
 volumes:
 db_data:

В этой настройке подробно описаны две основные службы: web для Apache и PHP и db для MySQL. Обратите внимание на build:. директива в разделе web, которая указывает, что Docker должен использовать Dockerfile в текущем каталоге для создания этой службы.

Шаг 2. Настройте PHP с помощью файла Dockerfile.

Чтобы встроить дополнительные модули PHP и Composer, создайте файл Dockerfile в том же каталоге, что и ваш docker-compose.yml. Этот Dockerfile проинструктирует Docker о том, как подготовить вашу собственную среду PHP.

FROM php:8.3-apache

 # Install additional PHP modules
 RUN docker-php-ext-install pdo_mysql mysqli

 # Install Composer
 RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
 php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
 php -r "unlink('composer-setup.php');"

 # Enable Apache mod_rewrite
 RUN a2enmod rewrite

Этот файл Dockerfile расширяет образ php:8.3-apache, добавляя расширения pdo_mysql и mysqli для взаимодействия с базой данных и глобальную установку Composer.

Шаг 3. Создайте и запустите контейнеры

Когда файл docker-compose.yml готов, вы можете запустить стек LAMP. Откройте терминал, перейдите в каталог вашего проекта, где находится файл docker-compose.yml, и выполните следующую команду:

docker-compose up -d

Флаг -d запускает ваши контейнеры в автономном режиме, освобождая ваш терминал. Docker-Compose извлечет необходимые образы из Docker Hub, создаст определенные службы и настроит сеть и тома, как указано.

Шаг 4. Доступ к стеку LAMP

Как только ваши контейнеры будут запущены и заработают, вы сможете получить доступ к своему серверу Apache, посетив http://localhost в своем веб-браузере. Вы должны увидеть страницу Apache по умолчанию или содержимое вашего каталога ./www, если вы добавили файлы HTML или PHP.

Чтобы взаимодействовать с вашей базой данных MySQL, вы можете использовать следующую команду для доступа к MySQL CLI:

docker-compose exec db mysql -uroot -proot

При необходимости замените root паролем, который вы определили в файле docker-compose.yml.

Шаг 5. Управление стеком LAMP

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

  • Чтобы остановить ваши контейнеры: docker-compose down
  • Чтобы снова запустить контейнеры: docker-compose up -d
  • Чтобы перестроить сервисы после внесения изменений: docker-compose up -d --build

Заключение

Развертывание стека LAMP с помощью Docker и Docker-Compose не только упрощает процесс установки, но и обеспечивает согласованность в различных средах разработки, тестирования и производства. Следуя этому пошаговому руководству, вы научились определять свои службы в файле docker-compose.yml, запускать контейнеры и легко управлять стеком LAMP. Благодаря этим навыкам вы теперь можете быстро и эффективно развертывать веб-приложения, используя возможности контейнеризации.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.