Это руководство содержит пошаговые инструкции по настройке среды PHP 8, адаптированной для разработки машинного обучения, с использованием Docker. Docker предлагает согласованную и изолированную среду, что упрощает управление зависимостями и обеспечивает воспроизводимость на разных системах. Эта настройка идеально подходит для разработчиков, желающих использовать улучшенную производительность и возможности PHP 8 для задач машинного обучения, не беспокоясь о специфических для системы конфигурациях.
Предварительные условия
Перед началом убедитесь, что на вашей системе установлены следующие компоненты:
Docker
Docker Compose
Инструкции по установке см. на официальном сайте Docker (https://docs.docker.com/get-docker/) и следуйте руководству для вашей операционной системы.
Шаг 1: Настройка структуры проекта
Создайте новую директорию для вашего проекта и перейдите в неё:
mkdirphp-ml-projectcdphp-ml-project
Шаг 2: Создание Dockerfile
Создайте файл с именем Dockerfile в директории вашего проекта со следующим содержимым:
FROM php:8.5-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/*# Установка расширений PHPRUN docker-php-ext-install zip pdo_mysql bcmath xml mbstring curl gd# Установка ComposerCOPY --from=composer:latest /usr/bin/composer /usr/bin/composer# Установка рабочего каталогаWORKDIR /var/www# Копирование содержимого существующего каталога приложенияCOPY . /var/www# Настройка PHPRUN echo "memory_limit = 512M" >> /usr/local/etc/php/conf.d/docker-php-ram-limit.iniRUN echo "max_execution_time = 300" >> /usr/local/etc/php/conf.d/docker-php-max-execution-time.ini# Открыть порт 9000 и запустить сервер php-fpmEXPOSE 9000CMD ["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 8 на основе Docker для разработки машинного обучения. Эта настройка включает PHP 8.5, Nginx, MySQL, PHP-ML и библиотеки Rubix ML. В этой изолированной и воспроизводимой среде вы можете начать разработку приложений машинного обучения на PHP.
Не забудьте пересобрать образ Docker, если внесете изменения в Docker file: