Ubuntu 20.04에서 Python 3.11을 설치 및 Gunicorn 설정방법

2024. 11. 27. 11:21django

Ubuntu 20.04에서 Python 3.11을 설치하는 방법

  1. 먼저 deadsnakes PPA를 추가합니다:

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
  2. Python 3.11을 설치합니다:

    sudo apt install python3.11
  3. pip를 설치합니다:

    curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.11
  4. 필요한 개발 도구들을 설치합니다:

    sudo apt install python3.11-dev python3.11-venv
  5. Python 3.11 버전을 확인합니다:

    python3.11 --version

Django 프로젝트를 위해서는 가상환경을 만들어서 사용하는 것을 추천드립니다:

  1. 가상환경 생성:

    python3.11 -m venv myenv
  2. 가상환경 활성화:

    source myenv/bin/activate
  3. Django 설치:

    pip install django

주의사항:

  • 시스템의 기본 Python 버전은 그대로 유지됩니다
  • 필요한 경우 update-alternatives를 사용하여 기본 Python 버전을 변경할 수 있습니다
  • 여러 프로젝트를 관리할 때는 각각 독립된 가상환경을 사용하는 것이 좋습니다

이렇게 설치하시면 Django 프로젝트에서 Python 3.11을 문제없이 사용

Gunicorn을 사용하면 Django 애플리케이션을 데몬으로 실행할 수 있어서 SSH 세션을 종료하더라도 서버가 계속 실행되며, 다른 작업도 진행할 수 있읍니다.

Gunicorn 설정 방법을 단계

  1. 먼저 Gunicorn 설치:

    pip install gunicorn
  2. Gunicorn으로 Django 실행 테스트:

    프로젝트이름은 /home/account-project/config(settings.py) 가 있는 디렉토리 말합니다.
    먼저 
    cd /home/account-project
    그리고 config 가 프로젝트 이름이 됩니다.
    gunicorn --bind 0.0.0.0:8000 config.wsgi:application
    이와 같이 설정을 해야 합니다.
    

다음은 문법입니다.
gunicorn --bind 0.0.0.0:8000 프로젝트이름.wsgi:application


3. systemd 서비스 파일 생성 (데몬으로 실행하기 위함):
```bash
sudo nano /etc/systemd/system/django.service
  1. 서비스 파일에 다음 내용 추가:
    [Unit]
    Description=Django Gunicorn Service
    After=network.target
    

[Service]
User=your_username
Group=your_username
WorkingDirectory=/path/to/your/django/project
ExecStart=/path/to/your/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 프로젝트이름.wsgi:application
Restart=always

[Install]
WantedBy=multi-user.target


5. 서비스 시작 및 자동 시작 설정:
```bash
sudo systemctl start django
sudo systemctl enable django
  1. 서비스 상태 확인:
    sudo systemctl status django

추가 설정 팁:

  • --workers: CPU 코어 수 × 2 + 1 정도로 설정하는 것이 권장됩니다
  • 로그 설정: --access-logfile--error-logfile 옵션으로 로그 파일 위치 지정 가능
  • Nginx를 프록시 서버로 사용하면 더 안정적인 운영이 가능합니다

이렇게 설정하면:

  1. 서버가 백그라운드에서 실행됩니다
  2. 시스템 재시작 시 자동으로 시작됩니다
  3. SSH 연결이 끊어져도 서비스가 계속 실행됩니다
  4. 다른 작업을 자유롭게 할 수 있습니다

필요한 경우 다음 명령어로 서비스를 관리할 수 있습니다:

sudo systemctl stop django    # 서비스 중지
sudo systemctl restart django # 서비스 재시작
sudo systemctl status django  # 상태 확인