phpMyAdmin 설치

mysql로 그간 CUI로 열심히 관리해왔지만, 사실 그럴 필요는 없다. GUI로 나온 툴들도 많고 오픈소스도 있으니.. 게다가 CUI로는 DB가 조금 커졌을땐 내용 확인하기도 좀 애매해서 직관적으로 파악하기가 어려운 점도 있다.

그래서 오늘은 시놀로지 NAS에서도 쓰고 있는 phpMyAdmin을 GCP에 설치해볼까 한다.

무료이기도 하고 사용도 간단하고 꽤 많은 이들에게 검증된 애플리케이션이라 개인용으로 쓰기엔 매우 적합하다.



#cd /tmp
#sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip

/tmp 폴더에 간단하게 최신 phpMyAdmin을 다운로드 해두었다. 구버전이 필요하거나 이 글을 쓰는 시점보다 미래에는 더 최신 버전이 나올테니 그때는 s.xeriars.com/QhfE 에서 다운로드 받을 수도 있다.



#sudo apt-get install zip
#unzip phpMyAdmin-5.0.4-all-languages.zip

압축을 풀려니 zip을 안받아놨네… 일단 zip부터 설치한다.



#sudo mv phpMyAdmin-5.0.4-all-languages /var/www/phpmyadmin
#sudo rm phpMyAdmin-5.0.4-all-languages.zip

압축을 풀고 /var/www/phpmyadmin 디렉터리로 파일들을 이동해주었다.

다운로드 받았던 .zip 파일은 용량도 아낄겸 삭제.

#sudo ln -s /var/www/phpmyadmin /var/www/html/xeriars

아파치 웹서버의 DocumentRoot 기본값은 /var/www/html이므로 전 단계인 /var/www에 저장을 해두면 외부에서 접근할 수가 없게 된다. 다만 구동을 하려면 무언가 있어야하니 심볼릭 링크를 생성해준다.

윈도우로 치면 단축아이콘을 만들어주는 것이므로, 외부에서 접근을 시도했을 때 원본파일에 뭘(!?) 건드리려고 해도 보안상 안전하게 된다.

이제 외부에서 접속할 수 있는 주소가 생겼다. https://자신의도메인또는IP주소/xeriars 로 접속하면 되며, 심볼릭링크는 자유롭게 설정하면 된다. 기본값을 쓰면 웹봇이나 누군가 찝적거리므로 phpmyadmin은 피하는게 좋다.



심볼릭 링크를 xeriars로 설정하였으므로 도메인 뒤에 /xeriars를 붙여서 접속.

사용자명과 암호는 mysql의 root계정을 사용하므로 사용자명에 root / 암호는 root 계정 암호를 입력하면 된다.



이렇게 루트 계정으로 접속이 안된다면, 계정을 하나 생성해서 그 계정으로 접속을 해야한다.



#sudo mysql -u root -p
#create user '아이디'@'%' identified by '비밀번호';
#grant all privileges on *.* to '아이디'@'%';
#quit;

계정을 적절히 생성해준 후 해당 계정으로 접속을 시도한다.



접속은 잘 되었으나 스크롤을 좀 내려보면 에러메시지가 떠있다.

필연적인 것이니까 걱정할 필요는 없다.



일단 빨간색 네모박스친 “여기”를 클릭.



“Create”를 클릭.



이런식으로 전부 OK가 뜨면 성공. 이제 다시 홈으로 돌아간다.



그래도 메시지가 떠있다. 다시 터미널로 돌아간다.



#sudo cp config.sample.inc.php config.inc.php
#sudo nano config.inc.php

환경설정파일이 없기 때문에 에러가 난 것이며, sample 파일을 복사해주면 된다.

다음은 config.inc.php 파일을 파일 에디터로 열어준다. 여기서는 nano를 사용하였다.



빨간색 네모 친 부분을 보면 blowfish_secret을 설정하는 부분이 있다. 이 부분에 해시코드를 넣어주면 된다.

s.xeriars.com/9h7-에 접속해서 간단하게 생성할 수 있다.



Encrypt 란에 아무 글자나 넣고 Hash! 를 클릭하면 위와 같이 해시코드가 생성된다. 이걸 복사해서 붙이면 된다.



이런식으로 ‘이 안에’ 넣어주고 저장해주면 끝. 이제 다시 웹브라우저로 돌아가서 홈으로 가려고 하면 다시 로그인을 하라고 나오므로 로그인을 해준다.



에러가 말끔히 해결되었다.

하지만 이것 말고도 에러가 뜨는 경우가 한가지 더 있다.



이런식으로 임시 디렉터리에 엑세스를 할 수 없는경우에 에러가 발생한다. 이 에러도 해결은 가능하다.

일단 터미널로 돌아가서 다음과 같이 진행한다.



sudo mkdir tmp
sudo chown www-data:www-data tmp -R
sudo chmod 774 tmp

tmp 디렉터리를 생성해주고 소유자는 www-data로, 권한은 774로 주면 끝.

이 글을 쭉 따라왔다면 왠만하면 잘 설치되겠지만 안되면 뭐.. 구글에서 찾아야 하겠지.

대부분의 외국친구들도 비슷한 문제를 겪기 때문에 찾기가 어렵진 않다.

이상 phpMyAdmin 설치법에 대해서 써보았다.

미디어 위키 파일 업로드 오류



비공개로 업로드할 수 없습니다 (UploadStashFileException): “”mwstore:local-backend/local-temp/a/ab” 디렉터리를 만들 수 없습니다.”.

관리하고 있는 개인 위키에 그간 파일업로드를 안했었기 때문에 모르고 있었는데, 오늘 좀 쓸일이 있어서 업로드를 했더니만 위 스샷처럼 오류가 발생했다.

뭔가 설정이 잘못되었겠거니 하고 찾아보니 역시 미디어위키 공식 페이지에 답이 있다. (s.xeriars.com/1Ol3 참조)

몇가지 해결방법이 있는데, 다음과 같다.

1. php.ini에 파일업로드 옵션이 켜져있는지 확인.

우분투 기준 /etc/php/php버전명/fpm 경로에 위치하고 있으며 nano 같은 편집기로 열어 확인이 가능하다.



file_uploads = On

디폴트 설정은 On 일테니 크게 문제는 없을 것 같다만 일단 확인해볼 필요는 있으니까.

