본문 바로가기
Python

python3- ubuntu에 apache2와 Flask 연동하기

by le_piee 2020. 11. 11.

환경은 ubuntu 18.04를 사용

 

1.아파치 다운로드

1. apt 업데이트 및 아파치2 다운로드
sudo apt-get update && sudo apt-get install apache2

 

 

2. 파이썬3 다운에 필요한 파일 설치

sudo apt-get install build-essential checkinstall

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
    libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

cd /opt

 

2-1 파이썬3 다운 및 압축 풀기

//버전 확인 중요
sudo wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz 

sudo tar xzf Python-3.8.6.tgz

cd Python-3.8.6

 

2-2 configure 설정 및 make

sudo ./configure --enable-optimizations

sudo make altinstall

 

2-3 버전 확인

python3.8 -V

 

2-4 파이썬 3.8 디폴트 인터프리터 설정

여기서  설정하는 인터프리터가 제일 중요하다.
추후 모듈을 import 할때 모듈을 찾을 수 없다는 오류는 거의 이 과정에서 발생한다.
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 1

#변경 된 것 확인
python -V


# 경로 모를시 아래 명령어로 확인
whereis python3

 

3  wsig 다운

sudo apt-get install libapache2-mod-wsgi-py3 python3-dev

 

4 flask 다운로드

#flask 다운을 위한 pip 설치
sudo apt-get install python3-pip

sudo pip3 install flask

#gcp sdk 설치
sudo pip3 install --upgrade google-cloud-storage

 

5. 디렉토리 생성

5. 디렉토리 생성
sudo mkdir var/www/FLASKAPPS

 

 

6. apache2 와 Flask 연동

sudo vim /etc/apache2/sites-available/flask.conf
<VirtualHost *:80>
        ServerName localhost
        WSGIDaemonProcess app threads=5
        WSGIScriptAlias / /var/www/FLASKAPPS/run.wsgi
        DocumentRoot /var/www/FLASKAPPS
        <Directory /var/www/FLASKAPPS>
            WSGIProcessGroup app
            WSGIApplicationGroup %{GLOBAL}
            Order deny,allow
            Allow from all
        </Directory>
        ErrorLog /var/www/FLASKAPPS/logs/error.log
        LogLevel warn
        CustomLog /var/www/FLASKAPPS/logs/access.log combined
</VirtualHost>
#웹서버의 기본 설정을 새로 생성한 flask.conf로 변경

sudo a2dissite 000-default

sudo a2ensite flask.conf 

 

7. wsgi 파일 작성

sudo vim /var/www/FLASKAPPS/run.wsgi
import sys
sys.path.append("/var/www/FLASKAPPS")
from flaskapp import app as application

8. py 파일 작성

sudo vim /var/www/FLASKAPPS/flaskapp.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

 

9. 아파치 재시작

#재시작
sudo /etc/init.d/apache2 restart
or
sudo service apache2 restart

#중지
sudo /etc/init.d/apache2 stop

#시작
sudo /etc/init.d/apache2 start

 

현재 파일구조

 

10. 확인

 

 

 

 

 

 

참고 사이트 ahniverson.tistory.com/7