Skip to content

Lelya/docker-nginx-php-mysql-pdo-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nginx PHP MySQL PDO 2

Docker с Nginx, PHP-FPM, Composer, MySQL, PDO and PHPMyAdmin.

Нужно хранить свою библиотеку в БД. Хранятся только названия книг и авторы. У одной книги может быть несколько авторов, у одного автора может быть несколько книг. Предложите структуру таблиц и напишите SQL запрос получающий список книг, которые написаны 3-мя и более со-авторами (то есть получить отчет «книга — количество соавторов»).


Необходимые установки

На данный момент этот проект создан для работы в Unix (Linux/MacOS). Для MacOS тестирование не проводилось. Возможно он будет работать на Windows 10.

Необходимые программы

Проверьте установлен лиdocker-compose следующей командой:

which docker-compose

Если нет, то установите его.

Images

В этом проекте используются следующие порты:

Server Port
MySQL 8989
PHPMyAdmin 8080
Nginx 8000
Nginx SSL 3000

Копирование проекта

Установите Git, загрузите репозиторий локально

git clone https://github.com/Lelya/docker-nginx-php-mysql-pdo-2.git

Перейдите в папку проекта:

cd docker-nginx-php-mysql-pdo-2

Дерево проекта

.
├── Makefile
├── README.md
├── data
│   └── db
│       ├── dumps
│       └── mysql
├── docker-compose.yml
├── etc
│   ├── nginx
│   │   ├── default.conf
│   │   └── default.template.conf
│   ├── php
|   |   └── Dockerfile
│   │   └── php.ini
│   └── ssl
└── web
    ├── app
    │   ├── composer.json.dist
    │   ├── src
    │   │   └── Init.php
    └── public
        └── index.php

Конфигурация Nginx с SSL Certificates

Вы можете изменить имя сервера отредоктировав .env file.

Если вы изменили имя сервера, то не забудьте добавить его в /etc/hosts файл.

  1. Генерация SSL certificates

    source .env && sudo docker run --rm -v $(pwd)/etc/ssl:/certificates -e "SERVER=$NGINX_HOST" jacoelho/generate-certificate
  2. Конфигурация Nginx

    Не изменяйте etc/nginx/default.conf файл, он перезаписывается с etc/nginx/default.template.conf

    Отредактируйте etc/nginx/default.template.conf и расскоментируйте раздел ssl:

    # server {
    #     server_name ${NGINX_HOST};
    #
    #     listen 443 ssl;
    #     fastcgi_param HTTPS on;
    #     ...
    # }

Запуск приложения

  1. Скопируйте конфигурационный файл composer.json:

    cp web/app/composer.json.dist web/app/composer.json
  2. Запуск приложения :

    sudo docker-compose up -d

    Это может занять несколько минут, пока подгрузятся все зависимости

    sudo docker-compose logs -f # Follow log output
  3. Откройте в браузере:

  4. Остановка и очистка сервисов

    sudo docker-compose down -v

About

Тестовая задача 3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published