상세 컨텐츠

본문 제목

구름ide 플랫폼에 php앱(그누보드5) 배포하기

클라우드+마이크로서비스

by 김일국 2024. 4. 13. 18:35

본문

지금까지 구름ide 플랫폼에서 아래 언어기반의 앱을 배포해 실행 시켜 보았다.

- 리액트기반으로 공공데이터와 지도API 연동01-08 까지 : https://kimilguk.tistory.com/808 (노드js 서버 기반)

- 리액트js, 넥스트js, 노드js, DB(mysql,몽고db),API활용 학습 : https://kimilguk.tistory.com/833 (노드js 서버 기반)

- 스프링부트버전2 클라우드에 배포 : https://kimilguk.tistory.com/626 (자바 기반)

- 파이썬으로 웹 스크레핑과 반응형 대시보드 앱 만들기 : https://kimilguk.tistory.com/836 (Dash 기반=Flask서버+React.js+Plotly.js)

- 오늘은 오랜만에 PHP 앱을 구름ide 플랫폼에 설치 및 배포해 보려고 합니다.(아래 순서 대로)

1). 구름ide에 구글 계정으로 로그인 했습니다.(아래)

 

2) 구름ide에 로그인 후 새 컨테이너를 추가 합니다.(스택과 이름, 추가 모듈에서 MySQL설치 선택 아래)

- 그누보드도 워드프레스와 마찬가지로, Mysql 또는 Maria DB가 필요합니다.

 

3). 생성 후 바로 실행 하지 말고, 설정화면으로 이동 후 시작 스크립트에 service mysql start 라는 명령어를 사용하여 컨테이너 실행 시 DB서버를 자동으로 실행하게 설정 한 후 실행 버튼 클릭(아래)

 

4). 구름ide 플랫폼에서 우분투 18.04에 기본으로 설치 된 PHP 버전은 7.3.x 이다. 

- php에서 mysql을 사용하기 위해 필요한 모듈과 캡챠 보안 기능을 사용하기 위한 GD모듈이 사용가능한지 확인 한다.

- apt search php-mysql , apt search php-gd, 그리고, index.php를 열고 에디터에서 phpinfo(); 명령어를 입력해 본다.(아래)

- 위 구름 컨테이너의 터미널에서 확인 결과 모두 php7.2 버전용만 사용가능하다.

- 그래서, apt-get update 를 실행해서 최신 모듈 리스트를 받아 본다.(현재 Public 키를 사용할 수 없다는 메세지가 나온다.)

1. 구름ide apt-get update 에러시 공개키 생성 : 에러메시지 중 NO_PUBKEY 뒷부분 복사
(아래 명령어 실행 시 제일 끝 부분에 위 에러 메시지 중 복사한 부분을 붙여 넣는다.)
 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 536F8F1DE80F6A35
2. 구름ide apt-get update 문제가 계속 발생 시 키 삭제 후 재발급 : 아래 명령어를 실행하면 OK가 나옴
 wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | apt-key add -

- 위 처럼 작업 후 apt-get update를 해도 php7.2용 모듈만 나오기 때문에 php7.2를 설치한다.(아래)

 add-apt-repository ppa:ondrej/php (php7.2 설치 전 검색 저장소 추가)
 apt-get install php7.2 (php7.2 설치 후 아래 명령어로 php실행을 7.2버전으로 선택한다.)
 update-alternatives --config php (php도 노드js처럼 여러 버전을 선택해서 실행할 수 있다.)
 apt install php7.2-mysql (php에서 mysql 명령어를 사용할 수 있는 모듈 설치만 하면 자동 적용됨)
 apt install php7.2-gd (php에서 gd 명령어를 사용할 수 있는 모듈 설치만 하면 자동 적용됨)

5). 구름ide 컨테이너에서 지금까지 적용한 결과 확인(아래 노란색 화살표 순서대로 실행)

- 위 실행 명령 추가를 하면, 기본실행 스크립트가 new run php 로 자동 저장된다. [실행]버튼을 누르면, 하단에 Ctrl+C 누르기 전까지 php+웹서버가 실행 된다. 위 노란색 박스의 URL 부분 결과 확인 https://php--kvdjn.run.goorm.site/ (아래)

- 위에서 mysqli 를 사용할 수 있게 된것을 확인 할 수 있다.

 

6). 그누보드 설치 준비(아래)

