용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.강원도 홍천 서석면에 위치해있으며 1급수 용오름계곡 바로 옆에 있습니다.홍천군 1등 마을로 마을에서 직접 관리하는 용오름캠핑장,펜션 10개를 운영하고 있으며 각종 모임이 가능하도록 식당,회의실,야외무대가 설치되어 있습니다.홍천군 1등 마을답게 캠핑장,펜션 마을 전지역 wi-fi 사용이 가능하며 매년 봄 팸투어 실시, 여름엔 마을에서 재배한 홉으로 직접만든 맥주축제,마리소리 음악축제 를 열고 있습니다.계곡의 경우 수심이 다양하여 다이빙 포인트가 2곳이 있으며 아이들이 안전하게 물놀이를 할 수 있는 곳도 여러 곳 있습니다.홍천 용오름캠핑장 팸투어 다녀왔어요.요즘은 농산촌체험마을에서 캠핑과 여러프로그램을 같이 하는 곳이 추세더라고요. 아미산이 둘러쌓인 청정계곡이 흐르는 아름다운 용오름체험휴양마을 에서 운영하는 홍천 용오름캠핑장 팸투어 다녀왔어요. 테크 앞 강이...붕어빵 가족의 담너머 세상구경https://m.blog.naver.com/1092119/220711235599가을여행-홍천여행- 홍천 용오름 마을 첫째날여행의 계절 가을입니다. 요즘 저희는 강원도에 꽃힌 상태인지라...카페 행복한 이티씨와 함께하는 홍천 용오름 마을 1박2일 체험에 참가를 하였답니다! 평소 체험 시간보다 조금 늦은 출발을 해서 차가 밀리지 않으려나...귀여운 단지https://m.blog.naver.com/sanguidan/50181593653용오름마을 캠핑장여름휴가의 시즌이다.. 강원도의 계곡과 시원함을 만끽하기 위해 캠핑장을 검색하다 우연히 알게 된 홍천의 용오름 캠핑장.. 성수기라 캠핑장 요금들이 사악하다 용오름캠핑장 옆엔 해미르 캠핑장이 있는데...★살로몬의 잇츠캠핑★https://m.blog.naver.com/freeguy9040/20163628934맥주효모로 만든 용오름맥주마을 바쏘 맥주샴푸와 맥주마스크팩...1988년까지 맥주 원료인 홉을 재배하며 번성했던 강원도 홍천군 서석면 용오름 마을이란 곳이 있었습니다…

[Docker]Apache-CodeIgniter-FrontEndPackageManager(Bower)-Php-Ubuntu

[Docker]Apache-CodeIgniter-FrontEndPackageManager(Bower)-Php-Ubuntu

이 포스팅 분류는 Docker를 정확히 어떻게 사용할지를 다루지 않는다. 대신 Docker로 특정 상황에 어떻게 환경을 구축해야하는지의 예제를 담고 있다. 만약 이 Docker에 대해서 어떻게 관리하는 지를 알고싶다면 인터넷을 검색을 활용하거나 필자의 블로그에서 Software-Docker를 확인해주기를 바란다. 현재 여기 업로드 되어있는 모든 예제들은 필자의 github repository에 올라와있다. 그 주소는 아래와 같다.

https://github.com/kukaro/Eris-DockerExampleTemplate 예제를 직접 확인하고 싶다면 해당 repository를 참조하라.

Php를 어느 정도의 사람이 하는지는 필자도 잘 모른다.

필자가 Php를 하는 것도 순전히 취미이기 때문에 한국에서는 php를 선택하는 사람이 얼마 없는걸로 알고있다.

그래도 만약 php를 사용한다면 보통 프레임워크를 선택할것이다.(개발자라면)

Php는 유명한 프레임워크로는 laravel과 codeigniter가 있다.

그래도 소수지만 만난 php유저들 중에서는 laravel이 인기가 좀 있는 편인거 같다.

하지만 필자는 codeigniter로 시작했고 이 역시 인기 있는 편이다.

이번에는 codeigniter를 apache에서 사용할 건데 사실 초기 설정이 매우매우 귀찮다.

php의 장점인 쉽다는걸 무시해도 좋을 만큼 초기 설정이 귀찮은 편이다.

