Laradock을 사용하여 Laravel을 움직일 때까지

6790 단어 LaraDock라라벨

PHP 프레임워크 시장



PHP 프레임워크는 2014년부터 Laravel에 대한 인기가 모여 있습니다.
이전 심포니에서 개발하고 있었지만, 인기는 평평합니다. Cake, Zend에 관해서는 하화입니다.
어느새 Laravel의 1인승 상태입니다.


가상화 시장



VMware나 Virtualbox의 가상화는 널리 사용되고 있습니다만, 기동이 느리거나 과제도 있습니다.
Docker의 등장으로 컨테이너형 가상화가 쉬워졌습니다.
호스트형과 컨테이너형의 차이는 이쪽의 기사가 매우 알기 쉽습니다.
htps : // 코 m / 아킨 코 / ms / 8fb50fb6d60 eb975d
커널을 호스트와 공유하고 있어 그 위에 복수의 컨테이너가 움직이는 이미지입니다.



docker 도입의 이점을 이쪽이 잘 설명해 줍니다

인기의 2개를 맞춘 Laradock 만지면 틀림없다



이번에는 Laravel+Nginx+phpMyAdmin의 환경을 구축합니다.

미리 다음을 설치해야 합니다.
  • Docker
  • Git

  • windows의 경우



    windows for docker를 다음과 같이 설치합니다.
    htps : // 이 m / 오가 아 안 / ms / 99 54f052 또는 450889f7

    환경 구축



    Laradock 설치



    작업 디렉토리를 만들고 github에서 clone
    $ mkdir Work
    $ cd Work
    $ git clone https://github.com/LaraDock/laradock.git
    

    컨테이너의 응용 프로그램에 대한 구성 파일을 만듭니다.
    laradock의 env-example 파일을 .env 파일로 복사합니다.
    $ cd laradock
    $ cp env-example .env
    

    컨테이너 환경 설정 변경



    이번에는 아래와 같은 폴더 구성으로 하고 싶습니다.
    フォルダ構成
    work
      ┗ laradock
      ┗ develop
    

    Laradock 디렉토리 아래의 .env 파일에서 APP_CODE_PATH_HOST를 변경하여 응용 프로그램 디렉토리를 지정할 수 있습니다.
    APP_CODE_PATH_HOST를 ../develop로, MYSQL 버전을 latest에서 5.7로 데이터베이스 이름, User, password도 변경합니다.
    최신판의 8.0계는 Laravel의 migrate 커멘드로 빠질 가능성이 있습니다.
    $ vi .env
    
    # Point to the path of your applications code on your host
    APP_CODE_PATH_HOST=../develop
    
    ### MYSQL #################################################
    
    MYSQL_VERSION=5.7
    MYSQL_DATABASE=laradock
    MYSQL_USER=laradock
    MYSQL_PASSWORD=laradock
    MYSQL_PORT=3306
    MYSQL_ROOT_PASSWORD=laradock
    MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
    
    ### PHP MY ADMIN ##########################################
    
    # Accepted values: mariadb - mysql
    
    PMA_DB_ENGINE=mysql
    
    # Credentials/Port:
    
    PMA_USER=laradock
    PMA_PASSWORD=laradock
    PMA_ROOT_PASSWORD=laradock
    PMA_PORT=8080
    

    컨테이너 시작



    docker-compose 명령으로 nginx, mysql, workspace, phpmyadmin을 시작합니다.
    -d 옵션으로 컨테이너가 백그라운드에서 시작하고 계속 실행합니다.

    docker-compose는 복수의 컨테이너로 구성된 어플리케이션에 대해 Docker 이미지의 빌드나 각 컨테이너의 기동·정지 등을 보다 간단하게 실시할 수 있도록 하는 툴입니다.

    docker는 1 컨테이너 = 1 프로세스이므로,
    호스트 OS에서 ps 명령을 두드리면 Docker에서 실행중인 프로세스를 그대로 확인할 수 있습니다.
    $ docker-compose up -d nginx mysql workspace phpmyadmin
    $ docker-compose ps
    

    기타 docker-compose 명령은 여기

    Laravel 프로젝트 만들기



    workspace(작업 영역)로 들어갑니다.
    --prefer-dist로 Laravel 버전을 지정할 수 있습니다.
    최신은 5.7이지만 이번에는 5.5를 지정합니다.
    프로젝트를 만드는 데 약간의 시간이 걸립니다.
    $ docker-compose exec --user=laradock workspace bash
    laradock@5cf89da63592:/var/www$
    laradock@5cf89da63592:/var/www$ composer create-project laravel/laravel develop --prefer-dist "5.5"
    

    Laravel 환경 설정 변경



    생성된 Laravel 프로젝트 아래의 .env를 업데이트합니다.
    laradock@5cf89da63592:/var/www$ cd develop/
    laradock@5cf89da63592:/var/www/develop$ vi .env
    
    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=laradock
    DB_USERNAME=laradock
    DB_PASSWORD=laradock
    laradock@5cf89da63592: exit
    

    nginx의 루트 변경


    cd laradock
    vi nginx/sites/default.conf
    root /var/www/develop/public;
    

    컨테이너 재부팅



    docker-compose restart라면 laravel의 루트 설정이 변경되지 않으므로,
    컨테이너 자체를 다시 만듭니다.
    docker-compose down
    docker-compose build --no-cache mysql
    docker-compose up -d nginx mysql workspace phpmyadmin
    docker-compose ps
    

    확인



    모든 컨테이너가 up이 되어 있으면 OK입니다.
              Name                          Command              State                    Ports
    --------------------------------------------------------------------------------------------------------------
    laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up      2375/tcp
    laradock_mysql_1              docker-entrypoint.sh mysqld     Up      0.0.0.0:3306->3306/tcp, 33060/tcp
    laradock_nginx_1              /bin/bash /opt/startup.sh       Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
    laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up      9000/tcp
    laradock_phpmyadmin_1         /run.sh supervisord -n          Up      0.0.0.0:8080->80/tcp, 9000/tcp
    laradock_workspace_1          /sbin/my_init                   Up      0.0.0.0:2222->22/tcp
    

    mysql이 시작되지 않으면 ~/.laradock/data/mysql이 손상되었을 수 있습니다. 그 경우는 아래의 여기 사이트를 참고해 주세요.



    http://localhost:8080에서 phpmyadmin에 액세스할 수 있는지 확인합니다.



    phpmyadmin에서 .env로 지정한 사용자, 비밀번호로 로그인할 수 있으면 OK입니다.

    컨테이너간에 어떻게 통신하고 있습니까? 궁금하다고 생각하시는 분은 이쪽

    이제 Laravel 개발을 시작할 준비가 되었습니다.

    조속히 인증 기능을 만들어 가자.

    좋은 웹페이지 즐겨찾기