서버 환경 구성하기
도커(DOCKER) 설치 및 설정하기
데이터베이스(MariaDB) 설정하기
WAS 만들기
아파치 웹 서버 설치하기
이미지 서버 만들기
서버 SSH 비밀번호 없이 접속하기
맥os 원격 터미널에서 도커 실행시키기

서버 환경 구성하기

AWS를 사용하면 비용이 많이 나간다고하여 집에 간단한 서버 설정을 하려고합니다.

사실 기존에 사용하던 미니PC가 있었는데 고장나서 데이터 백업도 안하고 다 날려버렸네요ㅠㅠ

 

이제 백업준비도 다시 갖춰서 새로운 마음으로 준비해보려고 합니다.

1. 공유기 IPTIME

아주 옛날에 샀던 공유기인데 특이한점은 도메인 호스팅기능이 있어 집에 있는 ip가 변경되더라도 편하게 접속 할 수 있습니다.

단, 추후에 https를 설정해야 할 때는 집에 할당되어있는 ip로 설정해줘야한다는 점입니다.

고정ip를 사용하면 좋겠지만 네트워크가 연결되어있는 상태에서는 ip가 변경되지 않는다고하니 오랜시간 정전이나지 않으면 괜찮을 것 같습니다.

2. 서버PC : 맥미니 2014

2022년인 현재 8년전 pc네요 당X마켓에서 20만원정도에 판매하길래  애플의 하드웨어를 믿고 사용해보기로했습니다. 아직은 저밖에 접속하지 않기때문에 트래픽이라던지 성능이 높지 않아도되어서이 모델로 선택하게되었습니다.

 

3. 맥미니 설정하기

집에 가끔 정전이 날 때가 있어 WOL 기능을 사용하려고 했는데 맥에서는 지원안한다고 하는 것 같습니다 대신 주기적으로 PC를 자동으로 킨다거나 정전 시 자동으로 켜지게 하는 기능이 있다고 하여 설정하였습니다.

- 매일 매시간 켜지게 스케줄링 설정하기

- 팀뷰어 설치하여 pc켜지면 자동실행 설정하기

 

 

4. SSH 설정하기 

포트포워딩가지 설정을 끝낸 후 SSH 접속을 시도해봤는데 안됩니다.

SSH 설정방법에 대해서 알아봐야겠습니다.

서버PC에서 아래와같이 설정하면 바로 SSH 접속까지 가능해졌습니다.

 

도커(DOCKER) 설치 및 설정하기

1. MAC OS 도커 설치
2. 원하는 OS 이미지 다운로드하기
3. 잘못 생성한 컨테이너 삭제하기
4. 도커 컨테이너 네트워크 포트 할당하기

제가 이해하고있는 도커로는 간단히 프로그램을 실행 할 수 있는 OS를 여러개 띄울 수 있는 컨테이너라는 매우 가벼운 환경을 만들어줍니다. 각 서버에서 실행해야 하는데 프로그램의 호환에 맞게 OS환경을 원하는만큼 컨테이너로 만들 수 있게 해주는 프로그램으로 이해하고있습니다. 예를들면 DB는 우분투xx 버전을 사용하고 WAS는 centOSxx 버전을 사용하여 구성되었다면 도커프로그램을 사용하여 위 환경을 각 각 가벼운 컨테이너를 만들어 같은 PC안에도 구성 할 수 있습니다.

1. MAC OS 도커 설치

docker 사이트에서 실행파일을 받은 후 설치하면 간단하게 완료됩니다.

2. 원하는 OS 이미지 다운로드하기

아래 명령어를 실행하면 이미지가 없으면 다운로드 후 컨테이너가 생성됩니다.

이미지 다운로드 방법만 찾아봐야겠네요

docker run -i -t ubuntu:14.04

3. 잘못 생성한 컨테이너 삭제하기

// 전체 도커 이미지 리스트 보기
docker ps -a
// 특정 컨테이너 삭제
docker rm cfe...

4. 도커 컨테이너 네트워크 포트 할당하기

도커 사용하는 부분중에 불편한점인데 컨테이너를 생성 시에만 포트를 할당 할 수 있습니다. 

새로 포트를 할당해야 할경우 컨테이너를 백업 -> 삭제 -> 새로생성 -> 복원 순으로 진행해야하는것으로 알고있습니다.

