Docker compose로 PHP(phalcon) + Nginx + Mysql 올리기 2부

Docker

Language :

안녕하세요 Lovefield입니다.

이전 글에 이어서 docekr-compose up -d가 잘 동작 하셨나요? 제대로 실행하셨다면 localhost에 접속하고나서 nginx의 404 페이지가 보일 겁니다. 아직 아무런 코드가 준비되지 않았으니 당연하겠죠?

phalcon폴더에 composer.json 을 생성해봅시다.

{
   "name": "phalcon/blog",
   "description": "Phalcon project!",
   "license": "proprietary",
   "require": {
     "php": "^7.4",
     "phalcon/devtools": "v4.0.3",
     "phalcon/cphalcon": "4.0.6"
   }
 }

docker exec -it php /bin/bash 명령어를 통해 “php”컨테이너에 접근합니다.컨테이너 내부에서 composer install명령어로 phalcon 프로젝트를 위한 기반 라이브러리 다운로드 합니다.다운로드가 끝나면 명령어를 쓸 수 있어야 하는데, 버그인지 명령어를 사용할수 없으므로 직접 실행파일을 찾아서 사용해야 합니다.

vendor/phalcon/devtools/phalcon을 사용하면 phalcon명령어가 실행됩니다.

phalcon-commend.png

vendor/phalcon/devtools/phalcon create-project blog를 통해 phalcon 프로젝트를 생성합니다. 그러면 phalcon폴더 안에 blog프로젝트가 생성되는데요. 저희는 phalcon폴더를 프로젝트로 사용할것이기 때문에 파일을 전부 phalcon폴더위치로 옮겨줍니다.

phalcon-dir.png

이제 localhost에 접속하면 다음과 같은 화면이 뜰겁니다

localhost-screenshot.png

이제 phalcon을 이용한 화면은 접근이 가능해졌습니다. 마지막으로 DB를 설정해야하는데요. 저는 개인적으로 Mysql Workbench를 사용합니다.

mysql-host.png

위와같이 설정한후 Store in Keychain을 통해 root비밀번호를인 root_pw를 입력해줍니다.

mysql-db.png

정상적으로 동작하는것을 확인 할 수 있습니다.DB가 정상인걸 확인했으니 Phalcon에서 db에 연결 할 수 있도록 “phalcon/app/config/config.php”를 수정해줍니다.

<?php
defined('BASE_PATH') || define('BASE_PATH', getenv('BASE_PATH') ?: realpath(dirname(__FILE__) . '/../..'));
defined('APP_PATH') || define('APP_PATH', BASE_PATH . '/app');

return new \Phalcon\Config([
   'database' => [
       'adapter'     => 'Mysql',
       'host'        => 'mysql:3306',
       'username'    => 'root',
       'password'    => 'root_pw',
       'dbname'      => 'app',
       'charset'     => 'utf8',
   ],
   'application' => [
       'appDir'         => APP_PATH . '/',
       'controllersDir' => APP_PATH . '/controllers/',
       'modelsDir'      => APP_PATH . '/models/',
       'migrationsDir'  => APP_PATH . '/migrations/',
       'viewsDir'       => APP_PATH . '/views/',
       'pluginsDir'     => APP_PATH . '/plugins/',
       'libraryDir'     => APP_PATH . '/library/',
       'cacheDir'       => BASE_PATH . '/cache/',
       'baseUri'        => '/',
   ]
]);

이제 모든 설정은 끝났습니다. DB가 연결된 하나의 Phalcon 프로젝트가 생성되었습니다.

Lovefield

Web Front-End developer

하고싶은게 많고, 나만의 서비스를 만들고 싶은 변태스러운 개발자입니다.