하지만 우리는 Docker가 있으므로 Docker를 쓰면 여러모로 편리하게 사용할 수 있다.

CodeIgniter를 사용하기 앞서 참고할 부분은 아래와 같다.

[CodeIgniter]CodeIgniter설치하기

[CodeIgniter]url에서 index.php 제거하기

또한 우리는 FrontEndPackageManager를 쓸거고 Bower를 쓸것이다.

사실 안쓰고 싶으면 안써도 된다.

만약 쓰기 싫다면 빼라. 설명을 듣고싶다면 아래링크를 참조하라.

[Docker]FrontEndPackageManager(Bower)-Flask-Python-Ubuntu

이제 사용하려면 CodeIgniter의 특성을 알아야한다.

코드 이그나이터는 여러분이 사용했다면 알겠지만 다른 프레임워크와는 사용법이 다르다.

패키지를 인스톨받아서 api로 사용헀던 방식과는 달리

투박하게 그냥 압축파일 풀고 해당 압축파일에 집어넣는 방식이다.

그래서 Docker를 쓸 때 코드이그나이터를 아예 통째로 집어놓고 쓸것이냐

아니면 코드 이그나이터는 웹에서 받고 파트만 부분부분 붙이냐로 나뉜다.

필자의 생각으로는 아무리그래도 통째로 집어넣는건 좀 아닌거 같아서 wget으로 내려받기로 결정했다.

전체 프로젝트의 구조를 우선 보자.

codeigniter에 덮어 쓸 부분을 project에 넣는다. 사실 폴더이름은 뭐든 좋다.

그리고 apache설정파일인 conf와 .htaccess, 그리고 프론트엔드의 관리에쓸 bower도 보인다.

이 전체적인 프로젝트는 단순한 기능을 하기 위해서 구현한거지만 꽤 준비물이 많다.

그 이유는 codeigniter의 성격 때문에 그렇다.

index.php주소를 없애야하기때문에 그에 대한 설정이 필요하기 때문이다.

그럼 Dockerfile을 보도록 하자.

# Install ubuntu

FROM ubuntu:16.04

MAINTAINER kukaro

RUN apt-get -y update && apt-get -y upgrade

# Set Argument

ENV DEST /var/www/html

ENV CI_VER 3.1.8

# Install php

RUN apt-get -y install php

# Install apache

RUN apt-get -y install apache2

RUN apt install libapache2-mod-php7.0 libapache2-mod-php

RUN a2enmod php7.0

RUN a2enmod rewrite

# install npm, bower

RUN apt-get -y install git

RUN apt-get -y install nodejs

RUN apt-get -y install npm

RUN apt-get install -y build-essential

RUN cp /usr/bin/nodejs /usr/bin/node

RUN npm install -g bower

# Install CodeIgnither

RUN apt-get -y install wget

RUN apt-get -y install unzip

RUN cd ${DEST} && wget https://github.com/bcit-ci/CodeIgniter/archive/${CI_VER}.zip

RUN cd ${DEST} && unzip ${CI_VER}.zip

RUN cd ${DEST} && rm ${CI_VER}.zip