docker run -p 3306:3306 -i -t --name torangdb ubuntu:14.04

 

데이터베이스(MariaDB) 설정하기

1. DB용 도커 컨테이너 만들기
2. 도커를 통해 DB 컨테이너에 접속
3. 마리아 DB 설치
4. 사용자 만들기
5. 외부접속 허용하기
6. DB 백업하기
7. DB 복구하기

1. DB용 도커 컨테이너 만들기

docker run -p 3306:3306 -i -t --name torangdb ubuntu:22.04

#DB백업 파일을 위해 컨테이너와 호스트PC 사이 공유 저장소 생성하기
docker run -p 3306:3306 -i -t -v /Users/sryang/torangdb:/home/torangdb --name torangdb ubuntu:22.04

2. 도커를 통해 DB 컨테이너에 접속

docker attach [containerId]

도커 컨테이너 생성 및 접속

3. 마리아 DB 설치

apt-get update
apt-get install mariadb-server


아래와 같은 메시지가 발생한다면,

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock

https://srandroid.tistory.com/534

4. 사용자 만들기

create user restaurant;

# 권한 부여하기 // '@'은 외부 접속 허용
# GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
GRANT ALL PRIVILEGES ON restaurant.* TO 'restaurant'@'%';

 

5. 외부접속 허용하기

apt-get install net-tools (설치 안되었다면..)

netstat -plnt

3306 포트에 해당하는 IP가 127.0.0.1로 설정되어있다면, 로컬에서만 접속이 가능한것으로 알고 있습니다.

vim /etc/mysql.my.cnf
// 마리아 db 1.6 버전 이상
vim /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address를 0.0.0.0으로 변경 후 mysql 서비스를 재시작 해줍니다.

아래와 같이 변경되었다면 외부 접속이 가능한 상태가 됩니다.

추가적으로 저는 개인서버를 집에 있는 공유기에 연결하여 사용하고 있어 공유기에서 해당 기기에대해 포트포워딩 작업을 해주었습니다.

 

heidisql로 접속을 확인해보니 잘 접속되었습니다.(윈도우용 dbeaver로 접속이 안되서 한참 고생을 했었네요..ㅠ)

6. DB 백업하기

id/pw: test/password_test

db name:  test_database

mysqldump -utest -p'password' test_database > export_test_database.sql

7. DB 복구하기

만약 추출한 파일에 내용이 있는데 해당 명령어가 동작하지 않는다면 root계정으로 시도해보시기바랍니다.

mysql -utest -p'password' new_test_database < export_test_database.sql

 

WAS 만들기

docker run -p 90:90 -p 91:91 -p:86:86 -p 8080:8080 -i -t --name torangapi ubuntu:22.04

// 2023.06.14 이미지 업로드 경로 추가
docker run -p 8081:8081 -i -t --name torangapi -v /Users/sryang/torangImages:/home/torangImages ubuntu:22.04

 

apt-get update
apt-get install git

 

github -> settings -> developer settings -> Personal access tokens -> 토큰 생성 후 서버에서 사용 할 수 있도록 잘 보관하기

저는 서버에 touch를 사용해 파일로 만듭니다.

 

https://srandroid.tistory.com/528

 

[안드로이드 오류] ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

윈도우 안드로이드 스튜디오 터미널에서 gradlew를 실행하니 아래와 같은 오류메시지가 발생하였습니다. Java 경로 확인하기 안드로이드 스튜디오에서 사용하는 Java와 똑같은 경로를 사용하기위

srandroid.tistory.com

아파치 웹 서버 설치하기

관리자 페이지를 접속하는데 사용할 아파치 웹서버를 설정하려고합니다.

 

WAS서버로 설정하는 방법도 있는 것 같은데 아직 잘 이해를 못해서 WEB서버에 올리려고 합니다.

나중에 이미지 로드하는 기능을 위해서도 웹서버가 필요하여 아파치로 진행해보겠습니다.

 

사용중인 포트확인

netstat -plnt

 

netstat을 설치해야 확인이 가능합니다.

sudo apt-get install net-tools

 

apt-get install apache2

 

apache2ctl -v

 

/etc/apache2

 

apt-get install vim

 

이미지 서버 만들기

1. 도커로 이미지 서버로 사용 할 컨테이너 만들기 88번 포트로 사용

docker run -p 88:88 -i -t --name torangImage ubuntu:22.04

