구글 클라우드 플랫폼에 새로운 컴퓨터를 만들었다면, 당연히 거기에 그누보드를 깔아봐야겠죠! 이 글에서는 이를 위해
1. 새 컴퓨터에 AMP를 설치하고
2. 하이디SQL과 파일질라로 접속해서 필요한 DB와 폴더를 생성하고
3. 아파치 디렉토리를 바꾼 후
4. 그누보드 파일을 올려서 설치하는 과정을 담아보겠습니다.
사전작업은 후딱 구글 클라우드 플랫폼에 무료 호스팅 만들기 를 참고해 주세요.
작업환경은 CentOS7 이며 3306 · 21포트를 추가한 상태고 root로 접속했습니다.
필수 라이브러리 설치
# yum install -y libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel
# yum install -y httpd
# vi /etc/httpd/conf/httpd.conf
(<- 여기에 추가 부분에)
AddType application/x-httpd-php .php .html .htm .inc
AddType application/x-httpd-php-source .phps
# systemctl restart httpd
# systemctl enable httpd
확인은 해당 아이피로 들어가보면 할 수 있습니다
MariaDB는 기본 yum으로 설치하면 최신버전이 깔리는게 아닙니다.
최신버전으로 설치하기 위해 링크를 참고해서 레포지터리를 추가해야 합니다.
MariaDB.repo를 생성해 아래 내용을 붙여넣으세요
# vi /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.3 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
# yum install -y MariaDB-server MariaDB-client
만약 repository가 잘 안먹히면 한번 clean하고 다시 읽어오면 됩니다.
# yum clean all
# yum repolist all
이대로는 DB에 한글이 들어가면 깨지기 때문에 인코딩 설정을 수정해야 합니다.
해당 파일 하단에 추가해 주세요.
# vi /etc/my.cnf
[client]
default-character-set = utf8
[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
mariaDB 초기 설정 및 외부 접속용 아이디 생성도 해야 합니다.
# systemctl start mariadb
# systemctl enable mariadb
# mysql_secure_installation
처음은 비밀번호가 없으므로 엔터칩니다.
y : root 비밀번호 생성
y : 익명접근 차단
n : 원격접속 허용
y : TestDB 삭제
y : 위의 설정 적용
# mysql -u root -p
MariaDB [(none)]> create user 'root'@'%' identified by '비밀번호';
MariaDB [(none)]> grant all privileges on *.* to 'root'@'%';
MariaDB [(none)]> flush privileges;
PHP도 레포지터리를 생성해야 최신버전을 설치할 수 있습니다.
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install -y php72w php72w-mbstring php72w-cli php72w-common php72w-devel php72w-gd php72w-curl php72w-mysql php72w-pdo php72w-pear php72w-process php72w-xml
MariaDB 설치할때 작업을 다 했기 때문에 HeidiSQL 접속은 쉽습니다.
전 여기에 새롭게 gnum 이라는 DB를 만들어 봤어요.
하지만 파일질라는 좀 까다로운 편입니다.
구글 클라우드 플랫폼에선 FTP대신 SFTP를 쓰도록 유도하고 있거든요.
그 과정을 간단히 말하자면
키를 하나 생성해서
내 컴퓨터에 저장해두고 그걸
구글 클라우드 플랫폼에 등록한 후
파일질라나 아톰에서 불러와 쓰는 것 입니다.
키 생성에는 누구에게나 있는 PuTTYgen이 필요합니다.
Generate 버튼을 누른 후 빨간 구역 안에서 마우스를 계속 움직이면 됩니다.
생성된 키를 복사해서 구글 클라우드 플랫폼 패널의 메타데이터로 갑니다.
SSH키 수정버튼을 눌러 방금 만든 키를 추가하면 구글에 자동적으로 적용이 됩니다. ID라고 되어있는 부분도 자동으로 함께 작성됩니다.
저 ID는 앞으로 구글 클라우드 플랫폼에 어떤 서버를 생성해도 /home 디렉토리안에 자동으로 생성될 새로운 계정이라 보면 됩니다.
결국 이 아이디로 파일질라나 아톰에 로그인해서 요 아이디용 디렉토리만 수정 가능한 것 입니다. 즉 아파치의 root 디렉토리를 이 아이디 디렉토리로 변경해 줘야 하겠죠.
저장은 Save public key버튼을 누르고 파일 형식은 All Files(*.*)로, 확장자는 .ppk로 저장합니다. 이 때 키 파일이 저장되는 경로에 한글이 포함되면 안된다고 하니 주의하세요.
이제 파일질라로 와서 Edit > Setting으로 들어갑니다.
SFTP탭에서 Add key file…을 눌러 저장한 키를 지정하고 내 사이트를 추가합니다.
여기 들어가는 User는 DB와 다르게 root가 아니라 방금 생성한 키의 ID 입니다.
여기서 새로 만든 gnum디렉토리로 아파치 디렉토리 설정을 변경해야 합니다.
확인을 위해 index.php 파일을 만들고 아래 내용을 저장해 주세요.
<?php phpinfo(); ?>
다시 리눅스 화면으로 돌아옵니다.
디렉토리 변경을 위해 httpd.conf 를 수정하고 SELinux 룰을 추가합니다.
# vi /etc/httpd/conf/httpd.conf
그리고 그누보드의 짧은주소를 지원하기 위해 AllowOverride None을 모두 AllowOverride All 로 수정하세요.
# systemctl restart httpd
# chmod 755 /home/ID디렉토리
(SELinux 룰 추가)
# semanage fcontext -a -t httpd_sys_content_t /home/ID디렉토리/gnum\(\/.*\)?
(룰 확인)
# semanage fcontext -l |grep httpd_sys_content_t
이제 내 아이피로 접속하면 index.php가 뜹니다. 이렇게 준비가 끝났습니다^^!
이쯤에서 쬐깐한 팁 : 뭔가 정상적이지 않은 느낌이다 싶으면 가끔 리부트 하세요.
구글 클라우드 플랫폼 VM인스턴스 패널의 “재설정”이 리부트 버튼 입니다.
파일질라로 그누보드M.tar.gz 파일을 gnum폴더에 넣습니다.
tar -zxvf 로 압축을 풀어도 되겠지만 기왕에 파일질라까지 연결했으니 윈도우에서 압축을 풀고 통째로 넣으면 더 쉽겠죠.
이렇게 해서 내 아이피로 들어가 설치를 시작하면 data폴더를 만들어라, 퍼미션을 707을 줘라 합니다. 하지만 이렇게 해도
” data 디렉토리의 퍼미션을 707로 변경하여 주십시오. “
라는 에러가 뜹니다. 이는 폴더에 쓰기를 허용해야 풀리므로 gnum폴더로 가서 아래 명령어를 입력하세요.
# chcon -t httpd_sys_rw_content_t data
이렇게 해서 그누보드가 설치되었습니다^^!
아톰 remote-ftp 패키지를 통해 직접 손댈 수도 있으니 아래를 참고하세요.