내가 처음 프로젝트를 할 때 클라우드 서버를 한창 찾아다녔다.
팀원의 외부 접속이 편하려면 클라우드 서버가 짱이다. 내 노트북은 항상 들고 다녀야하니..
하지만 그것도 한,두달 정도라서 이민을 다니든, 돈을 내든, 대책을 세워야했다.
자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유)
와 이런 쌈@뽕한 방법이 있었다니,, 바로 해보자!
우리 집에는 놀고 있는 노트9이 있다. 노트9이면 아직 현역이야~ 근데 이제 박살을 곁들인
Termux 설치는 아래의 글을 참고하자. 설치만 하고 읽어보자.
자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유)
1. 패키지 업데이트
pkg update
pkg upgrade
pkg update
가 안되면 이 페이지를 참고하라 https://barisein.tistory.com/m/3332. SSH 설치 및 패스워드 설정
pkg install openssh
passwd
3. vim 설치 및 ssh 설정
pkg install vim
cd /data/data/com.termux/files/usr/etc/ssh/
vi sshd_config
: 설정 변경
PermitRootLogin yes를 추가
/data/data/com.termux/files
이 루트 디렉토리와 같다고 하면 될 것 같다.4. ssh 서버 실행
sshd
: ssh 서버 실행
whoami
: 나의 아이디 적어두기 u0_a864
대충 이런식일 텐데 이걸 알아두자.
5. [PC] ssh 접속
Termux의 ssh Port번호는 8022이다.
집에서 포트포워딩과 고정 IP를 해놓으면 편하다.
자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유)
이 블로그 글의 아래 부분 [#포트포워딩] 설정하기 부터 보면 된다.
ssh 나의 아이디@외부 IP -p 8022
예시 : ssh u0_a864@46.176.593.32 -p 8022
❗혹시라도 로그인하려는데 PC에서 @@@ 권한없음 @@@
대충 이런 내용 같다면 PC에서 C:\사용자\개인(PC마다 다름)\.ssh\knowns_host
파일을 지워보고 시도해보아라.
이젠 PC cmd에서 할 수 있다!
6. mariaDB
'pkg install mariadb'
사실 마리아DB가 뭔지 몰랐는데, Mysql도 사용 할 수 있는 것 같았다.
Mysql Workbench에서도 접속이 가능했다. 같은 RDBMS인 것 같다.
아래서 부터는 이 영상을 참고했다.
https://www.youtube.com/watch?v=Hv7PAGjCMEg&t=11s
https://drive.google.com/file/d/1RYoxnzjiD8K8Q_EhRZr_XHMSpCkj1uCD/view
[MariaDB 설치 -> DB 생성 까지] 참고하면 될 것 같다.
6-1. /data/data/com.termux/files/usr/etc/my.cnf
파일
아래를 추가하자. 나는 mysqld이 로컬에도 Port번호가 겹치기 때문에 Port 번호까지 바꾸었다.
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysaldump]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init-connect = 'SET collation_connection-utf8mb4_general_ci'
init-connect = 'SET NAMES utf8mb4'
skip-character-set-client-handshake
innodb_buffer_pool_size=268435456
7. Mysql Port 번호도 포트포워딩 해주어야한다!!
8. Mysql Workbench 접속
연결 테스트 해보면,,,! 성공이다! ㅜㅜ
우분투 설치, vim 설치, sudo 설치, ssh 설치, openjdk 설치 (java가 실행이 안되는데? 일단 더 해보자)
천천히 따라하다가 MySQL을 설치하고 외부 포트 허용을 해보자.
sudo ufw allow mysql
오? Error가 발생한다..
ERROR: Couldn’t determine iptables version
그래서 iptables
이 무엇인지는 모르겠으나 iptables
를 설치했다.
하지만, 이미 설치가 되어있었다.
심지어 환경 변수를 잘못 건들여서, 다른 기본적인 명령어도 안 먹는것이다..
일단 많이 쓸 것 같으니 포트포워딩만 해놓고, 휴대폰 ip도 고정ip로 할당하자
아 그래. openjdk 설치하고, ssh 설치하고, PC cmd에서 외부 접속 되고, java도 잘 되고
근데 또 Mysql이.. ㅜㅜ
ERROR: Couldn’t determine iptables version
여전히 같은 오류였다. 이렇게 4시간 동안 2트를 실패하고 다음을 기약했다.
2024/03/12 새벽 04시, 아 근데 Termux 해야 하지 않나? 싶어서 다시 시도하기로 했다.
초기화를 진행하고 처음부터 하려는데 이런 글을 봤다.
proot를 이용하여 Linux 디렉토리 구조로 바꾸면, Mysql이 실행이 안된다
위의 글에서 ubuntu를 설치하기 위해 proot를 사용하는데, 디렉토리 구조가 바뀌고,
우분투를 재실행 할때도 pid 1번이 안드로이드 OS이기 때문에 재실행 하는 명령어도 문제가 있었다.
그래서 ubuntu를 설치하지 않고, 그냥 Termux가 debian를 사용하기에 거기에서 사용하기로 했다.
이번에는 MariaDB까지 설치하고, root 권한을 실수로 지워서, 그냥 다시 또 지우고 태초마을로 시도했다.
무선 키보드와 Samsung Dex가 있으면 더 편할듯
아침 7시,,, 이젠 오기가 생겼다. 결국 끝까지 해서 외부 접속이 가능했다!!!
하지만 이제는 WAS도 설치해서 내 서버를 만들어보자~!