Yii- рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдорд╛рд╣реМрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЙрдард╛рдирд╛ рд╣реИред Yii- рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдРрд╕рд╛ рдЫреЛрдЯрд╛ рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реА рдЯреАрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ docker, docker-compose, php рдФрд░ php-рд╕рдВрдЧреАрддрдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдбреЙрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВред


mkdir project-dir cd project-dir && mkdir docker 

рдбреЙрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВред


 #    nginx  php FROM richarvey/nginx-php-fpm #     ADD app /var/www/app #       RUN rm -Rf /etc/nginx/sites-enabled/* #    ADD docker/conf/nginx/site.conf /etc/nginx/sites-available/site.conf #   RUN ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf 

рдПрдХ рд╣реА рдбреЙрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП docker-compose.yml рдмрдирд╛рдПрдВред


 #   docker-compose version: '3' #    deafult    networks: default: driver: bridge #    services: #   - app: #   Dockerfile build: #      context: ../ dockerfile: ./docker/Dockerfile #   80  ports: - "80:80" #        networks: - default #    db depends_on: - db #       volumes: - "../app:/var/www/app" #      nginx - "./conf/nginx:/etc/nginx/sites-available" #     db: image: mysql:latest #        networks: - default #    ports: - "3336:3306" #      environment: #    MYSQL_ROOT_PASSWORD: root #     MYSQL_DATABASE: yii-template-db #       volumes: - "./database:/var/lib/mysql" 

Nginx рдХреЗ рд▓рд┐рдП, docker / conf / nginx рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ site.conf рдлрд╝рд╛рдЗрд▓ рдЗрд╕рдореЗрдВ рдмрдирд╛рдПрдВ ред рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ nginx рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рддреНрд░рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ nginx рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП: nginx -s reload


 server { charset utf-8; client_max_body_size 128M; listen 80; ## listen for ipv4 root /var/www/app/frontend/web/; index index.php; access_log /var/www/app/log/frontend-access.log; error_log /var/www/app/log/frontend-error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } # uncomment to avoid processing of calls to non-existing static files by Yii #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { # try_files $uri =404; #} #error_page 404 /404.html; # deny accessing php files for the /assets directory location ~ ^/assets/.*\.php$ { deny all; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php-fpm.sock; try_files $uri =404; } location ~* /\. { deny all; } } 

рд╕рднреА рдХрдорд╛рдВрдб рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред


  • composer create-project --prefer-dist yiisoft/yii2-app-advanced app рдХреНрд░рд┐рдПрд╢рди рдХрдорд╛рдВрдб composer create-project --prefer-dist yiisoft/yii2-app-advanced app ред
  • docker-compose -f docker/docker-compose.yml up -d
  • рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ app/init --env=Development --overwrite=All рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ
  • рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдлрд╛рдЗрд▓ рдПрдк / рдХреЙрдорди / рдХреЙрдиреНрдлрд┐рдЧ / рдореЗрди-рд▓реЛрдХрд▓.рдлрдкреА рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реЗ рднрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ, DB рд╣реЛрд╕реНрдЯ db рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдирд╛рдо yii-template-db рд╣реИред
  • docker exec -it docker_app_1 bash рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрдорд╛рдВрдб php /var/www/app/yii migrate рдЪрд▓рд╛рдПрдБ
  • рдПрдХ рд▓реЙрдЧ рдлрд╝реЛрд▓реНрдбрд░ mkdir /var/www/app/log рдмрдирд╛рдПрдБ
  • рдФрд░ exit
  • рд╣рдо рдмреНрд░реЗрдХ рд╕реЗрд╡рд╛ docker-compose -f docker/docker-compose.yml down
  • рдЗрд╕реЗ рдлрд┐рд░ docker-compose -f docker/docker-compose.yml up -d
  • рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдирдИ рд╕рд╛рдЗрдЯ рджреЗрдЦреЗрдВред

рдЕрджреНрдпрддрди: рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдореЗрд╢рд╛ Yii2 рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рд╣реЛрддреА рд╣реИ ред

Source: https://habr.com/ru/post/hi428688/


All Articles