goodthings4me.tistory.com
서버 호스팅 연습을 위해 cafe24 가상서버 호스팅을 신청했다. 리눅스를 잘 모르고 개발자도 아니지만 서버 세팅을 하고 파이썬과 장고를 설치해봤다. 그리고 나중에 활용하기 위해 가상서버 호스팅과 서버 세팅, 파이썬 장고 설치 방법을 정리해보았다.
가상서버 호스팅 신청, 서버 세팅, 파이썬 및 장고(Django) 설치
[cafe24에서 가상서버 호스팅 신청하기]
cafe24.com 로그인 후 상단 메뉴 중 "서버호스팅 IDC" 부분 아래에 있는 "가상서버호스팅"을 클릭한다.
SSD 리눅스 가상서버 호스팅이 default로 선택이 되어있고, 나는 리눅스 서버를 선택했다.
테스트 용도나 작은 서버로 사용할 경우 일반형도 괜찮고 좀 여유 있게 사용하려면 비즈니스 상품을 선택한다.
회원정보 아이디와 비번, 그리고 임시 root 비번 입력하고 신청 절차에 따라 결제를 한다.

서비스 신청 완료 후,
cafe24 메인 페이지 중간 좌측에서 "나의서비스관리"를 클릭한다.
서비스 사용현황을 볼 수 있는데, 여기서 서버 IP를 확인한다.
도메인을 cafe24.com이 아닌 본인만의 도메인을 사용하려면 "도메인 추가 연결 및 관리"를 클릭하여 세팅한다.
가상서버 세팅
[PuTTy 접속]
PuTTy 실행
Host Name(or IP address)에 접속하려는 가상서버의 공인 IP 입력
Port 22
Connection type 설정 그대로 둔다
Saved Sessions에 관리 명칭 입력
Save 클릭
Open 클릭
Accept 버튼 클릭

