Python/Django

[Django] Apache + Virtualenv ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

S0PH1A 2019. 9. 4. 16:23
๋ฐ˜์‘ํ˜•

๐Ÿค” Virtualenv ?

     Python ๊ฐ€์ƒ ํ™˜๊ฒฝ 


์—ฌ๊ธฐ์„œ๋Š” Apache ์„ค์ • ๋ฐฉ๋ฒ•์€ ์„ค๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Apache ์„ค์ • ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์œผ์‹œ๋ฉด, ์•„๋ž˜ ๊ธ€์„ ํ™•์ธํ•˜์„ธ์š”.  ๐Ÿ‘‡

1.  https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/modwsgi/
2.  https://www.thecodeship.com/deployment/deploy-django-apache-virtualenv-and-mod_wsgi/
์ด ๋ฐฉ๋ฒ•์€ ๊ฐ€์ƒ ํ™˜๊ฒฝ(Virtualenv)์˜ ์•„ํŒŒ์น˜๊ฐ€ python์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์„ค์น˜ ๋˜์–ด ์žˆ๋Š” site-packages๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

โ˜๏ธ wsgi.py ํŒŒ์ผ ์ˆ˜์ •

    * wsgi.py ํŒŒ์ผ์€ Django ํ”„๋กœ์ ํŠธ ํด๋” ์•ˆ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

"""
WSGI config for workorder project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/
"""

import os, sys, site
import sys

# Add site-pacakges 
sys.path.insert(0, '{virtualenv๊ฒฝ๋กœ}/lib/python2.7/site-packages')

# .. ์ƒ๋žต ..

 

    1. ๊ฐ€์ƒ ํ™˜๊ฒฝ ์•ˆ์˜ site-packages๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.

       - sys.path.append๋กœ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ sys.path์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์—

         ์ด๋ฏธ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํŒจํ‚ค์ง€๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ virtualenv์˜ site-package์•ˆ์˜ ํŒจํ‚ค์ง€๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

       - ๊ทธ๋ž˜์„œ, virtualenv์•ˆ์˜ site-package๊ฐ€ ๊ฐ€์žฅ ์šฐ์„ ์‹œ ๋˜๋„๋ก ๊ฐ€์žฅ ์•ž์— ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.

 

 

โœŒ๏ธ  ์•„ํŒŒ์น˜ ์žฌ์‹œ์ž‘

      

       ์žฌ์‹œ์ž‘ํ›„ ์ ‘์†ํ•ด ๋ดค์ง€๋งŒ, 500์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ, ์•„ํŒŒ์น˜ ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค.

[Wed Sep 04 15:38:50.645375 2019] [:error] [pid 21849] [client 10.10.91.70:49282]     raise AppRegistryNotReady("Apps aren't loaded yet.")
[Wed Sep 04 15:38:50.645393 2019] [:error] [pid 21849] [client 10.10.91.70:49282] AppRegistryNotReady: Apps aren't loaded yet.

       ๋งŒ์•ฝ, ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ wsgi.py ํŒŒ์ผ์— ์•„๋ž˜๋ฅผ ์ถ”๊ฐ€ํ›„ ์•„ํŒŒ์น˜๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์ค๋‹ˆ๋‹ค.

# wsgi.py
# 
# .. ์ฐธ๊ณ  ์‚ฌ์ดํŠธ
# https://www.reddit.com/r/django/comments/9etmpp/wsgi_auth_woes_target_wsgi_script_cannot_be/
# 

import django
django.setup()
๋ฐ˜์‘ํ˜•