php.ini 열어 본 김에, 업로드 사이즈도 확인해본다. 20MB 정도면 충분할 듯 한데, 너무 작다면 조절해준다.

2. 미디어위키 설치 디렉터리 내 images 폴더의 파일소유자를 확인한다.



<만일 스샷처럼 www-data 로 설정되어 있지 않다면 다음과 같이 설정.

sudo chown -R www-data:www-data images/

또한 images 폴더의 퍼미션도 755로 설정해준다.

sudo chmod 755 images

3. LocalSettings.php 파일을 확인한다.



$wgEnableUploads = true; 가 아니라 false; 라면 업로드가 되지 않으므로 확인.

파일을 연 김에 업로드 확장자 제한도 같이 설정해준다.

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc',
    'xls', 'mpp', 'pdf', 'ppt', 'tiff', 'bmp', 'docx', 'xlsx',
    'pptx', 'ps', 'odt', 'ods', 'odp', 'odg'
);

또는

$wgFileExtensions = array_merge( $wgFileExtensions,
    array( 'doc', 'xls', 'mpp', 'pdf', 'ppt', 'xlsx', 'jpg', 
        'tiff', 'odt', 'odg', 'ods', 'odp'
    )
);

또는

$wgFileExtensions[] = 'docx';
$wgFileExtensions[] = 'xls';
$wgFileExtensions[] = 'pdf';
$wgFileExtensions[] = 'mpp';
$wgFileExtensions[] = 'odt';
$wgFileExtensions[] = 'ods';

위와 같이 설정해줄 수 있으며, 미디어위키에도 나오는 예시방법이다.

여기까지 설정했더니 일단 문제점은 해결되었다.

이정도까지 설정하면 왠만한 경우는 모두 해결 될 듯 한데, 그 이외에도 안된다면 그땐 상기 언급한 것과 같이 미디어위키 공식페이지 글을 정독해야 할 듯 싶다.

GAME & WATCH 슈퍼마리오 지름



게임 앤 워치 슈퍼 마리오 (Game & Watch Super Mario bros.)를 질렀다.

요즘 온라인 쇼핑몰에 재고만 풀렸다하면 몇 분 안되서 매진되어버리는 귀한 몸 되겠다.

원래 크게 지를 생각이 없었는데, 하도 품절이 나길래 욕심나서 반쯤은 충동구매.



마리오 25주년 기념으로 생산된 물건이며, 2021년 3월까지 생산될 예정이다.

내장된 게임은 슈퍼마리오 1과 북미판으로는 The Lost levels라고 출시된 2가 수록되어있으며,

원래 게임 엔 워치에 있던 볼(ball) 게임에 마리오 얼굴을 넣은 버전도 들어있다.

그리고 기기명에 “워치”가 들어가므로 시계기능도 역시 포함되어있다. (이게 제일 핵심기능이다.)



플라스틱으로 포장이 한겹 더 되어있는데, 성의있게 마리오 프린팅이 되어있고 이걸 벗기면,



슈퍼마리오 에디션에서 볼 에디션이 되버렸다. 나름 디테일한 포장센스 되시겠다.



포장 뒷면에도 쿠파가 불 뿜는 장면을 프린팅해두었다.

일단 별로 쓸일은 없지만 일단 소장용이니까 냅두자



종이 박스를 열면 나름 또 섬세하게 고맙다고 프린팅을 해두었다.

볼 게임에서 특정 조건을 맞추면 루이지가 나온다던데, 저 모습으로 나오겠다.



구성품은 단촐하다. 본품 1개, USB-C 타입 케이블 1개가 땡.



USB 케이블에는 닌텐도라고 음각되어있는데, 굳이 필요없으니 박스랑 같이 보관이다.

충전은 전용충전기를 쓰라고 써있지만 간단히 씹고 일반 휴대폰 충전기를 써도 무방하다.



게임보이 미크로와의 사이즈 비교

게임앤워치가 미크로보다 화면이 크고, 더 얇다.



Made in Japan같으나 당당하게 Made in China라니…;;

설계 일본인

생산 중국인

구동 한국인… 적절한 한중일 삼위일체인가…



전원을 켜면 위와 같은 화면이 나온다.

부팅화면따윈 없이 바로 시작 가능하다.



핵심기능인 시계기능이다.

매 시 / 매 30분마다 특별한 이벤트가 있다.



GAME 버튼을 누르면 나오는 화면이다. 적절히 게임을 고를 수 있다.

일단 만만한 슈퍼마리오 1을 굴려보자.



어릴때 참 패미컴으로 징그럽게 했던 게임이다.

1985-2020 이라는 글자가 35주년이라는 것을 반증한다.



지구에서 가장 유명한 첫 번째 스테이지 중 하나 일 듯하다.

사진이 좀 그래서 그렇지 화면은 깨끗하게 잘 나온다.



워프존도 여전하다. 게임을 이식했으니 당연한건가;



물론 3-1 거북이 밟고 무한 목숨 만들기 꼼수도 여전하다.

8비트 게임이므로 2^8 = 256이기 때문에 -127~+127까지의 계산범위를 가지며,

목숨이 127개가 넘어가면 overflow가 되어 음수처리되므로 죽으면 그대로 게임오버가 된다.



잔기가 깨져서 나오며 정확히 잔기가 몇개인지는 모르겠으나,

일단 게임오버 될 수준은 아니다. (죽어보면 게임오버인지 아닌지 정확히 알 수 있다.)



마리오를 수십마리 학살한 결과 드디어 클리어.

이제 클리어 특전이 주어진다.



아까 첫 화면과 달라진점이 두가지가 있다.

첫 번째는 월드 셀렉션이 가능하다는 점이고 (물론 이건 끝판까지 클리어하지 않아도, 도달한 스테이지까지는 선택가능)

두 번째는 하드 난이도로 플레이가능하다는 점이다. 이건 원판의 클리어 후 2회차 플레이에 해당한다.

이제 적당히 클리어해봤으니 사무실에 두고 시계로 써야겠다.

그냥은 3분 후 화면이 꺼지지만, 충전기를 연결해두면 계속 화면이 켜지므로 정말 시계처럼 쓸 수 있다.

약간은 가격이 나가지만 모처럼 재밌는 아이템을 질러두니 기분이가 좋다.

DJ MAX Respect V 지름.



