Установка с Docker
Введение
Это руководство содержит пошаговые инструкции по настройке среды PHP 8, адаптированной для разработки машинного обучения, с использованием Docker. Docker предлагает согласованную и изолированную среду, что упрощает управление зависимостями и обеспечивает воспроизводимость на разных системах. Эта настройка идеально подходит для разработчиков, желающих использовать улучшенную производительность и возможности PHP 8 для задач машинного обучения, не беспокоясь о специфических для системы конфигурациях.
Предварительные условия
Перед началом убедитесь, что на вашей системе установлены следующие компоненты:
Docker
Docker Compose
Инструкции по установке см. на официальном сайте Docker (https://docs.docker.com/get-docker/) и следуйте руководству для вашей операционной системы.
Шаг 1: Настройка структуры проекта
Создайте новую директорию для вашего проекта и перейдите в неё:
mkdir php-ml-project
cd php-ml-projectШаг 2: Создание Dockerfile
Создайте файл с именем Dockerfile в директории вашего проекта со следующим содержимым:
FROM php:8.4-fpm
# Установка системных зависимостей
RUN apt-get update && apt-get install -y \
libzip-dev \
zip \
unzip \
git \
libxml2-dev \
libcurl4-openssl-dev \
libpng-dev \
libonig-dev \
&& rm -rf /var/lib/apt/lists/*
# Установка расширений PHP
RUN docker-php-ext-install zip pdo_mysql bcmath xml mbstring curl gd
# Установка Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Установка рабочего каталога
WORKDIR /var/www
# Копирование содержимого существующего каталога приложения
COPY . /var/www
# Настройка PHP
RUN echo "memory_limit = 512M" >> /usr/local/etc/php/conf.d/docker-php-ram-limit.ini
RUN echo "max_execution_time = 300" >> /usr/local/etc/php/conf.d/docker-php-max-execution-time.ini
# Открыть порт 9000 и запустить сервер php-fpm
EXPOSE 9000
CMD ["php-fpm"]Шаг 3: Создание файла Docker Compose
Создайте файл с именем docker-compose.yml в каталоге вашего проекта со следующим содержимым:
Шаг 4: Создание конфигурации Nginx
Создайте файл с именем nginx.conf в каталоге вашего проекта со следующим содержимым: содержимое:
Шаг 5: Создание структуры PHP-проекта
Создайте каталог public и файл index.php:
Шаг 6: Создание конфигурации Composer
Создайте файл с именем composer.json в каталоге вашего проекта со следующим содержимым:
Шаг 7: Сборка и запуск контейнеров Docker
Выполните следующую команду для сборки и запуска контейнеров Docker:
Шаг 8: Установка зависимостей PHP
После запуска контейнеров установите зависимости PHP:
Шаг 9: Проверка Настройки
Откройте веб-браузер и перейдите по адресу http://localhost. Вы должны увидеть страницу с информацией о PHP, подтверждающую правильность вашей настройки.
Шаг 10: Создание простого тестового скрипта для машинного обучения
Мы создадим два тестовых скрипта, по одному для каждой библиотеки, чтобы проверить правильность работы PHP-ML и Rubix ML.
Тестовый скрипт для PHP-ML
Создайте файл с именем php_ml_test.php в вашей директории public:
Тестовый скрипт Rubix ML
Создайте еще один файл с именем rubix_ml_test.php в вашей директории public:
Для запуска этих скриптов используйте следующие команды:
Если все настроено правильно, вы должны увидеть результат прогнозирования.
Дополнительные команды Docker
Вот несколько полезных команд Docker для управления вашей средой:
Остановка контейнеров:
docker-compose downПросмотр логов контейнеров:
docker-compose logsДоступ к оболочке контейнера PHP:
docker-compose exec app bashЗапуск скриптов PHP:
docker-compose exec app php your_script.php
Заключение
Теперь у вас есть среда PHP 8 на основе Docker для разработки машинного обучения. Эта настройка включает PHP 8.4, Nginx, MySQL, PHP-ML и библиотеки Rubix ML. В этой изолированной и воспроизводимой среде вы можете начать разработку приложений машинного обучения на PHP.
Не забудьте пересобрать образ Docker, если внесете изменения в Docker file:
Last updated