본문 바로가기
코딩 연습

cafe24 가상서버호스팅 신청하고 서버 셋팅과 파이썬 장고 설치하기

by good4me 2022. 8. 13.

goodthings4me.tistory.com

서버 호스팅 연습을 위해 cafe24 가상서버 호스팅을 신청했다. 리눅스를 잘 모르고 개발자도 아니지만 서버 세팅을 하고 파이썬과 장고를 설치해봤다. 그리고 나중에 활용하기 위해 가상서버 호스팅과 서버 세팅, 파이썬 장고 설치 방법을 정리해보았다.

 

 

가상서버 호스팅 신청, 서버 세팅, 파이썬 및 장고(Django) 설치

[cafe24에서 가상서버 호스팅 신청하기]

cafe24.com 로그인 후 상단 메뉴 중 "서버호스팅 IDC" 부분 아래에 있는 "가상서버호스팅"을 클릭한다.
SSD 리눅스 가상서버 호스팅이 default로 선택이 되어있고, 나는 리눅스 서버를 선택했다.
테스트 용도나 작은 서버로 사용할 경우 일반형도 괜찮고 좀 여유 있게 사용하려면 비즈니스 상품을 선택한다.

회원정보 아이디와 비번, 그리고 임시 root 비번 입력하고 신청 절차에 따라 결제를 한다.

cafe24 가상서버 호스팅 신청
cafe24 가상서버 호스팅 신청

 

서비스 신청 완료 후,

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로 접속이 된다.

 

good4me.co.kr

 

[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

 

댓글