일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- syscall
- tcache
- 브루트 포스
- 에라토스테네스의 체
- 완전 탐색
- 다이나믹 프로그래밍
- fsb
- 동적 계획법
- 스택
- 수학
- 포맷스트링버그
- 투 포인터
- off by one
- RTL
- 이진트리
- House of Orange
- 이분 탐색
- 스위핑 알고리즘
- 문자열 처리
- DFS
- heap
- 백트래킹
- 이진 탐색
- 큐
- OOB
- BFS
- BOF
- ROP
- 연결리스트
- 분할 정복
- Today
- Total
SDJ( 수돈재 아님 ㅎ )
Ubuntu 16.04에 hustoj 설치하기 ( feat. nginx 502 bad gateway ) 본문
이번에 동아리의 신입들의 C언어 테스트를 위해 hustoj를 설치할 계획을 세웠다.
이전에 노트북으로 oj 서버를 돌려본 이력이 있긴 하지만 24시간동안 노트북을 켜놓진 않을거라.. 이 서버를 GCP에 옮겨서 꿀잠 자면서도 서버를 돌아가게 만들고 싶어서 GCP에 빠르게 VM을 생성했다.
이전에 노트북에서 구축을 할 때는 쉽게쉽게 해서 GCP도 금방 할 줄 알았는데..
서버의 작동 원리(?)라 해야하나.. 약간 이런부분이 처음이라 502 bad gateway 떴을 때 엄청 당황했다.
그래서 나중에 나같이 당황하는 사람이 있으면 도움이 되기를 바라면서.. 글을 끄적인다.
일단 hustoj 구축 방법에 대해 설명을 해둔 글들을 구글에 쳐보면 나온다.
hustoj github인 https://github.com/zhblue/hustoj에 들어가보면 운영체제에 맞게 어떻게 설치를 하는지 설명되어있다.
명령어를 가져오자면
wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh sudo bash install-ubuntu16+.sh |
일단 이렇게 하면 설치가 된다고 한다.
그래서 저걸 따라하면
mysql 설치가 안되어 있을 경우에는 새로 mysql 계정을 만들라고 창이 뜰것이고, 설치가 되어있다면 그냥 넘어가게 될 것이다.
설치가 다 끝나면 로컬일 경우 127.0.0.1, 외부 서버일 경우 서버 외부 IP에 접속하여 hustoj 창이 뜨는지 봐야한다.
필자는 여기서 절망에 빠졌는데
nginx 502 bad gateway가 떠서 잠시 패닉에 빠졌다. ( 로컬에서 했을 때는 잘 됐었다 )
그래서 구글링을 하던 도중..
502 bad gateway의 원인이 다양하다는 말이 너무 많아서 일단은 log를 봤다.
결론은 내 경우에 서버문제였다.
sudo cat /var/log/nginx/error.log |
여러번 접속을 시도했던 탓에 다음과 같이 log가 적혀있었다.
저기서
*1 connect() to unix:/run/php/php7.2-fpm.sock failed |
이 부분을 보면 php7.2-fpm.sock failed라 되어있길래 저 VM의 php버전이 7.2가 아닌것 같아서
php -v |
를 통해 버전을 보니 php가 7.0이더라..
그래서 저걸 7.2로 바꾸면 고칠 수 있지 않을까 해서 바로 7.2로 업그레이드 시켰다.
( 이게 정답이었다. )
7.2로 업그레이드 시킬 때 참고한 사이트이다.
https://swiftcoding.org/installing-php7-2-fpm
페이지에 있는 순서를 대략적으로 옮겼다.
1. php의 버전을 확인
sudo apt-cache policy php |
먼저 자신의 php의 버전이 무엇인지 확인해야 한다.
2. apt에 7.2 저장소를 추가한다.
sudo add-apt-repository ppa:ondrej/php |
여기서 [ENTER]를 누르면 설치가 진행된다.
설치가 완료되면 apt의 패키지를 업데이트 한다.
sudo apt-get update |
apt 리스트에서 php 정보를 확인해서 7.2가 추가됐는지 확인
sudo apt-cache policy php |
여기서 php7.2가 아닐 수도 있음!
(필자는 여기서 php7.4( 최신버전 )으로 뛰어있었는데 무시하고 계속 진행하니까 최종적으로는 7.2가 됨.)
3. php 7.2 fpm과 주요 모듈 설치
sudo apt-get install php7.2-fpm |
Do you want to continue? 질문이 나오면 Y를 입력하여 설치를 진행한다.
설치가 완료되면 php에 중요한 모듈을 설치한다.
sudo apt-get install php7.2-cli php7.2-curl php7.2-gd php7.2-mysql php7.2-mbstring zip unzip |
4. 버전 확인
php -v |
php의 버전을 확인하고 7.2가 되었다면 사이트에 다시 접속해서 hustoj가 뜨는지 확인하면 된다.
마지막으로 php-fpm을 재시작 시켜주면 된다.
sudo service php7.2-fpm start |
어쩌면 운이 좋게 해결한 걸지도 모르겠으나,, 같은 오류를 해결하고싶어하는 사람이 있을지도 모르니.. 짧게나마 포스팅을 썼다.
'메모메모' 카테고리의 다른 글
One_gadget 설치 (0) | 2020.07.03 |
---|---|
Ubuntu 19.04 [ 404 Not Found ] 뜰 때 (0) | 2020.06.10 |
책상 조립 완료,, (0) | 2020.02.24 |
[R].. 노마드 끄적거림 (0) | 2019.12.20 |
CTF 서버 설정 과정(GCP) (0) | 2019.09.19 |