Python 3+django 2.0+apache2+ubuntu 14 사이트 온라인 배치 방법

자신 이 현지에서 Django 프로젝트 를 구축 한 후에 자신의 클 라 우 드 서버 에 배치 하려 면 여러 번 시도 하고 여러 번 구 덩이 를 밟 습 니 다.요약 하면 다음 과 같 습 니 다.
환경:ubuntu 14,django 2.0,apache 2.
1.먼저 필요 한 라 이브 러 리 패 키 지 를 설치 하고 ubuntu 에서 다음 명령 을 실행 합 니 다.루트 사용자 가 Ubuntu 에 로그 인하 거나 apt-get 전에 sudo 를 추가 하 는 것 을 권장 합 니 다.
아파 치 2 설치

apt-get update  #      
apt-get install apache2  #   Apache2apt-get install libapache2-mod-wsgi-py3  #  Apache2   Python      ,   mod-wsgi  
설치 한 아파 치 2 버 전 번호 확인

apachectl -v

Git 설치 및 설정(원 격 문서 라 이브 러 리 에서 원 격 창 고 를 로 컬 로 전송 하기 위 한 것 입 니 다.

apt-get install git
git config --global user.name 'yourname'
git config --global user.email 'youremail'
Python 을 설치 한 pip 구성 요소 관리자 와 가상 컴퓨터 환경 프로그램 virtualenv

apt-get install python3-pip
pip3 install virtualenv
2.원 격 Django 프로젝트 설정
Linux 운영 체제 의 Apache 웹 서버 는 일반적으로 웹 페이지 를/var/www/html 에 두 기 때문에(Apache 2 를 설치 하면/var/www 디 렉 터 리 생 성)Django 프로젝트 를/var/www 아래 에 두 기도 합 니 다.먼저/var/www 에서 virtualenv 를 사용 하여 가상 환경 을 만 들 고 사용 한 다음 에 git clone 명령 으로 원 격 Django 프로젝트 를 로 컬 로 전송 합 니 다(여 기 는 제 창고 의 예https://github.com/weixuqin/myDjango.git.작업 은 다음 과 같 습 니 다.

cd /var/www                          #    /var/www    
virtualenv VENV                       #       VENV
source VENV/bin/activate                  #       VENV
git clone https://github.com/weixuqin/myDjango.git  #         
cd myDjango/mblog                      #       
pip install -r requirements.txt              #   requirements.txt      
다음은 다음 명령 을 사용 하여 Django 를 시작 하여 사이트 내용 이 완전 하 게 나타 나 는 지 확인 할 수 있 습 니 다.

python manage.py runserver 0:8000
3.settings.py 를 수정 하고 정적 파일 을 추가 하 는 등 설정
본 격 적 으로 접속 한 사 이 트 는 python manage.py runserver 와 같은 방식 으로 사용 할 수 없습니다.웹 서버(예:Apache)를 통 해 원 격 브 라 우 저의 요청 을 Django 프로그램 에 전송 하고 실행 한 결 과 를 Apache 를 통 해 브 라 우 저 에 전송 해 야 합 니 다.
주로 두 개의 파일,setting.py 와 wgi.py 와 관련된다.setting.py 는 Django 사이트 의 관련 설정 을 담당 하고,wsgi.py 는 Apache 가 프로그램 코드 를 순조롭게 전달 하고 실행 결 과 를 되 돌려 줄 수 있 는 설정 파일 을 만 드 는 것 을 책임 집 니 다.
setting.py 에서 다음 과 같이 수정 합 니 다.

# SECURITY WARNING: keep the secret key used in production secret!
#      ,    SECRET_KEYS      /etc/secret_key.txt   ,           SECRET_KEYS    
with open('/etc/secret_key.txt') as f:
  SECRET_KEY = f.read().strip()

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False        #   debug   ,             ,     

ALLOWED_HOSTS = ['*']    #           IP    '*',        
그리고 정적 파일 을 정상적으로 불 러 올 수 있 도록 setting.py 를 수정 합 니 다.

STATIC_URL = '/static/'
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static')    
]
STATC_ROOT = '/var/www/staticfiles'

python manage.py collectstatic
모든 STATICFILESDIRS 의 모든 폴 더 에 있 는 파일 과 각 app 의 static 에 있 는 파일 을 STATIC 로 복사 합 니 다.ROOT 이 지정 한 폴 더 에 이 파일 들 을 함께 넣 는 것 은 apache 등 으로 배치 할 때 더욱 편리 하도록 하기 위해 서 입 니 다.
Linux 는 파일 권한 에 민감 합 니 다.아파 치 2 가 정확하게 읽 을 수 있 도록 파일 권한 을 수정 해 야 합 니 다.
일반 디 렉 터 리 권한 은 755 로 설정 되 어 있 으 며,파일 권한 은 644 로 설정 되 어 있 습 니 다.

cd /var/www/myDjango/mblog
sudo chmod -R 644 zqxt
sudo find mblog -type d | xargs chmod 755
4.아파 치 의 파일 을 수정 하여 웹 사 이 트 를 접속 시 키 기
웹 사이트 설정 파일 만 들 기

sudo vim /etc/apache2/sites-available/sitename.conf
여 기 는 제 프로필 을 예 로 들 면 실제 수요 에 따라 스스로 변경 할 수 있 습 니 다.

<VirtualHost *:80>
  #   wsgi.py            

  WSGIScriptAlias / /var/www/myDjango/mblog/mblog/wsgi.py
  WSGIDaemonProcess mblog python-path=/var/www/myDjango/mblog:/var/www/VENV/lib/python3.4/site-packages
  WSGIProcessGroup mblog
  
  #        

  Alias /static/ /var/www/staticfiles/
  <Directory /var/www/staticfiles>
    Require all granted
  </Directory>
  
  #   wsgi.py    

  <Directory /var/www/myDjango/mblog/mblog>
  <Files wsgi.py>
    Require all granted
  </Files>
  </Directory>
</VirtualHost>
디 렉 터 리 로 전환:/etc/apache 2/sites-available/실행:

sudo service apache2 reload 
sudo a2dissite 000-default && sudo a2ensite sitename.conf
sudo service apache2 restart
이 어 서버 IP 주 소 를 입력 하면 성공 하면 사이트 에 정상 적 인 내용 이 표시 되 고 나중에 도 메 인 이름 을 서버 에 분석 하 는 등 접근 할 수 있 습 니 다.
나의 것 은 다음 과 같다.

**PS:도 메 인 네 임 을 서버 에 분석 한 후에 사이트 에서 500 오 류 를 보 고 했 습 니 다.그러나 IP 주 소 를 통 해 방문 한 이 유 를 찾 아 보 니 도 메 인 네 임 을 서버 에 분석 한 것 입 니 다.서버 가 국내 에 있 으 면 등록 해 야 합 니 다.그렇지 않 으 면 방문 할 수 없습니다.그런데 자신 은 마침 텐 센트 클 라 우 드 의 국내 서버 입 니 다.오랫동안 찾 았 습 니 다.계속 잘못 신고 한 이유 가 뭔 지 알 게 되 었 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기