카테고리 보관물: 우분투 서버 24.04 LTS

우분투에서 마인크래프트 서비스로 등록해서 백그라운드 실행하기

이전 내용에서 이어서
우분투 서버 24.04 LTS 마인크래프트 베드락 에디션 바닐라 서버 설치(오라클 클라우드)

서비스 파일 작성

아래 내용으로 서비스로 등록할 파일을 작성한다.

파일 내용

서비스 등록하기

잘 돌아가나 확인

서버 재기동시 자동으로 시작하기

우분투 서버 24.04 LTS 마인크래프트 베드락 에디션 바닐라 서버 설치(오라클 클라우드)

오라클 클라우드 프리티어에서 무료로 사용할 수 있는 우분투 서버에 마인크래프트 서버를 설치 해 봤다.
혼자 쓰기에는 별 문제 없이 돌아가는듯. 메모리도 초반부에는 그렇게 안먹는 것 같은데 아무래도 무료 제공 서버는 1G램이라 오래 쓰기에는 무리가 있을듯하다.
서버 설치 연습용? 뭐 호기심으로 한번 해 보는 정도인듯.
오라클에서 무료로 제공하는 24G램을 쓸 수 있는데 ARM 서버라면 제대로 된 마크 서버도 운영 가능할듯.

서버 프로그램

바닐라 서버 말고도 이런저런 프로그램들이 있는데 맛보기로 설치할거니 바닐라로. 베드락 에디션을 선택한 이유는 콘솔에서도 접속가능한 서버이기 때문에.
https://www.minecraft.net/ko-kr/download/server/bedrock
위 링크에서 아래 그림처럼 우분투용으로 다운로드 한다.
Ubuntu(Linux)용 Minecraft Dedicated Server 소프트웨어

/home/username/mine 처럼 적당히 디렉토리 하나 만들어서 다운로드한 zip 파일을 업로드 한다.
그리고 압축풀기

기동 커맨드

서버 설정은 따로 특별히 설정할건 없고, 다운로드 페이지에 있던 커맨드로 실행하면 된다.

정상적인 실행 로그

방화벽 열기

여기서부터가 문제인데 서버에 접속하기 위해서는 오라클 클라우드 서큐리티 리스트에서 19132번 포트를 열어주고, iptables에서도 똑같은 포트를 열어준다.
먼저 서큐리티 리스트 설정. 위치는 오라클 클라우드 UI가 자주 바뀌어서 어디로 갈지 모르겠지만…
지금은 왼쪽 위 메뉴에서 네트워킹->Virtual Cloud Networks->vcn 리스트에서 서버에 설정 되어있는걸로 클릭->탭에 있는 서브넷->서브넷에서 서버에 설정된 서브넷 선택->Security 탭->Default Security List for vcnxxx->Security rules 탭으로 들어가면 된다.
아래와 같이 TCP, UDP 둘 다 열어준다. TCP만 열면 된다는 얘기도 있던데 TCP 만으로는 접속 안되더라.
Add Ingress Rules - 19132 port tcp and udp

서버에 들어가서 iptables 설정에서도 19132번 포트는 TCP, UDP 다 열어준다.

적당한 곳에 아래 두줄을 추가하고 저장한다.

적용하고 확인

따로 적용이 필요하진 않고 위대로만 하면 바로 방화벽은 열린다.

마인크래프트에서 접속해 보자.
서버 IP 는 퍼블릭 IP, 포트는 19132이다.

마인크래프트 월드
접속 성공!

우분투 24.04 LTS 초기 설정들

우분투 24.04 LTS로 깨끗하게 업그레이드 하려고 오라클 클라우드 프리티어 서버 하나를 리셋해서 다시 만들었다.
설치는 디스크는 우분투 24.04 LTS 미니멀로 함.

우선 시간대를 한국/서울로 설정

루트 대신 사용할 유저 추가하고 sudoer 권한 추가.

ssh 공개키를 복사하고 파일 소유권을 변경. 이걸로 ssh 접속 가능.

탭키 자동 완성 설치