출처 : https://s.xeriars.com/cm-X

대학생 시절 PSP로 줄기차게 즐겼던 디맥이었는데, 한동안 잊고 살다가 오랜만에 PC판으로 지르고야 말았다.

핼러윈 데이를 기념해서 역대급 할인가격인 60% 세일이 적용되었기 때문인데, 사실 9월달에도 50% 세일이 있었으나 장바구니에만 넣고 지를까말까 고민하다 말았던게 이번엔 진짜로 질렀다.

PC판 디맥은 이번이 세번째 작품이며 첫번째는 디맥 온라인, 두번째는 디맥 트릴로지였다.

디제이맥스 트릴로지는 2008년 당시에 한정판으로 질렀던 것을 아직 가지고 있는데(xeriars.com/99 참고) 구성품 중 하나였던 머그컵은 10년 넘게 아직까지도 개인 물컵으로 잘 사용하고 있다. 지금도 크게 다를바는 없지만 PC게임은 불법복제가 만연한 시기였기 때문에 그것을 막기 위해서 나온 USB Profile key도 아직 가지고 있고..

이것이 없으면 실행이 안되었으나, 끝끝내 2013년도쯤 크랙이 풀리며 의미가 없어지긴 했다만 그래도 꽤나 오랫동안 버텨주었으니 불법복제 방지 목적은 어느정도 달성한 것으로 보인다.

2008년 이후 세번째로 나온 PC판 디맥이 리스펙트 V이며, 원래는 PS4로 출시된 것이지만 PC판으로 포팅되면서 V가 붙어 출시되었다. 아무튼 나로썬 12년만에 지른 디맥이라고 할 수 있겠다.



이미 블랙스퀘어(이것도 한정판으로 질렀다. xeriars.com/100)와 클래지콰이 에디션, DMP2를 가지고는 있지만, PSP는 이제 UMD 인식도 잘 안되고 하기에 지르는 김에 DLC도 같이 질러주었다. 디맥 트릴로지 지를땐 대학생때였고, 용돈도 풍족하지 않은 상태였으나 이젠 뭐 직장인이고 저정돈 질러도 크게 부담도 안가니 생각없이 클릭 클릭. 결제.

스팀은 결제 과정이 너무 쉬운게 단점이다.



100개 이후론 세보지 않은 라이브러리는 무시하고 노루북 + 내장 그래픽으로 돌려서 그런가 싱크가 좀 안맞아 조정을 하긴 했지만 옛 생각도 나고 즐겁게 즐길 수 있다는 참 좋다. 플레이 시간 12시간은 Air작 하느라 그런거니 무시 (이것도 사실 unlock song DLC로 해결이 가능하지만 굳이…)

디맥 트릴로지 출시 이후 십 년 넘는 갭이 있어서 그런지, 용량도 무지막지하게 커졌지만 (설치하는데만 30GB가 넘는다) 그래픽이 압도적으로 좋아진데다, USB profile key가 없으면 안돌아가던게 스팀 연동으로 돌아가니 편의성은 말할 것도 없다. 수록곡 볼륨도 상당하고..

리듬게임을 십년 넘게 손을 놨더니 가볍게 클리어가 가능했던 곡들의 감각은 죄다 어디로 갔는지… 한참을 헤메고 있으나, 퇴근 후 가볍게 몇판 즐길 수 있기에 직장인 패턴에는 제법 잘 어울리는 것 같아서 모처럼 맘에 드는 게임지름이다.

스마트폰 카메라 셔터음 비활성화 하기

내용추가 2022.08.24.

안드로이드 12 이상은 https://xeriars.com/302 를 참고. (adb 적용불가)

최근에 갤럭시 노트20 울트라를 사용하다가, 안드로이드 11 베타 테스트에 참가했다.

왠걸.. 무음모드 앱을 사용하고 있던게 죄다 먹통이다. 별로 남에게 사진 찍고 있는 것을 알리고 싶지 않은데 찰칵 하고 강제로 소리나는 것은 극혐이다. 굳이 알려야 할 이유도 없고, 사무실에서 일하다가 찰칵 소리가 나면 괜히 쳐다보게 되고.. 어떤 사람들은 동물이나 애기사진 찍을때도 많이 이용되고 있는데 이걸 굳이 왜 법적으로 규제를 해놓았는지…

피쳐폰 시절부터 우리나라에는 법적으로 셔터음을 강제하도록 규제사항이 있고, 해외에 나가면 이 기능은 자동으로 비활성화 되지만 어찌되었든 짜증나는 것도 사실.

그래서 이래저래 찾아보다가 비활성화 할 수 있는 방법을 찾았다.

준비물 : adb (인터넷에 많다.)



1. 설정 → 휴대전화 정보에 들어간 후 스크린샷의 빌드번호 부분을 연타한다.

“개발자 모드가 활성화 되었습니다” 라고 나올때까지 연타하면 되며 보통 5~6회 하면 가능하다.



2. USB 디버깅 옵션을 켠 후 스마트폰과 PC를 USB 케이블로 연결한다.

3. adb를 설치후 시작 → 실행 → cmd를 켠 후 adb를 설치해둔 경로로 이동한다.



다음의 명령어를 입력한다.

adb devices

연결된 장치를 확인하는 명령어이며, 이때 휴대전화 화면에는 “RSA 어쩌고 저쩌고 인증을 #(O*&$#” 나오면 확인을 누른다.

무작위 알파벳 과 device 라고 나오면 연결이 성공된 것이다.

이제 다음의 명령어를 입력하면 완료.

adb shell settings put system csc_pref_camera_forced_shuttersound_key 0

마지막 값은 다음과 같다

0 : 셔터음 비활성화

1 : 셔터음 활성화

명령어가 올바르게 입력되면 스크린샷처럼 아무런 응답이 없고, 오타 등등 오류가 있다면 에러메시지가 출력된다.

이제 무음모드 또는 진동모드에서는 셔터음이 울리지 않으며, 벨소리를 켜두면 셔터음이 출력된다.

갤럭시 노트20 울트라 안드로이드 11 베타버전에서 작동 확인하였으며, 대부분의 스마트폰에서 작동 할 것으로 기대된다. 다만 베타버전의 경우 추가 업데이트 되면 셔터음은 다시 활성화되므로 업데이트 후 비활성화 작업을 또 해주어야 한다.

