Python 프로젝트 배포 가이드

Git 코드 관리 및 동기화

### Git 로컬 업로드 - 전역 설정
    git config --global user.name "사용자"
    git config --global user.email "이메일@도메인.com"
    
- 프로젝트 디렉토리 진입 - 초기화
        git init
        
- 원격 주소 설정
        git remote add origin https://gitlab.com/username/repository.git
        
- 로컬 버전 제출
        git add .
        git commit -m '커밋 메시지...'
        
- 원격 저장소에 제출
        git push origin main
        
이 방법은 작동하지만 두 가지 문제점이 있습니다: - 민감한 데이터가 공개 저장소를 통해 노출될 수 있습니다. - 매번 커밋 시 비밀번호 입력이 필요합니다. ### .gitignore 파일 사용 `.gitignore` 파일을 만들어 무시할 파일 또는 폴더를 지정하여 버전 관리에서 제외합니다. 예를 들어, `https://github.com/github/gitignore/blob/main/Python.gitignore` 에서 Python 관련 `.gitignore` 파일을 가져와 사용할 수 있습니다. ### 설정 파일에서 민감 정보 보호 - 로컬: `local_settings.py` 에 로컬 환경의 특수 설정을 작성합니다. - 서버: `settings.py` 에 서버 환경의 특수 설정을 작성합니다. - `local_settings.py` 를 `.gitignore` 에 추가하여 버전 관리에서 제외하고, `settings.py` 에는 모든 환경에서 공유되는 설정을 작성합니다. ### SSH 키를 이용한 Git 로그인 매번 비밀번호 입력 없이 Git 작업을 수행하려면 SSH 키를 사용합니다. - SSH 키 생성
    ssh-keygen -t rsa
    
- 원격 저장소에 공개 키 등록
    git remote set-url origin git@gitlab.com:username/repository.git
    
### Git 버전 전환 다양한 버전 간 전환 방법: - 기록 확인
    git log
    
- 특정 버전으로 이동
    git reset --hard 1a2b3c4d5e6f7g8h9i0j
    

SSH 키를 이용한 서버 접속

서버에 SSH로 접속할 때 비밀번호 입력 없이 접근하려면:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@서버_IP

MySQL 설치 및 설정

- MariaDB 설치
    yum install mariadb-server -y
    systemctl start mariadb
    systemctl enable mariadb
    
- 사용자 및 데이터베이스 생성
    mysql -u root -p
    CREATE DATABASE db_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'%';
    FLUSH PRIVILEGES;
    

Redis 설치 및 설정

- Redis 설치
    yum install redis -y
    systemctl start redis
    systemctl enable redis
    
- 설정 변경
    vim /etc/redis.conf
    requirepass 비밀번호
    

Python 3 설치

- 의존성 설치
    yum install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel -y
    
- Python 소스 다운로드 및 설치
    wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
    tar -xvf Python-3.9.5.tgz
    cd Python-3.9.5
    ./configure
    make && make install
    

가상 환경 설정

- 가상 환경 설치 및 활성화
    pip3 install virtualenv
    virtualenv /envs/myenv --python=python3.9
    source /envs/myenv/bin/activate
    

코드 배포 및 설정

- 최신 코드 가져오기 - 의존성 패키지 설치
    pip install -r requirements.txt
    
- `local_settings.py` 설정
    DEBUG = False
    ALLOWED_HOSTS = ['*']
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'db_name',
            'USER': 'username',
            'PASSWORD': 'password',
            'HOST': 'localhost',
            'PORT': '3306',
        }
    }
    

uwsgi 및 Nginx 설정

- uwsgi 실행
    uwsgi --ini uwsgi.ini
    
- Nginx 설정
    server {
        listen 443 ssl;
        server_name example.com;
        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/key.pem;
        location / {
            uwsgi_pass unix:/tmp/uwsgi.sock;
            include uwsgi_params;
        }
    }
    

태그: Git SSH MySQL Redis Python3

5월 21일 08:05에 게시됨