터미널 글자색 컬러로 나오게 하는 방법. 우분투 서버 20.04 LTS

그 다음엔 서큐리티 대책부터. 우분투 24.04 LTS 에서도 잘 작동한다.
우분투 22.04 에서 IPTABLES 애드온 XTABLES 로 국가별 접속 차단/허용

우분투 서버 24.04 LTS PHP 버전이 여러개 설치 되어 있는 경우

이전 글과 연결됨
우분투 서버 24.04 LTS에 설치한 워드프레스에서 avif 이미지 포맷 사용하기 with gd or imagick

php 8.3을 사용 중에, PHP를 업그레이드하면서 자동으로 8.4 버전이 설치 되어 버렸다.
다른 버전이 설치 되는거야 윈도우였다면 조금 다른 버전이면 덮어쓰기로 설치 될 것이고, 설사 따로 설치가 되었어도 내가 안쓰면 상관이 없는 문제인데 리눅스 시스템에서는 이게 여러가지 문제가 생긴다.

먼저 콘솔에서 php 를 실행하면 새로운 8.4 버전이 실행 된다.
예를 들면 워드프레스에서 imagick 모듈을 설치하고나서, 워드프레스 관리 메뉴에서 도구->사이트 건강으로 들어가서 imagick 모듈이 안보이면 php -m 명령으로 모듈 설치를 확인해야 하는데 php 8.3에 있는 imagick모듈을 설치하고 php -m 명령을 치면 php 8.4의 모듈을 확인하게 되니 설치가 되어있을리가 없다.
웹서버에 연결된 php는 8.3이 되는데, php-fpm은 8.3이 이미 가동 중이었고, 8.4 버전에 fpm은 설치하지 않았으니 웹서버에서 가동하는 php 버전은 8.3이 된다. 8.4 버전에 모듈을 설치하면 웹서버가 작동시키는 php 에서는 모듈이 설치 안되어있으니 작동이 안될 것이다.

모듈 설치시에 아래 두 커맨드처럼 8.3이냐 8.4를 고를때 콘솔에서 작동할건지, 웹서버에서 작동할건지 잘 생각하고 설치해야한다.

속편하게 그냥 둘다 설치하면 제일 좋다.

워드프레스에서 콘솔에서 wp media generate 명령으로 이미지 썸네일을 작성할 수 있는데, 이 커맨드는 콘솔에서 작동하므로 8.4 버전의 php를 사용하게 된다.
워드프레스 관리화면에서 imagick 모듈이 설치 되어 있다고 해도, 이건 php8.3-fpm에 설치되어있다는 뜻.
여기서 헷갈리기 시작하면 망하니 그냥 둘 다 똑같이 모듈을 설치하는게 낫다.

나는 하나만 쓰고 싶다하는 사람이 있으면
update-alternatives를 검색해 보면 된다. 여러 버전에 프로그램이 설치된 경우에 어떤걸 사용할지 정할 수 있다.

우분투 22.04 -> 24.04 업그레이드 후기

워드프레스에서 webp 이미지 포맷을 사용해 보려다 결국 php 버전을 올려야 하는것 같아서 포기하고,
대신 avif 이미지 포맷을 사용하고 싶었는데 마찬가지로 php 버전을 올려야해서 우분투 업그레이드를 해 버렸다.

하는 중에 딱히 문제는 없었고 업그레이드 후에 iptables 설정이 초기화 되서 다시 잡아줘야 됐고,
NGINX와 php 설정이 초기화 되어서 조금 고쳤다.

nginx에서는 /etc/nginx/nginx.conf 파일 제일 위에 아래 유저 부분이 초기화 되서 다시 잡아줬고,

마찬가지로 php 설정에서도 /etc/php/8.3/fpm/pool.d/www.conf 파일을 열어 user 설정이 초기화 되어서 다시 잡아줬다.

이건 여러부분 있으니 잘 수정할 것.

위에 것들을 안고치면 워드프레스에서는 502 에러가 발생하고 로그 파일(/var/log/nginx/error.log)에는 아래와 같이 에러가 나온다.