** 2020.12.23 내용추가. 갤럭시 노트 20 울트라 안드로이드 11 정식버전 릴리즈 적용 후에도 셔터음 비활성화 적용이 가능한 것을 확인. **

GCP 이용 워드프레스 설치

현재 블로그는 티스토리를 이용하고는 있으나, 개인 홈페이지 및 개인 블로그는 설치형 워드프레스를 사용중이다. 초심자가 접근하기엔 역시 티스토리나 네이버 블로그가 편하지만, 편의성이나 자유도는 압도적으로 워드프레스가 좋다. 플러그인 지원도 그렇고 이래저래 좋은 점이 많지만 역시, 단점은 설치형이다 보니 범접하기가 힘든 것도 사실이다.

설치 시 꽤나 귀찮은 점이 많아서 오늘은 추후 재설치 시 까먹을 것을 대비해서 워드프레스 설치방법을 써보려고 한다.

무료로 제공되는 가상 서버 중에는 여러가지가 있지만, 제목에 떡하니 GCP(Google Cloud Platform)라고 적어둔건 딱히 GCP가 좋아서 그런 것 보단 현재 오라클 클라우드는 이미 다른 용도로 잘 사용중이라 남는 자리가 없어서, 남는 서버를 고르다보니 GCP가 선택되었다. (개인 홈페이지, 개인용 블로그는 오라클 클라우드를 사용중이다.)

준비물 : 구글계정, GCP 가입. 이건 인터넷에 많이 있으니 이 과정은 생략한다.

1. 먼저 GCP로 접속한다. (s.xeriars.com/U71-)



2. 메뉴버튼 → Compute Engine → VM 인스턴스 클릭



3. 만들기 클릭



3. 무료 사용을 위해서는 f1-micro 머신을 골라야 하는데, 다음의 리전만 무료로 이용가능하므로 주의.

us-west1(오리건), us-central1(아이오와) us-east1(사우스캐롤라이나)

사용조건 : 1GB 트래픽, 서버용량 월 30GB, 서버 사용시간 월 744시간 (31일 * 24시간 = 744시간/월)

인스턴스를 2개 만들게되더라도 서버시간은 합산 계산되므로 두개를 같이 돌리게 되면 744시간 / 2 = 372시간으로 줄어드므로 주의한다.



4. 원하는 부팅디스크를 고른다. 개인 취향에 맞춰 CentOS를 써도 되고 Debian을 써도 되고, 그건 자유.

인스턴스는 1개만 사용할 것이므로 처음부터 30GB로 잡아준다.



5. 나중에 포트를 열려면 메뉴버튼 → VPC 네트워크 → VM 인스턴스에 가서 열면 되지만, 귀찮으니 미리 여기서 http와 https의 트래픽을 허용으로 체크 후 만들기 클릭



6. SSH로 서버에 접근 할 수 있도록 SSH키를 생성해서 붙여준다. 메뉴버튼 → Compute Engine → 메타데이터 → SSH키



7. 인스턴스 생성이 완료되면 서버 IP(외부 IP)를 이용해서 접속한다. 고정 IP는 참고로 유료기능이다.

서버 내에서 shutdown -r 명령으로는 상관이 없지만 GCP 메뉴에서 서버를 중지했다가 재시작하는 경우에는 IP가 변경되므로 나중에 도메인과 연결하기 위해 DNS를 설정하게 되면 주의해야 한다.



8. PuTTY 등으로 SSH 접속을 진행하면 되며, 무사히 완료되면 다음의 명령을 실행한다.

$sudo apt update && sudo apt upgrade -y

9. APM (Apache, PHP, MariaDB) 패키지를 설치해준다.

$sudo apt install apache2 php7.4 php7.4-fpm mariadb-server
$sudo apt install php7.4-json libapache2-mod-php7.4 php7.4-mysql
$sudo apt install php7.4-gd php7.4-mbstring php7.4-bz2 php7.4-zip
$sudo apt install php7.4-opcache php7.4-readline php7.4-curl php7.4-xml

10. mysql (MariaDB)를 설정한다.

먼저 root계정 패스워드를 설정한다.

$sudo mysqladmin -uroot -proot password 1q2w3e4r!@

그 다음 워드프레스용 데이터베이스와 계정을 생성해준다.



$sudo mysql -u root -p
create database wordpress;
use mysql;
CREATE USER 'wordpress'@'%' IDENTIFIED BY '1q2w3e4r!@';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%'; 
FLUSH PRIVILEGES;
quit;

11. 워드프레스 설치파일을 다운로드 한 뒤, 압축을 풀어 apache2 웹서버 루트로 이동시켜준다.

$cd /tmp
$wget https://wordpress.org/latest.tar.gz
$tar zxvf latest.tar.gz
$sudo mv wordpress /var/www/html

12. 웹서버 루트로 이동 후 wp-config.php를 수정해주어야 한다. nano가 없으면 설치한다.

$cd /var/www/html/wordpress
$sudo cp wp-config-sample.php wp-config.php
$sudo apt install nano
$sudo nano wp-config.php

13. wp-config.php를 다음과 같이 수정한다.


// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpress' );

