LEMP стек - это адекватный вариант стека для разработки на PHP. Стек включает в себя следующие сервисы:
- Nginx сервер
- PHP FPM сервер
- MySQL (MariaDB)
- phpMyAdmin
Наиболее удобный способ установки полноценного LEMP стека для разработки - использование Docker Compose. Инструкции по установке Docker есть на их официальном сайте.
Установка
Создаем в любом удобном месте любую директорию, отведенную под LEMP (например, lempstack). В этой директории создаем и заполняем следующие файлы:
-
docker-compose.ymlservices: php: build: dockerfile: php-dockerfile volumes: - ./public:/var/www/html depends_on: - mariadb nginx: image: nginx ports: - 127.0.0.1:80:80 links: - php volumes: - ./public:/var/www/html - ./nginx:/etc/nginx/conf.d depends_on: - php mariadb: image: mariadb environment: MYSQL_ROOT_PASSWORD: P@ssw0rd volumes: - mariadb_data:/var/lib/mysql phpmyadmin: image: phpmyadmin/phpmyadmin:latest ports: - 127.0.0.1:8080:80 environment: PMA_HOST: mariadb depends_on: - mariadb volumes: mariadb_data: -
php-dockerfileFROM php:8.2-fpm-bookworm RUN apt update && \ apt install -y zip libzip-dev libpng-dev RUN docker-php-ext-install mysqli pdo pdo_mysql gd zip -
nginx/nginx.confserver { listen 80 default_server; listen [::]:80 default_server; server_name localhost; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.php$ { fastcgi_pass php:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
После создания всех описанных файлов открываем терминал (или командную строку) в директории с docker-compose.yml и поднимаем компоуз:
docker compose up -dПосле этого создаем в директории public файл index.php и для теста вписываем в нем следующий код:
<?php
phpinfo();
?>Сохраняем файл, заходим в браузере на localhost. Если там открывается страница php info, значит все настроено правильно и работает. phpMyAdmin доступен на localhost:8080
Удаление
Так как в данном случае мы имеем дело с докером, удалить данный набор софта с компьютера будет крайне просто:
- Выключаем компоуз командой
docker compose down - Очищаем систему от отключенных образов, контейнеров, дисков и сетей командой
docker system prune -a - Удаляем директорию с компоузом.