login as: 에 root 입력 후 패스워드를 입력하면 SSH로 접속이 된다.
[PuTTy 로그인 후 명령어 실행]
Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-159-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sat Aug 13 12:01:06 KST 2022
System load: 0.0 Processes: 119
Usage of /: 10.7% of 25.27GB Users logged in: 0
Memory usage: 17% IP address for eth0: 2xx.xxx.xxx.xxx
Swap usage: 0%
143 updates can be applied immediately.
119 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
Last login: Fri Feb 4 11:52:44 2022
root@kdjango:~#
파일 리스트와 현재 폴더 확인하기
root@kdjango:~# ls
root@kdjango:~# ls -a
. .. .bash_history .bashrc .cache .gnupg .profile .vim .viminfo .wget-hsts
root@kdjango:~# pwd
/root
root@kdjango:~#
상위 폴더 확인하기
root@kdjango:~# cd ..
root@kdjango:/# ls
bin etc initrd.img.old lost+found opt run sys var
boot home lib media proc sbin tmp vmlinuz
dev initrd.img lib64 mnt root srv usr vmlinuz.old
root@kdjango:/# pwd
/
root@kdjango:/# cd root
root@kdjango:~# ls -a
. .. .bash_history .bashrc .cache .gnupg .profile .vim .viminfo .wget-hsts
root@kdjango:~#
[가상서버 업데이트]
로그인 후 출력된 아래 사항을 적용하기 위해 update 명령을 준다.
143 updates can be applied immediately.
119 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
우분투 패키지 설치를 위해서 apt(Advance Packging Tools) 명령어를 사용하여 설치한다.
root@kdjango:/# apt update
업데이트 패키지 리스트를 확인하려면,
root@kdjango:/# apt list --upgradable
업그레이드 진행
root@kdjango:/# apt upgrade
즉, 우분투 패키지 업그레이드 명령어는
apt update
apt upgrade
패키지 설치 후 apt list --upgradable 명령으로 재 확인
root@kdjango:~# apt list --upgradable
Listing... Done
root@kdjango:~#
[python3.8 설치하기]
- Python 3용 pip 설치
- 레포지터리를 추가할 수 있는 패키지 설치
- 파이썬 3.8 설치
apt install python3-pip
# apt install python-pip는 python 2 버전용임
# 설치가 실패하면 apt update 명령을 준다
root@kdjango:~# pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
root@kdjango:~#
이 우분투 버전에서는 apt-get install python3라고 실행해도 python3.6.9 버전 이상으로 업데이트되지 않습니다.
그래서 python3.8 설치를 위해 레포지터리를 추가할 수 있는 패키지를 설치한다.
명령은 apt install software-properties-commom 임
root@kdjango:~# apt install software-properties-commom
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package software-properties-commom
root@kdjango:~#
다음으로, 파이썬3의 레포지터리를 추가한다.
root@kdjango:~# apt-add-repository ppa:deadsnakes/ppa
엔터로 진행 또는 Ctrl-c로 취소라는 메시지가 출력되면 엔터로 진행한다.
Reading package lists... Done
root@kdjango:~#
위 처럼 정상적으로 완료가 되면 등록한 레포지터리 목록을 업데이트한다.
root@kdjango:~# apt update
모든 게 정상적으로 진행되었다면, 이제 파이썬 3.8을 설치할 수 있습니다.
apt-get install python3.8 (or apt-get install -y python3.8) 설치를 진행합니다.
root@kdjango:~# apt-get install python3.8
파이썬 버전 확인
root@kdjango:~# python -V
Python 2.7.17
root@kdjango:~# python3 -V
Python 3.6.9
root@kdjango:~# python3.8 -V
Python 3.8.13
root@kdjango:~#
다음과 같은 추가 기능을 설치할 수 있다.(선택적)
C 확장을 빌드하기 위한 개발 헤더 설치:
sudo apt install python3.8-dev -y
표준 라이브러리(venv) 모듈을 설치합니다.
sudo apt install python3.8-venv -y
표준 라이브러리(distutils) 모듈 설치:
sudo apt install python3.8-distutils -y
(2to3.8) 유틸리티와 표준 라이브러리(lib2to3) 모듈을 설치합니다:
sudo apt install python3.8-lib2to3 -y
표준 라이브러리(dbm.gnu) 모듈 설치:
sudo apt install python3.8-gdbm -y
표준 라이브러리(tkinter) 모듈 설치:
sudo apt install python3.8-tk -y
[파이썬 가상 환경을 위한 폴더 생성하기]
root@kdjango:~# pwd
/root
root@kdjango:~# mkdir kesco
root@kdjango:~# ls
kesco
root@kdjango:~# cd kesco
root@kdjango:~/kesco# ls -a
. ..
root@kdjango:~/kesco#
[가상환경 생성 및 파이썬 버전 확인]
root@kdjango:~/kesco# python3.8 -m venv venv
root@kdjango:~/kesco# ls
venv
root@kdjango:~/kesco# python3 -V
Python 3.6.9
root@kdjango:~/kesco#
# 가상환경 내의 파이썬 버전 확인은 가상환경을 활성화(source venv/bin/activate) 시킨 후에 확인한다.
root@kdjango:~/kesco# source venv/bin/activate
(venv) root@kdjango:~/kesco# python3 -V
Python 3.8.13
(venv) root@kdjango:~/kesco#
장고(django) 설치 및 개발 서버 구동
[장고(django) 설치]
# 장고 설치 여부를 확인하기 위해 장고 버전을 확인한다.
(venv) root@kdjango:~/kesco# django-admin --version
Command 'django-admin' not found, but can be installed with:
apt install python-django-common
(venv) root@kdjango:~/kesco#
# Django 설치 명령어 apt install python-django-common 를 사용하는 것이 아니라,
가상환경에서 사용할 장고 버전을 설치할 것이기 때문에 아래와 같이 명령을 준다.
- Django 3.2.13 (LTS)이기 때문에 3.2 설치함
pip3 install django==3.2
(venv) root@kdjango:~/kesco# pip3 install django==3.2
# pip 업그레이드 함
(venv) root@kdjango:~/kesco# /root/kesco/venv/bin/python3.8 -m pip install --upgrade pip
Collecting django==3.2
Downloading Django-3.2-py3-none-any.whl (7.9 MB)
... 이하 생략 ...
(venv) root@kdjango:~/kesco#
(venv) root@kdjango:~/kesco# django-admin --version
3.2
(venv) root@kdjango:~/kesco# ls
venv
(venv) root@kdjango:~/kesco# cd venv/bin/
(venv) root@kdjango:~/kesco/venv/bin# ls
activate Activate.ps1 pip __pycache__ python3.8
activate.csh django-admin pip3 python sqlformat
activate.fish django-admin.py pip3.8 python3
(venv) root@kdjango:~/kesco/venv/bin#
[장고 프로젝트 생성]
(venv) root@kdjango:~/kesco# django-admin startproject config .
(venv) root@kdjango:~/kesco# ls
config manage.py venv
(venv) root@kdjango:~/kesco# cd config/
(venv) root@kdjango:~/kesco/config# ls
asgi.py __init__.py settings.py urls.py wsgi.py
(venv) root@kdjango:~/kesco/config#
(venv) root@kdjango:~/kesco/config# cd ..
(venv) root@kdjango:~/kesco# ls
config manage.py venv
# 기본 db table 생성을 위한 migrate 명령
(venv) root@kdjango:~/kesco# python3.8 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
(venv) root@kdjango:~/kesco#
# migrate 후 db.sqlite3 파일이 생성됨
(venv) root@kdjango:~/kesco# ls
config db.sqlite3 manage.py venv
(venv) root@kdjango:~/kesco#
# 개발 테스트 서버 구동 위해 settings.py 수정
- settings.py 파일이 있는 config 폴더로 이동하고, vi 편집기로 수정한다.
수정할 사항은
ALLOWED_HOSTS = [ ] 을
ALLOWED_HOSTS = ['*'] 로 수정
vi settings.py 명령 후
i 누르고 insert 모드에서 수정을 하고,
수정이 완료되면
ESC
:wq!
[개발 테스트 서버 실행하기]
(venv) root@kdjango:~/kesco# cd config/
(venv) root@kdjango:~/kesco/config# ls
asgi.py __init__.py __pycache__ settings.py urls.py wsgi.py
(venv) root@kdjango:~/kesco/config# vi settings.py
(venv) root@kdjango:~/kesco/config# cd ..
(venv) root@kdjango:~/kesco#
테스트 서버에 외부 접근이 가능하게 하려면
python manage.py runserver 0.0.0.0:포트번호 형식으로 한다.
python3.8 manage.py runserver 0.0.0.0:80
(venv) root@kdjango:~/kesco# python3.8 manage.py runserver 0.0.0.0:80
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
August 13, 2022 - 05:28:47
Django version 3.2, using settings 'config.settings'
Starting development server at http://0.0.0.0:80/
Quit the server with CONTROL-C.
[13/Aug/2022 05:28:51] "GET / HTTP/1.1" 200 10697
[13/Aug/2022 05:28:51] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[13/Aug/2022 05:28:51] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876
[13/Aug/2022 05:28:51] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184
[13/Aug/2022 05:28:51] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692
[브라우저에서 접속해보기]

