Docker로 FuelPHP 환경 구축

소개



이번에는 CentOS6.5 컨테이너 위에 PHP5.6과 Composer와 FuelPHP1.7을 설치하여 화면을 볼 수있게 될 때까지를 시도합니다.

PHP5.6 단독 Dockerfile 및
PHP5.6+Composer가 들어간 Dockerfile과
PHP5.6+Composer+oil이 들어 있는 Dockerfile을 만들어 두고 싶습니다만 이번은 할애합니다

어쩌면 이것을 쓴 후 여가 시간에 DockerHub에 올릴 것입니다.

이번 내 docker ip는 192.168.99.100입니다.
각자 IP가 변할 수 있기 때문에docker ip VM名에서 확인하십시오.

CentOS 컨테이너 시작



이번 베이스가 되는 컨테이너를 시작합니다
이미지는 여기
htps : // 후 b. 도 c r. 코 m / r / 타카시 오시카와 / 센토 s6 바세 /

필요한 사람은 pull 해 둡시다.docker pull takashioshikawa/centos6base
그럼 컨테이너를 시작합니다.docker run --rm -it -p 80:8080 --name fuel-con takashioshikawa/centos6base
일어났다.
~ ❯ docker run --rm -it -p 80:8080 --name fuel-con takashioshikawa/centos6base
[root@947ec361248a /]#

PHP5.6 설치



세 가지 명령을 치다rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmyum install -y --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
버전 확인
[root@947ec361248a tmp]# php -v
PHP 5.6.17 (cli) (built: Jan  6 2016 19:05:40)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
    with Xdebug v2.3.3, Copyright (c) 2002-2015, by Derick Rethans

5.6 포함

Composer 설치



현재 디렉토리는/tmp에서 여기에 Composer를 설치합니다.
curl -sS https://getcomposer.org/installer | php
[root@947ec361248a tmp]# ls
anaconda-post.log  composer.phar  ks-script-mbvg2Y  yum.log
composer.phar 가 들어 있으면 OK

그리고mv composer.phar /usr/bin/composer실행
이것으로which composer그렇다면
[root@947ec361248a tmp]# which composer
/usr/bin/composer

composer 명령을 사용할 수 있습니다.

FuelPHP 설치



oil 명령을 설치curl https://get.fuelphp.com/oil | sh
[root@947ec361248a tmp]# curl get.fuelphp.com/oil | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
128   385  128   385    0     0    484      0 --:--:-- --:--:-- --:--:--  1258
which: no sudo in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

oil 명령 확인which oil
[root@947ec361248a tmp]# which oil
/usr/bin/oil

OK

FuelPHP를 설치합니다.



디렉토리를 변경합시다.cd /usr/src/
여기에서 Fuel 프로젝트를 만듭니다.
oil create fuel-app
그때 토큰을 들을 수 있다고 생각합니다.
to retrieve a token. It will be stored in "/root/.composer/auth.json" for future use by Composer.
Token (hidden):

GitHub에 로그인하고
htps : // 기주 b. 코 m / 세팅 gs / 토켄 s
Personal settings -> Personal access tokens -> Generate new token으로 토큰 만들기

문자열이 생성된다고 생각하기 때문에 복사하여
Token (hidden):
에 붙여넣기
※문자는 표시되지 않습니다

이제 다운로드가 시작되므로 조금 기다리자.

마지막으로
Writing lock file
Generating autoload files
Error - date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in COREPATH/classes/fuel.php on line 162

오류가 나오지만 시간대 문제로 인해 발생하는 것 같습니다.

php.ini를 확인합시다.
php --ini
[root@947ec361248a src]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
・
・

여러가지 나오지만 실제로 읽고 있는 php.ini는Loaded Configuration File: /etc/php.ini
이것입니다

편집하자.
vim /etc/php.ini
여기

php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

이렇게


php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"

동작 확인



프로젝트에 들어갑니다cd fuel-app
FuelPHP가 대기하는 표준 포트는 8000
주소로 하면
http://localhost:8000

하지만docker run-p 80:8080포트는 8080를 지정합니다.
호스트가 0.0.0.0로 변경
서버 시작 명령은 이렇게
php oil server -h=0.0.0.0 -p=8080-h=0.0.0.0 에서 호스트 지정-p=8080 에서 포트 지정
= 붙여야 하는 것은 무엇인가…
[root@947ec361248a fuel-app]# oil server -h=0.0.0.0 -p=8080
Listening on http://0.0.0.0:8080
Document root is public
Press Ctrl-C to quit.

이런 식으로 나오면 시작할 수 있습니다.

이제 브라우저에서 확인합시다.



완료되었습니다.

소감



FuelPHP의 설치가 길고 GitHub의 token 가지고 가야 하는 시간대에 조심하면 괜찮습니다.

이상

참고 자료



CentOS에 PHP5.6 설치
Composer 본체 설치
빠르고 가벼운 프레임 워크 FuelPHP 사용
FuelPHP 1.7 Documentation

좋은 웹페이지 즐겨찾기