/** MySQL database password */
define( 'DB_PASSWORD', '1q2w3e4r!@' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

다른 부분은 위에서 설정한 DB 설정대로 해주면 되고 AUTH_KEY 부분의 ‘put your unique phrase here’ 부분은 s.xeriars.com/73yL를 방문해서 나온 정보를 입력하면 된다.

14. 파일 및 디렉터리 소요권을 부여한다.

$sudo chown www-data.www-data /var/www/html/wordpress/* -R

15. php.ini를 값을 수정한다.

$sudo nano /etc/php/7.4/fpm/php.ini

최하단에 다음의 값을 넣어준다.

file_uploads = On
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
max_input_time = 60
max_input_vars = 4440

저장 후 php를 재시작한다.

$sudo service php7.4-fpm restart

15. apache2를 재시작한다.

$sudo service apache2 restart

16. https로 접속을 원하는 경우 반드시 도메인이 필요하며, 도메인의 DNS를 설정한 후 certbot으로 인증서를 발급받으면 된다. 그 관련 절차는 xeriars.com/260 를 참조한다.

17. 웹브라우저를 열고 http://본인의서버IP주소/wordpress 로 접속한다.



만약 설치화면이 아니라 php소스가 출력된다면 다음과 같이 수정해 줄 필요가 있다.

$sudo nano /etc/apache2/apache2.conf


스크린샷과 같이 맨 밑줄에 다음의 설정을 삽입 후 저장.

AddType application/x-httpd-php .php .htm .html .inc
AddType application/x-httpd-php-source .phps

apache2를 재시작해준다.

$sudo service apache2 restart


위와 같이 나온다면 99% 완성이다.

블로그 이름, 아이디, 비밀번호를 설정해준 뒤 install WordPress를 클릭해주면 설치가 완료된다.

검색엔진에 블로그가 노출되기 원한다면 Search engine visibility에 체크해준다. 나는 개인 홈페이지를 만들때는 체크를 안하고 만들었다.



18. 아이디와 패스워드까지 생성되었으면 완료된 것이다. 이제 다시 http://본인의서버IP주소/wordpress 로 접속하면 다음과 같은 화면을 볼 수 있다.



19. 개설된 블로그가 이렇게 뜬다면 완성.

이제 관리자 페이지에 들어가 이런저런 설정을 해주면 된다.

잘 꾸미고 운영하는 일만 남았으며, 다음번 글에는 이런저런 꼼수를 조금 더 담아볼까 생각중.

블로그 도메인 변경 및 이동작업

기존에 블로그 도메인에 사용하던 llf.io는 다른 용도로 사용할 일이 생겨서 기존에 미리 보유하고 있던 xeriars.com으로 도메인을 변경하였다.

단순히 티스토리에서 도메인 변경만 하는 것이라면 상관은 없지만, SEO (Search Engine Optimization)까지 신경쓴다면 검색엔진쪽도 건드려줘야한다.

기왕 변경한 것이니 오늘은 블로그 도메인 변경 및 이동작업에 대해서 글을 써본다.

주의사항 : 블로그 주소 변경 시 당분간 방문자 감소는 피할 수 없는 리스크임을 감수하고 진행해야한다.

1. 변경 할 도메인의 DNS 설정



CNAME내용은 blog.tistory.com 또는 host.tistory.io로 설정하면 된다.

Naked domain으로 설정하는 경우 cloudflare는 CNAME Flattening 기술이 적용되어있어 www없이 그냥 입력해도 되지만, 원칙적으로는 비표준이므로 DNS 설정이 상기와 같이 안될 수 있어 이럴때는 아래와 같이 입력하여 해결한다.

Record : A / Name : @

Content : 27.0.236.139 (IP가 변경되는 경우에는 티스토리에서 별도 공지예정이라고 한다. 출처)

A레코드가 싫으면 xeriars.comwww.xeriars.com 으로 301 리디렉션 처리를 해도 된다.

다만 Naked domain이 아닌 www가 붙는게 단점이라면 단점. 크게 상관은 없어보인다.

2. 티스토리 블로그 도메인 변경작업

티스토리 블로그 관리페이지 → 관리 → 블로그 → 개인 도메인



사용중인 도메인을 무시하고 변경할 도메인을 입력하고 “변경사항 저장”을 클릭하면 되며, 티스토리는 https접속만 가능하게 변경되었으므로, 인증서 발급도 진행된다. (티스토리 도메인 연결/적용 방법 xeriars.com/240 참조)

3. 검색엔진 수정 전 301 리디렉션 처리

티스토리 자체 기능만으로는 불가능한게 있어 DNS또는 별도 서버에서 처리해줄 필요가 있다.

앞전에 남긴 글 (xeriars.com/238)을 참조하거나 하기와 같이 별도 서버에서 301 리디렉션 처리를 할 수 있다.

서버가 없다면 Google Cloud Platform 또는 Oracle Cloud에서 계정을 하나 만들어서 VM Instance로 생성하여 서버를 가지고 작업하면 된다. (계정 생성의 경우는 인터넷에 검색해보면 널렸으므로 여기서는 다루지 않는다.)



서버 IP를 A레코드로 DNS에 물려주면 DocumetRoot에 지정된 경로로 접속하게 되는데, 경로에 있는 index.html 또는 index.php를 읽게 되므로, 위 스샷처럼 간단하게 리디렉션 처리를 해주면 된다.

<?php
	header("Location: https://xeriars.com", true, 301);
	exit();
?>

다만 경로 전달을 위해서는 아래와 같이 .htaccess까지 건드려줄 필요가 있다.



RewriteEngine on
RewriteRule ^(.*)$ https://xeriars.com/$1 [R=301,L]

.htaccess까지 건드려주면 https://llf.io/111로 접속했을 때 https://xeriars.com/111 로 리다이렉트 해주므로 검색엔진에서 유입되는 케이스까지 생각한다면 설정해주는게 좋다.

4. 선호 URL (Canonical URL) 설정

<link rel="canonical" href="https://xeriars.com">

현재 나눠져 있는 도메인은 femto.me, llf.io, xeriars.tistory.com, xeriars.com 총 4가지이므로 대표적 도메인을 검색엔진에 알려 줄 필요가 있다.

이것을 설정해주지 않으면 검색엔진이 표준 URL로 선언되지 않은 URL로 판단되어 색인생성이 제대로 되지 않으므로 여러개의 도메인으로 나누어져 있는 검색결과를 병합하기 위해서는 반드시 필요한 조치 중 하나이다.

5. 검색엔진 사이트 이동조치

사이트 맵 및 robots.txt 반영에 관련해서는 티스토리에서 다음과 같이 지원하고 있으므로 필요 시 반영/제출하면 된다.

사이트 맵 : https://자신의도메인/sitemap.xml (예 : https://xeriars.com/sitemap.xml)

robots.txt : https://자신의도메인/robots.txt (예 : https://xeriars.com/robots.txt)

검색엔진에 노출되도록 Google Search Console이나 bing 웹마스터 도구 등을 수정할 수 있다.

1) Google Search Console (s.xeriars.com/fers) 에서는 다음과 같이 이동시킬 수 있다.

구글 서치콘솔 접속 → 설정 → 주소변경



이미 앞서 301 리디렉션 처리를 해둔 상태이므로 “유효성 검사 및 업데이트”를 누르면 유효성 검증이 진행 된 후 이동이 가능하다. 단, *.tistory.com에서 검색결과의 이동은 301 리디렉션 처리를 할 수 없으므로 불가능.


예전에 쓰던 femto.me도 하는김에 같이 이동시켜주었다. 이렇게 설정해주고 몇 달 기다리면 구글검색결과가 모두 xeriars.com으로 이동되므로 fork된 검색결과가 모두 병합된다. 구글에서 권장하는 301 리디렉션 유지기간은 기본 6개월이라고 명시되어 있다. 기존 도메인의 검색결과가 악용되지 않게 도메인을 최소 1년 간 유지하는 것도 권장하고 있다.

(출처 : s.xeriars.com/ZGHI)

2) bing.com (s.xeriars.com/scJs)은 새버전에서는 사이트 이전 메뉴를 찾지 못해 구버전에서 진행하였다. 사이트 주소를 둘 다 (llf.io, xeriars.com) 추가 후 다음과 같이 진행한다.

이동할 도메인(llf.io)을 선택 후 진단 및 도구 → 사이트 이동 으로 접속한다.


구글의 경우는 301 리디렉션 처리 후 유효성검증까지 마쳐야 이동할 수 있는 것에 반해, bing은 특별한 검증없이 이동이 가능하므로 크게 신경 쓸 필요는 없다.

3) 네이버 서치어드바이저(웹사이트 도구)는 s.xeriars.com/F9LV를 참조하면 되며 기본적인 절차는 다음과 같다.

먼저 기존 사이트에 robots.txt로 다음과 같이 수집이 거부되도록 한다.

User-agent: *
Disallow: /

301 리디렉션은 이미 설정되어있을테니 이 부분은 앞 내용을 건너뛰지 않았다면 크게 신경 쓸 필요는 없다.

다음으로는 이동할 사이트 (xeriars.com)을 등록한 후 사이트맵을 제출하여 주고 기다리면 해결된다.

4) 다음 검색등록(s.xeriars.com/Uzle)은 티스토리 도메인을 변경하면, 바로 변경된 주소가 다음 검색결과에 반영되나 때로는 검색엔진 내부 로직에 의해 삭제될 수 있는데, 이때는 검색등록을 별도로 신청해주어야 하며, 그래도 노출이 안된다면 검색엔진 내부에서 스팸 등으로 제외처리 된 것이므로 고객센터에 문의해서 풀어주어야 한다.



검색엔진의 검색결과까지 반영하는 몇 가지를 다루었으니, 그 외의 검색엔진에 대한 것은 이 글을 읽는다면 큰 어려움 없이 응용 할 수 있으리라 판단되며, 나중에 변동사항에 대해서는 이 글에 추가적으로 내용을 기입할 생각이다.

개인 도메인 이용 단축 URL 만들기 (YOURLS 이용)

전에 ushort.io에서 개인 도메인을 통한 단축 URL만들기에 대한 글을 썼었는데 (xeriars.com/246)

최근에 오라클 클라우드와 GCP (Google Cloud Platform) VM 인스턴스를 통한 평생무료서버가 몇 개 생겨서

뭘 설치할까 고민하다가 설치형 단축 URL 애플리케이션(오픈소스)으로 유명한 YOURLS를 설치하기로 했다.

일단 기본적으로 GCP에 VM 인스턴스 생성하는 방법은 인터넷에 널려있으니 이건 넘어가도록하고,

APM 설치 후 YOURLS(Your Own URL Shortener)를 설치해서 운영하는 방법이다.

여러가지 리눅스 배포판이 있지만 무난한 우분투 리눅스 20.04.01 LTS 기준으로 설명한다.



일단 GCP 생성 후 SSH로 접속후에는 APM부터 설치해주어야 한다. 다음의 명령을 입력한다.

$apt update && apt -y upgrade
$apt -y install software-properties-common
$add-apt-repository ppa:ondrej/php
$apt update
$apt -y install php7.4 php7.4-mysql
$apt -y install apache2
$apt -y install software-properties-common
$apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
$add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.5/ubuntu focal main'
$apt update
$apt -y install mariadb-server
$apt -y install nano git

MariaDB 대신 mysql을 사용해도 되는데, 개량판인 MariaDB가 더 나은 것 같아 이것으로 설치했다.

다음으로는 git과 nano를 설치해준다. nano 대신 다른 편집기를 사용해도 된다만, 개인적으론 이게 더 편했다.

여기까지 설치했으면 일단 기본 준비는 끝.

이제 YOURLS를 다운로드하고 설치할 차례다.

$cd /tmp
$wget https://github.com/YOURLS/YOURLS/archive/1.7.9.tar.gz
$tar zxvf 1.7.9.tar.gz

/tmp에 YOURLS를 다운로드 받는다. git에 올라온 최신버전은 1.7.10이나 어쩐지 공지에는 이 내용이 없고 공식적인 최신버전은 여전히 1.7.9이므로 일단 저것으로 진행한다.



압축까지 풀었으면 apache2 웹서버 경로로 파일을 이동시켜 줄 차례.

$mv YOURLS-1.7.9 /var/www/html/urls
$cd /var/www/html/urls/user

YOURLS-1.7.9 폴더를 urls로 이름을 바꿔 이동하나, 이건 자유롭게 해줘도 무방하다.

이제 데이터베이스를 생성할 차례.

$mysql -u root -p

데이터 베이스에 루트계정으로 접속한다. 아직 루트계정에 암호가 설정되지 않았을테니 암호를 물어보면 엔터를 친다.

$create database yourls;
$use mysql;
$CREATE USER '아이디'@'localhost' IDENTIFIED BY '패스워드';
$GRANT ALL PRIVILEGES ON 데이터베이스.* TO '아이디'@'localhost';
$FLUSH PRIVILEGES;
$quit;

만일 MySQL 루트 계정 패스워드를 변경하고 싶다면 다음과 같이 입력한다.

$mysqladmin -u아이디 -p기존패스워드 password 신규패스워드
예시 $mysqladmin -uroot -proot password 1q2w3e4r!@

설정파일을 만들기 전에, 한글패치를 만드신 분이 있으니 한글패치를 적용한다.

$cd /var/www/html/urls/user/languages
$git clone https://github.com/at4am/YOURLS-ko_KR.git
$mv YOURLS-ko_KR/ko_KR.po ./
$mv YOURLS-ko_KR/ko_KR.mo ./

이제 YOURLS 설정파일을 만들 차례다. 다음과 같이 입력한다.

$cd /var/www/html/urls/user
$cp config-sample.php config.php
$nano config.php

자신있으면 mv로 해도 무방하긴 한데, 그래도 혹시 몰라 cp로 했다.



nano로 config.php를 열어주면 여러가지 설정파일이 나오는데, 이 글에서는 필요한 것만 세팅한다.

상세 설명은 공식홈페이지의 내용을 참조 (https://s.xeriars.com/KJIg)

/** MySQL database 아이디 */ 
define( 'YOURLS_DB_USER', 'yourls' ); 

/** MySQL database 패스워드 */ 
define( 'YOURLS_DB_PASS', '1q2w3e4r!@' );

/** YOURLS 를 적용 할 도메인명. https를 적용하려면 https라고 써준다. */
define( 'YOURLS_SITE', 'https://s.xeriars.com' );

/** 서버 타임존 설정. 우리나라는 GMT+9 이므로 아래와 같이 입력 */
define( 'YOURLS_HOURS_OFFSET', 9 );

/** YOURLS 언어설정 */
define( 'YOURLS_LANG', 'ko_KR' );

/** 랜덤 쿠키값 입력 */
/** https://api.yourls.org/services/cookiekey/1.0/ 에 접속한 후 나온 값을 입력해주면 된다. */
define( 'YOURLS_COOKIEKEY', 'Zb0ZhUp%smJj$f#~qAEv}qnM6nZbc72w]$ZDZwF{' );

/** 로그인 시 사용할 아이디 / 패스워드 입력.  */
$yourls_user_passwords = array(
        'yourls' => '1q2w3e4r!@',
        // 아이디, 패스워드를 추가하려면 아래와 같이 입력한다.
        // 'username2' => 'password2',
        // You can have one or more 'login'=>'password' lines
        );


/** 단축URL 무작위 생성방식: 36 또는 62 입력 */
define( 'YOURLS_URL_CONVERT', 62 );
/*
 * 36: 전부 소문자로 생성 (예: 13jkm)
 * 62: 숫자,대소문자로 생성 (ie: 13jKm or 13JKm)

전부 입력해준 후에는 ctrl + o 를 눌러 저장해주고 ctrl + x로 빠져나온다.

$chmod 666 config.php

위의 설정파일에서 지정한 로그인 아이디, 패스워드 중 패스워드는 나중에 암호화가 되므로 chmod를 통해 읽기, 쓰기 권한을 지정해주어야 한다.

$cd /var/www/html/urls
$nano .htaccess

이제 .htaccess를 생성해줄 차례다. 아래 내용을 넣어주고 저장해주면 끝.

# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>
# END YOURLS

(선택사항) 아까 config.php에서 https로 설정해주었으므로 SSL 인증서 발급이 필요하다.

certbot을 이용하면 간단하게 해결 가능한 부분이므로 이 부분을 같이 진행한다.



DNS에서 일단 서버 IP를 A record로 넣어주고 proxy 연결은 풀어준다. 인증서 발급 전에 proxy로 연결되면 클라우드 플레어 CDN으로 연결되어 정상적인 IP를 찾지 못하므로 발급 후 proxy로 해주면 된다.

이제 certbot을 설치한다.

$sudo snap install --classic certbot
$certbot --apache


중간에 물어보는건 메일주소, 약관동의, 메일링리스트 가입동의, 도메인 입력까지 4가지이므로

각각 입맛에 맞춰 입력해주면 된다.



이런식으로 에러가 난 상태면 DNS 설정이 제대로 안된 상태이거나, DNS 설정 후 아직 반영이 안된 상태이므로

조금 기다렸다가 다시 인증서 발급을 시도하면 된다.

인증서 발급이 완료되면 ssl, rewrite는 자동으로 활성화 되므로 a2enmod로 활성화 할 필요는 없다.

$cd /etc/apache2/sites-available
$ls -al
$nano 000-default-le-ssl.conf


인증서를 생성하면서 도메인에 맞는 설정파일이 생성, 등록되었으므로 이것을 기준으로 수정하면 된다.

기본으로 생성되는건 000-default-le-ssl.conf이므로 이 파일을 수정한다.

혹시 맘에 들지 않으면 a2dissite로 등록 해제 후 *.conf 이름을 변경해준 뒤 다시 a2ensite로 등록.



*.conf 를 nano로 열어 경로를 변경해준다. 빨간 박스처럼 수정해주면 된다.

저장 후 다시 빠져나온다.

이제 끝이 보이긴 하는데 아직 하나 더 수정해줄 파일이 남아있다.

$nano /etc/apache2/apache2.conf

우분투 기준이므로 다른 버전은 httpd.conf를 수정해주면 된다.



172번째줄 쯤 AllowOverride None을 ALL로 변경해준다.

이것이 수정되지 않으면 URL이 생성되도 접속이 안되는 문제가 생긴다.

이제 아파치를 재시작해준다.

$service apache2 restart
또는
$/etc/init.d/apache2 restart

이제 https://설정한도메인/admin/install.php 로 접속한다.



“YOURLS 설치하기” 클릭



.htaccess 파일이 에러가 나는 경우가 있는데, 미리 생성해서 그런것이므로 별 문제는 없다.

설치가 완료되었으므로 YOURLS 관리페이지(https://설정한도메인/admin)로 접속해보자.



아까 config.php에서 설정한 아이디와 비밀번호를 입력하고 로그인한다.



이 화면까지 보인다면 설치가 완료 된 것이다. 이제 테스트를 해보자.

구글에서 이 블로그의 도메인인 xeriars를 검색한 url은 다음과 같다.

www.google.com/search?newwindow=1&q=xeriars.com&nfpr=1&sa=X&ved=2ahUKEwja9sHBmofsAhWJd94KHbCkATUQvgUoAXoECAsQKg&biw=1536&bih=754

이 url을 입력후 “URL” 단축하기를 클릭.



생성된 URL은 s.xeriars.com/C8ZE 이며 Random ShortURLs Settings 플러그인을 사용하여

4자리로 생성되도록 했기 때문에 이런 형식으로 생성되었다.

(*서버 보안 강화 차원에서 해외 IP로는 접속이 안되게 막아둔 상태이다.)

생성 전 “사용자 정의 단축 URL”에 원하는 단어를 넣으면 https://도메인/xxxx 형식으로도 생성이 가능하다.

여기까지가 끝이면 좋겠지만, 현 상태에서는 https://사용자도메인 으로 접속하면 아래와 같이 나온다.



이렇게 된 이유는 index.html이나 index.php가 없기 때문인데,

아까 아파치 설정파일에서 루트경로를 수정해주어서 그렇다.

기본적으로는 /var/www/html이 루트경로이나 아까 설정해준 것은 /var/www/html/urls 였으니

저 파일 목록을 보면 index.html이나 index.php가 없는 것을 알 수 있다.

로그인 경로는 /var/www/html/urls/admin/index.php 이므로 이것을 심볼릭 링크로 걸어주면 된다.

심볼릭 링크는 윈도우로 치면 단축아이콘 정도로 생각하면 된다.

$ln -s /var/www/html/urls/admin/index.php /var/www/html/urls/index.php
$mv sample-robots.txt robots.txt
$service apache2 restart

하는김에 robots.txt 도 설정해줘서 웹 크롤러가 /admin 까지 크롤링 하는걸 막아준다.

아파치를 재시작해주고 나면 https://사용자도메인 으로 접속했을때

이제 저 보기 싫은 파일 탐색창 대신 로그인 화면이 바로 뜨게 된다.

이렇게 yourls 설치를 통한 개인도메인 사용 단축 URL글은 끝이 났다.

아무래도 설치형이다보니 전에 소개했던 ushort.io 보단 압도적으로 복잡하지만, 일단 무료인 점과

한번 고생해서 설치를 해두면, 구글에서 서비스를 종료하지 않는 한 지속적 이용이 가능한게 장점이다.

또한 광고에서 자유로운 점과 도메인도 맘대로 바꿔줄 수 있는 것도 장점으로 작용한다.

리눅스를 처음 접하거나 복잡해서 어려울 수도 있지만 차근차근 따라하다보면 그렇게 어려운건 아니니

필요한 사람들에게 도움이 되는 글이었으면 좋겠다.

HTTP/2 적용

기존 운영하고 있던 서버는 모두 HTTP/1.1을 사용하고 있었으나 이미 출시된지 오래된 프로토콜이고,

최근 대세가 HTTP/2인 관계로 5개 서버 모두 적용하였다.

필수조건인 https의 사용은 이미 certbot을 이용해서 let’s encrpyt에서 SSL 인증서를 받아오고 있으니 패스.

#sudo apt-get install php7.4-fpm
#sudo a2enmod proxy_fcgi
#sudo a2enconf php7.4-fpm
#sudo a2dismod php7.4
#sudo a2dismod mpm_prefork
#sudo a2enmod mpm_event

YOURLS 설치 시 mod php를 사용중이었으나, fpm으로 변경하였고,

HTTP/2에서는 prefork모듈이 지원되지 않아 dismod 처리 후 mpm으로 전환했다.

일부 명령어는 선행작업이 필요하므로, 가급적 명령어 처리시 순서를 맞추면 별 트러블 없이 처리 된다.

#sudo nano /etc/apache2/apache2.conf
또는
#sudo nano /etc/apache2/sites-available/개별-사이트-설정파일.conf

아파치 기준 위와 같이 설정파일에 접근 후 적절히 아래의 코드 한줄만 삽입해주면 된다.

첫번째 줄은 서버 내에서 여러사이트를 운영할 때, 두번째 줄은 사이트별 개별설정을 의미한다.

Protocols h2 https/1.1

위 코드 한줄 입력시 호환이 안되는 클라이언트에서는 HTTP/1.1 나머지는 HTTP/2를 지원한다.

최근에 이르러서는 거의 대부분의 인터넷 브라우저에서 HTTP/2를 지원하기에 큰 문제는 없다.

#sudo apachectl configtest
#sudo /etc/init.d/apache2 restart

설정을 확인 후 Syntax OK가 나오면 서버를 재시작해주고 적용한다.



사이트 로그를 확인하거나 https://s.xeriars.com/y58A에서 적용 여부를 확인 할 수 있다.

Oracle cloud 서버 운영 시작



얼마전에 오라클 클라우드에서 2개까지 VPS(Virtual Private Server)를 무료로 제공한다는 소식을 듣고, 벼르고 있다가 날잡아서 계정만들고 서버를 두개 만들었다.

그 사악한 오라클이 그럴리가 없는데, VPS 2개에 용량 100GB, 트레픽 10TB까지 해서 무료로 제공된다.

보통 Outline 설치하고 VPN용도로 많이 쓰던데, VPN이야 어차피 Windscribe VPN을 lifetime license로 구매했기 때문에 이걸 쓰고 있고, 국내 IP + 보안이 필요한 곳은 집 공유기를 VPN으로 쓰고 있어서 크게 효용성을 못느꼈다.

VPN은 또한 warning.or.kr을 우회하기 위한 수상한(!?) 목적으로도 쓰이는데, 그 목적이라면 애초에 계정생성 시 Region을 서울로 생성하면 국내 IP만 가능하기 때문에 별 의미가 없다. (그 목적으로 만들거면 서울리전은 피해서 만들란 뜻)

물론 올 초 독일에 출장을 두 달간 다녀왔는데, 출장 중 국내 IP가 필요한 경우가 생겨서 (주로 은행이나 이런 금융거래 시 국내 IP를 요구한다.) 집 공유기에 설치된 VPN을 잘 써먹긴 했다만…

뭐로 할까 고민하다가 Ubuntu Linux에 도메인 단축을 위한 YOURLS를 한대 설치하고 개인적인 끄적거림용 WordPress를 설치해놓고 갖고 있던 도메인까지 물어놨다.

두가지를 한꺼번에 다 하기엔 서버가 조금 버벅 댈 것 같아서 일단은 둘 다 분리상태. 이 부분이야 정 필요하면 계정을 하나 더 만들면 해결되는 부분이다. (그럼 무료 VPS가 4개!)



Synology NAS에서 설치해서 쓰던 YOURLS를 옮겨와서 이것저것 긴 URL을 단축시켜보며 테스트를 하고 있고, 하는김에 Let’s encrypt 인증서 받아서 SSL 적용하고 도메인이 등록되어 있는 Cloudflare에서 proxy접속을 통해 서버 IP까지 숨겨서 조금 더 보안에 신경을 썼다.

조금 더 갖고 놀다가 추후에 설치법에 대해서 별도 포스팅 하는 것으로 결론.