▷ 관련 글 더보기
[Visual Studio Code] VS Code로 원격 서버 remote-ssh 연결 절차 (원격 서버 접속하는 방법)
[Visual Studio Code] VS Code로 원격 서버 remote-ssh 연결 절차 (원격 서버 접속하는 방법)
이전 포스팅 "cafe24 가상서버호스팅 신청하고 서버 셋팅과 파이썬 장고 설치하기"에 이어서 Visual Studio Code로 SSH를 통해 원격 서버에 접속하기 위한 remote-ssh 연결 절차를 알아본다. VS Code로 SSH를
goodthings4me.tistory.com
리눅스 가상서버 환경에서 장고(django) 서버 구동을 위한 nginx, gunicorn 설치해보기
리눅스 서버 설치에 필요한 명령어 몇 개만 알고 있는 수준에서 서버를 세팅하고 Gunicorn과 Nginx를 설치하는 것이 쉽지는 않았지만, 구글에서 열심히 찾아가며 여러 번의 시행착오 끝에 설치를 마
goodthings4me.tistory.com
카페24 가상서버 호스팅 세팅 및 SSL 인증서 설치
파이썬 장고(Django)를 사용하여 개인용 서버 운영 시 SSL 보안 설정이 안 되어 있으면 구글 애드센스 수익화 등이 어려울 수 있다. 이 문제를 해결하기 위해 가상서버 호스팅 신청 후 테스트 해본
goodthings4me.tistory.com
블로그 인기글
엑셀 시트 분리 저장 - 엑셀 파일의 시트를 분리하여 저장하기
엑셀을 사용하다 보면 엑셀 시트를 분리해서 저장해야 할 때가 있다. 최근에도 이런 경우가 발생하여 구글링 후 엑셀 시트 분리 업무를 수행하고 내친김에 다른 사람들도 사용할 수 있도록 파이썬 tkinter로 프로그램으로 만들어 보았다. Excel Sheets 분리 저장하는 프로그램(with 파이썬 Tkinter) ※ 프로그램 다운로드(네이버 MYBOX에서 공유) : ExcelSeparateSheets.zip ▶ 프래그램을 실행하면 다음과 같이 초기 화면이 보인다. 찾아보기 : 엑셀 파일이 있는 폴더를 선택한다. (프로그램이 있는 최상위 디렉터리가 열린다) 실행하기 : 프로그램 실행 버튼 상태 변경 순서 : 실행전 → 실행 중 → Sheet "OOO" 분리 저장 중 → 실행 완료 실행 결과 확인 : 엑셀 파..
goodthings4me.tistory.com
폐업 신고 절차와 부가가치세 신고하는 방법
폐업 신고 시 세무서 안 가고 온라인으로 신고하는 방법인 '국세청 홈택스를 이용하여 폐업 신고하는 절차와 폐업 후 해야 하는 부가가치세 신고, 인건비 저리, 종합소득세 신고 등에 대해 포스팅합니다. 폐업 신고 시 홈택스 이용하는 방법과 부가가치세 등 신고 절차 여러가지 사유로 폐업을 해야 할 때, 예전에는 세무서를 방문해야 했지만 국세청 홈택스가 생긴 이후에는 사업자 등록이나 폐업 등을 인터넷으로 할 수가 있게 되었습니다. 특히, 코로나 시국인 요즘은 더더욱 온라인 신청 업무가 더 활성화되었죠. 폐업을 한다는 것 자체가 우울한 일인데, 발품을 파는 것보다는 커피 한잔 하면서 인터넷으로 간단하게 처리하는 게 좋을 듯하여 그 절차를 올려봅니다. 폐업은 폐업 신고와 함께 폐업 후 절차까지 모두 마쳐야 불이익이..
goodthings4me.tistory.com
유튜브 영상 등의 URL 주소를 QR코드로 만들기
네이버 QR코드, makeQR, MUST QRcode, 무료 온라인 QRCode 생성기 등의 웹사이트에서 유튜브 영상 등의 URL을 입력하여 QR코드를 만들 수 있다. QR코드를 생성할 수 있는 사이트와 프로그램 URL 주소를 붙여넣기 한 후 "QR 코드 생성" 버튼을 클릭하면 큐알코드가 이미지로 생성되고, 다운로드도 할 수 있는 사이트 https://truedoum.com/useful/qrcode/ # 유튜브에서 동영상 URL을 복사하는 방법 유튜브에서 QR코드를 만들 동영상을 검색한다. 해당 동영상을 클릭한다. 동영상 위에서 마우스 우클릭 후 나오는 팝업창에서 “동영상 URL 복사”를 클릭하거나 영상 하단의 “공유”를 클릭하여 나온 창에서 URL를 복사한다. 아래의 웹사이트 중 하나를 선택한 후 복사..
goodthings4me.tistory.com
'코딩 연습' 카테고리의 다른 글
유뷰트 영상 다운로드 - 파이썬 tkinter (0) | 2022.09.13 |
---|---|
리눅스 가상서버 환경에서 장고(django) 서버 구동을 위한 nginx, gunicorn 설치해보기 (0) | 2022.08.21 |
하위 폴더 전체 파일 복사하기 (1) | 2022.08.10 |
파이썬 Non-UTF-8 code 에러 또는 Non-ASCII character 에러 (0) | 2022.07.09 |
파이썬 sqlite3 db 활용 대용량 데이터 관리가 가능할까 (0) | 2022.06.24 |
댓글