Skip to content

Lelya/docker-nginx-php-mysql-pdo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nginx PHP MySQL PDO

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

Написать класс init, от которого нельзя сделать наследника, состоящий из 3 методов: create() - доступен только для методов класса, создает таблицу test, содержащую 5 полей:

  • id целое, автоинкрементарное;
  • script_name строковое, длиной 25 символов;
  • start_time timestamp с автозаполнением;
  • sort_index целое (значения не превышают 3-х разрядов);
  • result один вариант из 'normal', 'illegal', 'failed', 'success';

fill() - доступен только для методов класса, заполняет таблицу случайными данными; get() - доступен извне класса, выбирает из таблицы test, данные по критерию: result среди значений 'normal' и 'success'. В конструкторе выполняются методы create и fill.

Весь код должен быть прокомментирован в стиле PHPDocumentorа.


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

На данный момент этот проект создан для работы в 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.git

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

cd docker-nginx-php-mysql-pdo

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

.
├── Makefile
├── README.md
├── data
│   └── db
│       ├── dumps
│       └── mysql
├── doc
├── 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

Docker commands

Установка package с composer

sudo docker run --rm -v $(pwd)/web/app:/app composer require symfony/yaml

Обновление PHP зависимостей с composer

sudo docker run --rm -v $(pwd)/web/app:/app composer update

Генерация PHP API documentation

sudo docker-compose exec -T php php -d memory_limit=256M -d xdebug.profiler_enable=0 ./app/vendor/bin/apigen generate app/src --destination ./app/doc

Тестирование PHP application with PHPUnit

sudo docker-compose exec -T php ./app/vendor/bin/phpunit --colors=always --configuration ./app

Стандартизация кода с PSR2

sudo docker-compose exec -T php ./app/vendor/bin/phpcbf -v --standard=PSR2 ./app/src

Проверка стандартизации кода с PSR2

sudo docker-compose exec -T php ./app/vendor/bin/phpcs -v --standard=PSR2 ./app/src

Анализ кода с PHP Mess Detector

sudo docker-compose exec -T php ./app/vendor/bin/phpmd ./app/src text cleancode,codesize,controversial,design,naming,unusedcode

Проверка установки всех PHP расширений

sudo docker-compose exec php php -m

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published