RUN mv ${DEST}/C*/* ${DEST}

RUN rm -rf ${DEST}/C*

RUN rm ${DEST}/index.html

# Add codeigniter file

ADD project ${DEST}/application

# Install front end lib and make assets(called static or public) folder

ADD bower.json ${DEST}

ADD .bowerrc ${DEST}

RUN cd ${DEST} && bower install --allow-root

#Set apache configulation

ADD 000-default.conf /etc/apache2/sites-available/

ADD apache2.conf /etc/apache2/

ADD .htaccess ${DEST}

# CMD

CMD /usr/sbin/apache2ctl -D FOREGROUND

길이가 꽤 된다. apache설정과 codeigniter설정등을 보면 매우 길게 있는 내용들이 보인다.

그 가운데 하나하나 뜯어보자.

# Set Argument

ENV DEST / var / www / html

ENV CI_VER 3.1.8

코드를 길게 다 적을순 없으므로 변수를 설정해준다.

물론 길게 적어도 되겠지만 유연한 코딩을 하기 위해서는 변수로 지정하는게 좋다.

# Install php

RUN apt-get - y install php

# Install apache

RUN apt-get - y install apache2

RUN apt install libapache2-mod-php7 .0 libapache2-mod-php

RUN a2enmod php7 .0

RUN a2enmod rewrite

또한 당연하지만 php와 apache를 설치해준다.

또한 php와 apache를 연동해주는 모듈도 설치해주고 모듈을 enable해준다.

마지막 줄에 rewrite모듈이 있는데 이는 리다이렉팅 시켜주는 모듈로서

index.php를 url에서 지우려면 반드시 필요하므로 켜둔다.

# install npm, bower

RUN apt-get - y install git

RUN apt-get - y install nodejs

RUN apt-get - y install npm

RUN apt-get install - y build-essential

RUN cp / usr / bin / nodejs / usr / bin / node

RUN npm install - g bower

fornt end framework는 bower로 관리할 생각이다.

npm설치는 실제로 조금 까다로운 편인데 먼저 npm설치를 위해서는 git과 nodejs가 필요하다.

그리고 설상가상으로 nodejs를 설치한다고 node라는 명령어가 자동으로 만들어지지 않는다.

그래서 우리가 만들어줄 필요가 있다.

마지막으로는 npm을 사용해서 bower를 설치한다.

만약 bower가 아닌 npm이나 yarn등을 사용할수도, 혹은 안쓸수도 있는데 본인이 알아서 잘 하리라 믿는다.

# Install CodeIgnither

RUN apt-get - y install wget

RUN apt-get - y install unzip

RUN cd ${ DEST } && wget https: // github.com / bcit-ci / CodeIgniter / archive / ${ CI_VER }.zip

RUN cd ${ DEST } && unzip ${ CI_VER }.zip

RUN cd ${ DEST } && rm ${ CI_VER }.zip

RUN mv ${ DEST } / C */* ${ DEST }

RUN rm - rf ${ DEST } / C *

RUN rm ${ DEST } / index.html

대망의 코드이그나이터이다.

코드이그나이터를 웹에서 설치할건데 wget을 이용해서 받자.

사실 git을 받았으므로 git clone을 해도 되긴한다.

wget으로 받으면 압축파일이므로 압축을 해제하기 위해서 unzip을 설치한다.

그리고 git에서 코드이그나이터를 내려받고 압축을 해제한다.

그리고 압축으로 해제한 내용물을 /var/www/html로 옮겨준다.

그리고 압축파일과 자잘한 폴더, 그리고 원래 아파치 설치시에 존재하는 index.html을 지워준다.

이 과정이 끝나면 /var/www/html에 코드이그나이터의 내용물이 들어가 있을 것이다.

# Add codeigniter file

ADD project ${ DEST } / application

이제 우리가 만든 프로젝트를 codeigniter에 덮어준다.

# Install front end lib and make assets(called static or public) folder

ADD bower.json ${ DEST }

ADD .bowerrc ${ DEST }

RUN cd ${ DEST } && bower install -- allow-root

bower로 프론트 엔드 프레임워크를 설치한다.

{

"directory" : "assets"

}

bowerrc를 보면 설치를 assets에 하는데 원래 php는 정적파일들을 assets라는 폴더에 넣는 문화가 있다.

#Set apache configulation

ADD 000-default.conf / etc / apache2 / sites-available /

ADD apache2.conf / etc / apache2 /

ADD .htaccess ${ DEST }

마지막으로 설정들을 추가하거나 덮어 씌어준다. 이는 rewrite를 사용하기위해서 쓰는 조치들이다.

설명은 윗단의 링크들을 참조하라.

이제 실행해보자.

docker build -t <앱이름> .

그럼이제 빌드를 해주자.

docker run -d -p <외부포트>:80 app

내부포트는 아파치이므로 80을 쓴다. 외부포트는 아무거나 해도되는데 간단하게 하려면 80이 좋다.

단 80을 하기전에 웹서버를 끄는게 좋다.

보다시피 제대로 작동하는걸 볼 수 있다. 프론트엔드 프레임워크까지 제대로 설치되었고 제대로 실행된다.

from http://kamang-it.tistory.com/354 by ccl(A) rewrite - 2020-03-07 21:54:43

댓글

이 블로그의 인기 게시물

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

[C언어] 백준 알고리즘 - 숫자의 개수(2577번)

[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 2. 언어 특성 활용...