- 먼저 구름 컨테이너의 터미널에서 mysql 을 시작한다.

- 그누보드5 설치에 필요한 mysql 사용자 kimilguk을 추가하고, gnuboard 라는 DB도 추가한다.

- gnuboard 라는 DB와 사용자를 연결 시킨다.( 아래 명령어 차례대로 실행 )

create user 'kimilguk'@'%' identified by '1234#';
create database gnuboard default character set utf8;
grant all privileges on gnuboard.* to kimilguk@'%';
flush privileges;
select user,host,authentication_string from user;

- mysql을 원격에서 접근 가능하게 mysqld.cnf 설정을 변경 후 mysql 서버를 재시작한다.(아래 명령어 차례대로 실행) 

vim /etc/mysql/mysql.conf.d/mysqld.cnf (vi 에디터를 열고 bind-address 부분 주석처리 후 저장)
service mysql restart (mysql서버 재시작)

- 위 화면에서 구름 컨테이너 외부에서 mysql서버에 접근하려면, 상단 포트포워딩 설정에서 mysql포트를 추가한다.(이 생성된 서버IP+포트번호로 내 작업 PC에서 구름 컨테이너의 mysql서버에 접근 가능하게 된다.)

- 마지막을 mysql 재 시작하고, 깃 허브에서 그누보드5최신 버전을 가져온다

git clone.https://github.com/gnuboard/gnuboard5.git 엔터

아래 처럼 cd gnuboard5로 이동 후 mkdir data폴더 생성 후 chmod 707 data로 권한 변경한다.(아래)

7). 그누보드 설치 시작(아래)

 

8) 결과 확인(초기엔 화면이 깨져 보인다. 이유는 아래

- 우리가 /gnuboard5 폴더에 설치했기 때문에 /gnuboard5/config.php 파일의 26번째 라인에 /gnuboard5 경로를 추가하면 정상으로 보인다.(아래)

- 결과 화면 https://php--kvdjn.run.goorm.io/gnuboard5/ : 로그인해 본다.  설치 시 admin / 1234$ 로 지정해 놓았다.(아래)

Ps. 설치 한 후 구름ide 컨테이너를 사용할 수 있는 시간(크레딧)이 줄었다.(아래) 항상 작업 후 컨테이너를 정지 시킨다.

- 45크레딧 보통 45시간 모두 소진 이후 1달이 지나면, 다시 45시간을 사용할 수 있다.

- 컨테이너를 빠져 나오면, php+웹 서버는 자동으로 종료가 된다.

 

Ps2. 깃 명령어를 사용하여 그누보드 최신 버전(보안패치포함)을 업데이트 할 수 있다.

- 기본 깃 명령어 정리(아래)

---------------------
1. 기본 깃 명령어
---------------------
1). 깃 허브의 소스를 복제하여 작업PC에 가져오는 명령(아래)
- git clone 깃 주소
2). 깃 commit 이상의 명령을 실행 시킬 때 사용자를 먼저 등록 시켜야 한다.(아래)
- git config user.email "kimilguk@knou.ac.kr"
- git config user.name "kimilguk"
3). 작업PC에 신규 깃 저장소 생성(아래) 단, 깃 clone을 하면, 아래 깃 초기화명령을 필요없다.
- git init
4). 작업PC의 소스 수정 후 스테이지 영역으로 이동 시키기(아래)
- git add .
5). 스테이지 영역의 내용을 작업PC의 저장소로 저장(아래)
- git commit -m "코멘트내용"
6). 브랜치라는 저장소 내부의 분기점 만듬(아래) 단, 이미 clone 되어 있으면, 아래 브랜치 생성은 필요없다.
- git branch -M main
7). 깃 허브의 원격 저장소 정보를 저장(아래) 단, 이미 clone 되어 있으면, 아래 명령은 필요없다.
- git remote add origin 깃 주소
8). 작업PC의 저장소의 수정된 내용을 원격 저장소로 푸시(업로드) 한다.
- git push -u origin main

----------------------------
2. 깃 작업을 취소하는 명령어
----------------------------
1). git add 취소하고 되돌리기
- git reset HEAD
2). git commit 취소하고 되돌리기
- git reset --hard HEAD
3). git merge 취소하고 되돌리기(아래)
- git reset --merge ORIG_HEAD
4). git pull 취소하고 되돌리기(아래)
- git reset --hard ORIG_HEAD

관련글 더보기

댓글 영역