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 연결 절차 (원격 서버 접속하는 방법)
'코딩 연습' 카테고리의 다른 글
유뷰트 영상 다운로드 - 파이썬 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 |
댓글