1.1 로컬 디렉토리와 마운트 시켜서 생성 방법

docker run -p 88:88 -i -t --name torangImage -v /Users/sryang/torangImages:/home/torangImages ubuntu:22.04

맥 재부팅하고나서 88 포트를 kdc라는게 자꾸 점유를 해서 포트를 바꿔야 했다.(정말 이 세계는 오랜만에 하면 제대로 되는게 없다.)

docker run -p 89:89 -i -t --name torangImage -v /Users/sryang/torangImages:/home/torangImages ubuntu:22.04

2. 공유기 88번 포트포워딩 설정

(접속을 시도하였지만 실패하였습니다.)

 

3. 아파치 설치하기

https://srandroid.tistory.com/544

 

[안드로이드 개인 프로젝트][Server][5] 아파치 웹 서버 설치하기

관리자 페이지를 접속하는데 사용할 아파치 웹서버를 설정하려고합니다. WAS서버로 설정하는 방법도 있는 것 같은데 아직 잘 이해를 못해서 WEB서버에 올리려고 합니다. 나중에 이미지 로드하는

srandroid.tistory.com

 

4. 아파치 포트 변경

 

5. 아파치 서비스 재시작

 

6. 웹서버 접속 성공

 

TODO:: 이미지를 업로드 다운로드 할 수 있는 WAS 구현하기

 

이미지 서버 만들기

1. 도커로 이미지 서버로 사용 할 컨테이너 만들기 88번 포트로 사용

docker run -p 88:88 -i -t --name torangImage ubuntu:22.04

1.1 로컬 디렉토리와 마운트 시켜서 생성 방법

docker run -p 88:88 -i -t --name torangImage -v /Users/sryang/torangImages:/home/torangImages ubuntu:22.04

맥 재부팅하고나서 88 포트를 kdc라는게 자꾸 점유를 해서 포트를 바꿔야 했다.(정말 이 세계는 오랜만에 하면 제대로 되는게 없다.)

docker run -p 89:89 -i -t --name torangImage -v /Users/sryang/torangImages:/home/torangImages ubuntu:22.04

2. 공유기 88번 포트포워딩 설정

(접속을 시도하였지만 실패하였습니다.)

 

3. 아파치 설치하기

https://srandroid.tistory.com/544

 

[안드로이드 개인 프로젝트][Server][5] 아파치 웹 서버 설치하기

관리자 페이지를 접속하는데 사용할 아파치 웹서버를 설정하려고합니다. WAS서버로 설정하는 방법도 있는 것 같은데 아직 잘 이해를 못해서 WEB서버에 올리려고 합니다. 나중에 이미지 로드하는

srandroid.tistory.com

 

4. 아파치 포트 변경

 

5. 아파치 서비스 재시작

 

6. 웹서버 접속 성공

서버 SSH 비밀번호 없이 접속하기

https://nerogarret.tistory.com/10

 

위 블로그 글을 보고 참조했습니다.

 

키 생성하기

 

$ ssh-keygen

ssh 키 복사하기

cat ~/.ssh/id_rsa

sar@MacBookPro ~ % cat ~/.ssh/id_rsa.pub   
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0VL1JU8Xl4y/EifHhNnLWz4voBuscq/
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa= sa@MacBookPro.local

원격 서버에 authorized_keys 파일을 (없다면)만들어 붙여넣어주기

sry@원격서버 ~ % cat ~/.ssh/authorized_keys
ssh-rsa AAAAaaaaaaaa sar@MacBookPro.local

-------------

[server] mariadb 원격 접속 설정하기

mysql에서 bind-address가 0.0.0.0으로 사전에 설정되어있어야 합니다.

https://srandroid.tistory.com/533

 

[안드로이드 개인 프로젝트][Server][3] 데이터베이스(MariaDB) 설정하기

이전 도커설정에이어 이번에는 DB를 설정해보려고합니다. 1. DB용 도커 컨테이너 만들기 docker run -p 3306:3306 -i -t --name torangdb ubuntu:22.04 1. 도커를 통해 DB 컨테이너에 접속을 합니다. 2. 마리아 DB 설

srandroid.tistory.com

 

사용자 생성하기

create user restaurant

데이터베이스 생성하기

 

create database restaurant

사용자 원격접속('%') 권한 주기 

grant all privileges on restaurant.* to 'restaurant'@'%' identified by 'resta'

+ Recent posts