OS | Ubuntu 20.04 |
Anaconda | Anaconda3-2023-03-1-Linux-x86_64 |
Python | Python3.9 |
## Python 설치에 대한 게시글 링크
https://islet4you.tistory.com/entry/Ubuntu2004-Python-39-Version-설치-및-세팅
# Anaconda3 Archive Repository
https://repo.anaconda.com/archive/
위의 사이트에서, 알맞고 원하시는 버전의 링크를 미리 복사해줍니다.
본문의 경우, Anaconda3-2023.03-1-Linux-x86_64.sh 를 기준으로 진행하도록 하겠습니다.
#Anaconda3 Shell 파일 인스톨
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
#설치 프로세스 실행
bash Anaconda3-2023.03-1-Linux-x86_64.sh
#약관 동의 이후, 설치 경로 지정
#필자의 경우 /usr/anaconda3 로 임의 지정 해주었습니다.
Anaconda3 will now be installed into this location:
/root/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/anaconda3] >>> /usr/anaconda3
최초 anaconda3를 초기화해주기 위해 아래의 과정을 거쳐주시면 됩니다.
conda init은 /home/{user}/.bashrc 에 conda를 초기화 해줍니다.
source /usr/anaconda3/bin/activate
conda init
source ~/.bashrc
conda 환경의 자동 activation은 다음의 명령을 통해 조절 할 수 있다.
# conda 환경 자동 활성화 (초기 설정)
conda config --set auto_activate_base True
# conda 환경 자동 활성화 해제
conda config --set auto_activate_base False
#env 생성
conda create -n develp_env python=3.9
#env 활성화
conda activate develop_env
#uwsgi 설치
conda install uwsgi
#flask 설치
conda install flask
#conda config에 conda-forge 채널 추가
conda config --add channels conda-forge
#anaconda를 통해 pip 설치
conda install -c conda-forge pip
이제, 예제소스를 통해 flask와 uwsgi가 정상 작동되는지 확인해보도록 하겠습니다.
1. flask 확인
[testapp.py]
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1 style='color:blue'>Hi This is My Flask Application</h1>"
if __name__ == "__main__":
app.run(host='0.0.0.0')
python testapp.py
위의 명령어를 통해 실행이 잘 되는지 확인해주도록 합니다.
이후 CTRL+C 를 통해 flask 종료
2. uwsgi 확인
[wsgitest.py]
from testapp import app
if __name__ == "__main__":
app.run()
를 작성하신 후, 터미널에서 아래의 커맨드를 실행해주도록 합니다.
uwsgi --socket 0.0.0.0:5000 -protocol=http -w wsgitest:app
정상작동이 되셨다면 가상 환경 종료 이후 uwsgi 구성을 이어나가도록 해주겠습니다.
#가상환경 종료
conda deactivate
ini 파일로 uwsgi 설정을 작성해주도록 합니다.
[app.ini]
[uwsgi]
module = wsgitest:app
master = true
processes = 5
socket = myapp.sock
chmod-socket = 660
vacuum = true
die-on-term = true
다음으로 서비스로 편하게 관리해주기 위해 아래와 같이 서비스를 등록해주도록 합니다.
#서비스 설정 파일 생성
nano /etc/systemd/system/testwsgi.service
###############내용작성
[Unit]
Description=uWSGI instance to serve myapp
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/html/testwsgi
Environment="PATH=/usr/anaconda3/envs/testwsgi/bin"
ExecStart=/usr/anaconda3/envs/testwsgi/bin/uwsgi --ini myapp.ini
[Install]
WantedBy=multi-user.target
#################내용작성
#systemctl 리로드
systemctl daemon-reload
#uwsgi에서 접근을 할 수 있도록 아래와 같이 권한을 설정해줍니다!!!!!!!! (중요)
chown -R www-data:www-data /var/www/html/testwsgi
chmod -R 775 /var/www/html/testwsgi
#서비스 실행 및 확인
systemctl start testwsgi
systemctl enable testwsgi
systemctl status testwsgi
우선, /etc/nginx/sites-enabled 경로에 새롭게 설정 파일을 만들어주도록 합니다.
nano /etc/nginx/sites-enabled/uwsgitest.conf
#######내용
server {
listen 80;
server_name _;
location / {
include uwsgi_params;
uwsgi_pass unix:/var/www/html/testwsgi/myapp.sock;
}
}
#######내용
주의사항 !!!!!!!!!!!!
80포트를 사용하기 위해선 /etc/nginx/sites-available/default 의 기본설정을 주석처리 해주시거나 삭제 해야합니다.
이제 마지막입니다.
마지막으로 nginx 문법 확인과 서비스를 재실행 해주도록 하겠습니다.
#Nginx Syntax check
nginx -t
#Nginx restart
service nginx restart
[Flask] X-Api-Key 값 받아서 처리하기 (0) | 2023.06.16 |
---|---|
[Mac]How to install Python 3.11 in Mac (0) | 2023.06.15 |
[Python]GoogleTrans를 이용한 자동 번역기능 사용하기 (0) | 2023.06.01 |
NVM 설치 & node 18 인스톨하기 (0) | 2022.10.12 |
Truffle 모듈 인스톨 하기 (0) | 2021.12.01 |