Laradock을 사용하여 Laravel을 움직일 때까지
PHP 프레임워크 시장
PHP 프레임워크는 2014년부터 Laravel에 대한 인기가 모여 있습니다.
이전 심포니에서 개발하고 있었지만, 인기는 평평합니다. Cake, Zend에 관해서는 하화입니다.
어느새 Laravel의 1인승 상태입니다.
가상화 시장
VMware나 Virtualbox의 가상화는 널리 사용되고 있습니다만, 기동이 느리거나 과제도 있습니다.
Docker의 등장으로 컨테이너형 가상화가 쉬워졌습니다.
호스트형과 컨테이너형의 차이는 이쪽의 기사가 매우 알기 쉽습니다.
htps : // 코 m / 아킨 코 / ms / 8fb50fb6d60 eb975d
커널을 호스트와 공유하고 있어 그 위에 복수의 컨테이너가 움직이는 이미지입니다.
docker 도입의 이점을 이쪽이 잘 설명해 줍니다
인기의 2개를 맞춘 Laradock 만지면 틀림없다
이번에는 Laravel+Nginx+phpMyAdmin의 환경을 구축합니다.
미리 다음을 설치해야 합니다.
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 개발을 시작할 준비가 되었습니다.
조속히 인증 기능을 만들어 가자.
Reference
이 문제에 관하여(Laradock을 사용하여 Laravel을 움직일 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ichimura/items/27d4a628ff22e2ba8b35
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
フォルダ構成
work
┗ laradock
┗ develop
$ 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 up -d nginx mysql workspace phpmyadmin
$ docker-compose ps
$ 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"
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
cd laradock
vi nginx/sites/default.conf
root /var/www/develop/public;
docker-compose down
docker-compose build --no-cache mysql
docker-compose up -d nginx mysql workspace phpmyadmin
docker-compose ps
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
Reference
이 문제에 관하여(Laradock을 사용하여 Laravel을 움직일 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ichimura/items/27d4a628ff22e2ba8b35텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)