π [SWS] Django νλ‘λμ μλ² μ€μΉ κ°μ΄λ π
μ΄ κ°μ΄λλ κ°λ° μλ²λ₯Ό νλ‘λμ νκ²½μΌλ‘ μ ννλ λ°©λ²μ μλ΄ν©λλ€.
π μμ μκ°: μ½ 10λΆ
π νμ 쑰건: Django κ°λ° μλ² μ€μΉ μλ£ β
π₯ λμ: Shop2World μΉμλΉμ€ μ¬μ©μ
*chroot νκ²½μ μ΅ν¬μλ μΉμλΉμ€ μ΄μ© κ³ κ°μ μλμ ν°λ―Έλ κΈ°λ° μμ
μ λ³λ κ΄λ¦¬μ μμ² νμν©λλ€.
1οΈβ£ passenger_wsgi.py
νμΌ μμ± λ° μ€μ π
π νμΌ μμΉ: Django νλ‘μ νΈ λ£¨νΈ λλ ν 리 (μ: manage.py
κ° μλ μμΉ)
μλ λ΄μ©μ μ νμΌ passenger_wsgi.py
μ μμ±νμΈμ:
# -*- coding: utf-8 -*-
import os
import sys
# κ°μνκ²½ Python κ²½λ‘
# μ: INTERP = "/var/www/vhosts/mysite.com/django.mysite.com/venv/bin/python"
INTERP = "/var/www/vhosts/[λλ©μΈ]/[μλΈλλ©μΈ]/venv/bin/python"
if sys.executable != INTERP:
os.execl(INTERP, INTERP, *sys.argv)
# Django μ€μ
os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
π μ°Έκ³ :
- κ°μνκ²½μ Python μ λ κ²½λ‘λ₯Ό
INTERP
μ μ νν μ λ ₯νμΈμ.- κ²½λ‘λ₯Ό μ°ΎμΌλ €λ©΄ μλ λͺ
λ Ήμ΄λ₯Ό μ¬μ©νμΈμ:
which python
- κ²½λ‘λ₯Ό μ°ΎμΌλ €λ©΄ μλ λͺ
λ Ήμ΄λ₯Ό μ¬μ©νμΈμ:
2οΈβ£ settings.py
νλ‘λμ
μ€μ π
π νμΌ μμΉ: config/settings.py
μλμ κ°μ΄ νλ‘λμ μ© μ€μ μ μΆκ° λλ μμ νμΈμ:
# DEBUG λͺ¨λ λΉνμ±ν
DEBUG = False
# νμ©λ νΈμ€νΈ μ€μ
ALLOWED_HOSTS = ['μλΈλλ©μΈ', 'www.μλΈλλ©μΈ']
# 보μ μ€μ νμ±ν
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
3οΈβ£ URL μ€μ : κ΄λ¦¬μ νμ΄μ§λ‘ 리λ€μ΄λ νΈ π
π νμΌ μμΉ: config/urls.py
from django.contrib import admin
from django.urls import path
from django.views.generic import RedirectView
urlpatterns = [
path('admin/', admin.site.urls),
path('', RedirectView.as_view(url='/admin/', permanent=True)),
]
4οΈβ£ μ μ νμΌ μ€μ π
- μ μ νμΌ μμ§
python manage.py collectstatic
- λλ ν 리 κΆν μ€μ
chmod 755 static media staticfiles chmod 755 passenger_wsgi.py
5οΈβ£ tmp
λλ ν 리 μμ± π οΈ
mkdir -p tmp
chmod 755 tmp
6οΈβ£ νΈμ€ν κ΄λ¦¬μμκ² μμ² π
μλ λ΄μ©μ νΈμ€ν κ΄λ¦¬μμκ² μ λ¬νμΈμ:
- μλΈλλ©μΈ μμ± νμΈ
- μλΈλλ©μΈμ΄ μ λλ‘ νμ±νλμλμ§ νμΈν©λλ€.
- Passenger App Root μ€μ
- κ²½λ‘:
/var/www/vhosts/[λλ©μΈ]/[μλΈλλ©μΈ]
- κ²½λ‘:
- μλ μμ±λ
index.html
μμ - Passenger λμμ λ°©ν΄νλ κΈ°λ³Έ ν
νλ¦Ώ νμΌμ΄ μμ λμλμ§ νμΈν©λλ€.
cd /var/www/vhosts/[λλ©μΈ]/[μλΈλλ©μΈ] rm -f index.html
- Passenger λμμ λ°©ν΄νλ κΈ°λ³Έ ν
νλ¦Ώ νμΌμ΄ μμ λμλμ§ νμΈν©λλ€.
- SSL μΈμ¦μ μ€μ νμΈ
- HTTPSκ° μ μ μλνλλ‘ SSL μΈμ¦μκ° μ μ©λμλμ§ νμΈν©λλ€.
7οΈβ£ μλ² μ¬μμ π
νΈμ€ν κ΄λ¦¬μκ° μ€μ μ μλ£ν ν Passengerλ₯Ό μ¬μμνμΈμ:
touch tmp/restart.txt
8οΈβ£ νμΈ λ° λλ²κΉ π
- λΈλΌμ°μ μμ μ μ
- URL:
https://[μλΈλλ©μΈ]
- URL:
- νκΈ μΈμ½λ© μ€λ₯ ν΄κ²°
passenger_wsgi.py
νμΌ μλ¨μ λ€μ μΈμ½λ© μ μΈμ΄ ν¬ν¨λμ΄ μλμ§ νμΈνμΈμ:# -*- coding: utf-8 -*-
μΆκ° μ μ
- κ°μνκ²½ κ²½λ‘ νμΈ:
κ°μνκ²½μ΄ μ¬λ°λ₯΄κ² μ€μ λμ§ μμΌλ©΄ μλ²κ° μ€νλμ§ μμ μ μμ΅λλ€.which python
λͺ λ Ήμ΄λ‘ νμΈνμΈμ. - λ‘κ·Έ λλ²κΉ
νμ±ν:
μλ¬κ° λ°μν κ²½μ° λ‘κ·Έλ₯Ό νμΈνμΈμ:tail -f /var/www/vhosts/[λλ©μΈ]/logs/error_log
- μ μ νμΌ μΊμ±:
μ μ νμΌ μμ² μ±λ₯μ κ°μ νλ €λ©΄ Nginx κ°μ νλ‘μ μλ²λ₯Ό μ€μ νμΈμ.
μ΅κ·Όλν