Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hw7 #534

Open
wants to merge 6 commits into
base: MMelnyk/hw1
Choose a base branch
from
Open

hw7 #534

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
.vagrant
.idea
application/.env
application/vendor
42 changes: 29 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,11 @@ https://otus.ru/lessons/razrabotchik-php/?utm_source=github&utm_medium=free&utm_

# Задание

Docker
1. Установить Docker себе на локальную машину
2. Описать инфраструктуру в Docker-compose, которая включает в себя
3. nginx (обрабатывает статику, пробрасывает выполнение скриптов в fpm)
4. php-fpm (соединяется с nginx через unix-сокет)
5. redis (соединяется с php по порту)
6. memcached (соединяется с php по порту)
7. БД подключать как отдельную VM (можно на базе Homestead), либо как контейнер (но тогда не забудьте про директории с данными)
8. Не забудьте про Composer
Приложение верификации email
Реализовать приложение (сервис/функцию) для верификации email.
Реализация будет в будущем встроена в более крупное решение.
Минимальный функционал - список строк, которые необходимо проверить на наличие валидных email.
Валидация по регулярным выражениям и проверке DNS mx записи, без полноценной отправки письма-подтверждения.

# Установка

Expand All @@ -33,17 +29,37 @@ vagrant ssh
cd application && cp .env.example .env
```

Далее, заполните все пустые строки нужными данными в файле `.env`
Далее, заполните все пустые строки нужными данными в файле `.env`.
Особенно важным тут является переменная окружения `DOMAIN_API`

После чего выполните команду

```bash
sudo docker compose up -d
```

Добавьте сайт `mysite.local` в файл `hosts`
Зайдите внутрь контейнера

```bash
docker container exec -it myapp-php-dev bash
```

Выполните команду

```bash
cd console
```

## Запуск и работа скрипта

Для запуска скрипта выполните следующую команду:

```bash
127.0.0.1 mysite.local
php app.php
```

Готово!
Данные для теста скрипт берёт из файла

```text
/data/www/files/emails.txt
```
3 changes: 3 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Vagrant.configure("2") do |config|
# forwarding ports
config.vm.network :forwarded_port, guest: 80, host: 80

# sync current folders to vagrant. I use rsync because of problems with syncing windows and linux
config.vm.synced_folder ".", "/vagrant", type: "rsync"

# config resources for the VM
config.vm.provider "virtualbox" do |v|
v.memory = 4048
Expand Down
2 changes: 2 additions & 0 deletions application/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ MYSQL_USER=db_user
MYSQL_PASSWORD=
# suffix for names of docker containers
DOCKER_CONTAINER_SUFFIX=-dev
# Api to the domain verification service
DOMAIN_API=
18 changes: 18 additions & 0 deletions application/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "gesparo/hw",
"type": "project",
"autoload": {
"psr-4": {
"Gesparo\\Hw\\": "src/"
}
},
"authors": [
{
"name": "Maksym Melnyk"
}
],
"require": {
"ext-curl": "*",
"vlucas/phpdotenv": "^5.5"
}
}
Loading
Loading