laradock + cakePHP3로 환경 구축
laradock을 적절한 디렉토리에 git clone
$ mkdir sample_project
$ cd sample_project
$ git clone https://github.com/laradock/laradock.git
.env 파일 만들기
이번에는 이런 구성으로 가자고 생각합니다.
+ laradock
+ myapp
env-example 파일을 복사하여 .env 파일을 만듭니다.
$ cd laradock
$ cp env-example .env
docker-compose로 환경 빌드
nginx와 mysql과 phpmyadmin
$ docker-compose up -d nginx mysql phpmyadmin
컨테이너가 시작되었는지 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ba965f3c20d laradock_mysql "docker-entrypoint.s…" 18 hours ago Up 12 seconds 0.0.0.0:3306->3306/tcp laradock_mysql_1
310b880caca5 laradock_phpmyadmin "/run.sh phpmyadmin" 18 hours ago Up 7 seconds 9000/tcp, 0.0.0.0:8080->80/tcp laradock_phpmyadmin_1
0781d6c8ab84 laradock_nginx "nginx" 18 hours ago Up 5 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
75a72f0e829c laradock_php-fpm "docker-php-entrypoi…" 18 hours ago Up 6 seconds 9000/tcp laradock_php-fpm_1
6668e7c4ef01 laradock_workspace "/sbin/my_init" 18 hours ago Up 12 seconds 0.0.0.0:2222->22/tcp laradock_workspace_1
phpmyadmin은
.env
의 PHP MY ADMIN 설정이 기본값이면 http://localhost:8080 에 넣습니다.workspace에 들어간다
$ docker-compose exec workspace bash
cakePHP3 설치
myapp는 cakePHP를 설치할 디렉토리 이름입니다.
$ composer self-update && composer create-project --prefer-dist cakephp/app myapp
root 디렉토리를 cakePHP용으로 설정
cakePHP의 루트 디렉토리
/webroot
를 설정합니다.$ vim laradock/nginx/sites/default.conf
- root /var/www/public;
+ root /var/www/myapp/webroot;
nginx 재부팅
루트 디렉토리 변경 사항을 반영하기 위해 nginx를 다시 시작합니다.
$ docker-compose restart nginx
intl 사용
cakePHP는 intl 확장 모듈이 필요합니까? 어른스럽게 넣어 버립니다.
$ vim laradock/.env
- PHP_FPM_INSTALL_INTL=false
+ PHP_FPM_INSTALL_INTL=true
php-fpm의 컨테이너 재생성
intl을 활성화했으므로 다시 빌드합니다.
$ docker-compose up -d --build php-fpm
표시 확인
http://localhost 에서 cakePHP의 welcome 페이지가 표시되면 OK입니다.
DB 설정
DB 연결 설정도 수행합니다.
laradock/.env
의 MYSQL 설정에 맞춥니다.cakePHP 소스,
config/app.php
의 220 행 근처config/app.php`
- 'host' => 'localhost',
- 'username' => 'my_app',
- 'database' => 'my_app',
+ 'host' => 'mysql',
+ 'username' => 'default',
+ 'database' => 'my_app',
이런 식으로 welcome 페이지의 Database 부분이 녹색 수탉 모자 (?)가되면 OK입니다.
제 경우에는, 좀처럼 mysql이 기동해 주지 않고, 이전에 빌드한 모든 docker 컨테이너와 이미지와,
.laradock
도 폴더 마다 삭제해 다시 했습니다.이 기사 에 있는 것처럼, docker의 설정을 바꿀 때
docker-compose stop
하지 않았던 것이 원인인 것 같습니다.참고한 기사
덤
mysql을 빌드할 때 이런 오류가.
ERROR: Service 'mysql' failed to build: Get https://registry-1.docker.io/v2/library/mysql/manifests/8.0: unauthorized: incorrect username or password
한 번 로그 아웃하는 것이 좋다.
컨테이너 시작시 ERROR: Service 'mysql' failed to build 에러 대응 - Qiita
$ docker logout
Reference
이 문제에 관하여(laradock + cakePHP3로 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aberyotaro/items/319eb50850aa48b2565e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)