ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ubuntu 18.04 Django Python ๋ฒ„์ „ ๋ณ€๊ฒฝํ•˜๊ธฐ
    Server 2022. 6. 2. 17:23
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ˜‡ ์‹ค์„œ๋ฒ„์˜ python ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค.

    ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” python3.5 ๋ฒ„์ „์˜ django-redis library ์™€ fstring ๋ฏธ์ง€์›. ๊ทธ๋ž˜์„œ python3.8๋กœ ๋ฒ„์ „ ๋ณ€๊ฒฝ์„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

    ์˜ค๋ฅ˜์—†์ด ๋ฌด์ค‘๋‹จ์œผ๋กœ ๊ต์ฒด๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด

    • ์‹ค์„œ๋ฒ„์˜ AMI ์ƒ์„ฑ
    • ์ƒ์„ฑํ•œ AMI๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์ž‘์—…
    • ๋ฒ„์ „ ๋ณ€๊ฒฝ ์™„๋ฃŒ ํ›„ ELB target group ๋ณ€๊ฒฝ
      ์˜ ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

    ์ผ๋‹จ ์„œ๋ฒ„์— python3.8 ๋ฒ„์ „์ด ์—†๊ธฐ์— ์„ค์น˜๋ถ€ํ„ฐ ํ•ด์ค˜์•ผํ•œ๋‹ค.

    sudo apt install python3.8

    ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด์— python3.5 excute somthing ๊ณผ ๊ฐ™์ด ๋ฒ„์ „์„ ๋ช…์‹œํ•œ ์ปค๋งจ๋“œ๊ฐ€ ์•„๋‹Œ python excute something ๊ณผ ๊ฐ™์ด default python ๋ฒ„์ „์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ํ˜น์‹œ ๋ชจ๋ฅผ ๋ฒ„์ „ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ubuntu ๋””ํดํŠธ python ๋ฒ„์ „์„ python3.8๋กœ ๊ต์ฒดํ•œ๋‹ค.

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 100 

    ๋งˆ์ง€๋ง‰์˜ 100์€ ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ํด ์ˆ˜๋ก ํ•ด๋‹น ๋ฒ„์ „์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค๋Š” ๋Š๋‚Œ์ด๊ณ  100์œผ๋กœ ์„ค์ •ํ•œ๋‹ค๋ฉด 1,2,3,13,14 ๋“ฑ์˜ ์ˆซ์ž๋ณด๋‹ค ํฌ๊ธฐ์— ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ ๊ฑฐ๋‹ค. ํ•ด๋‹น ์„œ๋ฒ„์—๋Š” 100 ์ด์ƒ์˜ alternatives๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„ ์ด์ œ python ์„ ์ž…๋ ฅํ•˜๋ฉด python3.8 ๋กœ ์‹คํ–‰๋œ๋‹ค. ๋ฌผ๋ก  ๊ฐ€์ƒํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๊ธฐ์— ๋ฒ„์ „์ด ์ถฉ๋Œํ•  ์ผ€์ด์Šค๊ฐ€ ์ƒ๊ธฐ๋ฉด ์•ˆ๋˜์ง€๋งŒ ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ ์„ค์ •.

    sudo apt install python3.8-distutils

    ์ดํ›„ pip ์„ค์น˜๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋‹ค. ์„ค์น˜ํ•ด๋‘์ž.
    pip์—๋„ ๋ฒ„์ „์ด ์žˆ๊ธฐ์— ์‹ ๊ฒฝ์จ์ค˜์•ผ ํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜์ง€๋งŒ pip์€ ๋ณ„๋„๋กœ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์˜ต์…˜์„ ๋ถ€์—ฌํ•˜์—ฌ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ค์ž.

    python -m venv venv_3.8 --without-pip
    source venv_3.8/bin/activate
    

    ์ด์ œ ํ•ด๋‹น ๋ฒ„์ „์— ๋งž๋Š” pip์„ ์„ค์น˜ํ•ด๋ณด์ž

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    python get-pip.py

    ์ด์ œ ๊ฐ€์ƒํ™˜๊ฒฝ ๋‚ด๋ถ€์—์„œ์˜ pip์€ pip3.8๋กœ ์‹คํ–‰๋œ๋‹ค. ํ˜น์‹œ pip์ด ๊ตฌ๋ฒ„์ „์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด ๋ฒ„์ „์„ ๋ช…์‹œํ•˜์—ฌ pip์„ ์‚ฌ์šฉํ•ด๋ณด์ž

    pip3.8 install -r requirements.txt
    or
    pip install -r requirements.txt

    ์šฐ๋ฆฌ๋Š” Apache2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  apache ๋Š” django์˜ wsgi.py ๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๋ช‡๊ฐ€์ง€ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ

    project/wsgi.py ์˜ venv ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ venv_3.8 ๋กœ ๋ณ€๊ฒฝ
    /etc/apache2/apache2.conf์˜ venv path ๋ณ€๊ฒฝ

    ๊ฑฐ์˜ ๋‹ค ๋๋‚ฌ์ง€๋งŒ ํ•œ ๊ฐ€์ง€๊ฐ€ ๋” ํ•„์š”ํ•˜๋‹ค. ๊ธฐ์กด์—๋Š” python webserver ์‹คํ–‰์„ ์œ„ํ•œ mod_wsgi๊ฐ€ ๊ธฐ์กด python ๋ฒ„์ „์œผ๋กœ ์ปดํŒŒ์ผ ๋˜์–ด์žˆ๋‹ค. ์ด๋ฅผ 3.8๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ์–ด์•ผํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด๋ณด์ž

    sudo apt-get install apache2-dev
    sudo apt-get install python3.8-dev

    mod_wsgi ๋ฅผ ์ปดํŒŒ์ผ ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์••์ถ•ํ•ด์ œ ํ•ด๋ณด์ž.

    wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.7.1.tar.gz
    tar xvfz 4.7.1.tar.gz

    ์••์ถ•ํ•ด์ œํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด๊ฐ€์„œ python ๋ฒ„์ „์„ ์„ค์ •ํ•ด์ฃผ์ž.

    cd mod_wsgi-4.7.1
    ./configure --with-python=/usr/bin/python3.8

    ์ปดํŒŒ์ผ ํ•ด์ค€๋‹ค.

    make
    sudo make install

    ์ด์ œ apache ์„œ๋น„์Šค๋ฅผ ์žฌ์‹œ์ž‘ ํ•ด์ฃผ์ž. ์ž˜๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ด€๋ จ ๋กœ๊ทธ๋“ค์„ ๊ผผ๊ผผํžˆ ์‚ดํŽด ๊ธฐ์กด ๋ฒ„์ „์˜ python์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ณ  ๋‹ค์‹œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ์ž.

    ์ถ”๊ฐ€๋กœ ๊ถŒํ•œ ๋ฌธ์ œ๋กœ ์ƒ๊ธฐ ๋ช…๋ น์–ด๋“ค์ด ์‹คํ–‰๋˜์ง€ ์•Š์•„ sudo๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ฃผ์˜ํ•ด์ฃผ์ž. pip ๊ด€๋ จํ•ด์„œ ๋‚˜์ค‘์— ์‹ฌ๊ฐํ•˜๊ฒŒ ๊ผฌ์ผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

    ์ด์ œ ๊ธฐ์กด ๋กœ๋“œ๋ฐธ๋Ÿฐ์Šค์˜ ํƒ€๊ฒŸ๊ทธ๋ฃน์— ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ๋“ฑ๋ก, ๊ธฐ์กด์— ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ญ์ œํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
    ๐Ÿ‘Œ๐Ÿ‘Œ๐Ÿ‘Œ

     
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.