안녕하세요 독학코딩입니다. 오늘은 Django를 EB에 deploy하는 과정에서 종종 겪는 오류 해결방법에 대해서 포스팅 하겠습니다. 간혹 deploy는 정상적으로 됐는데 deploy 된 사이트 URL에 가보면 502 Bad Gateway 화면이 보일때가 있습니다. 그래서 EB 환경에 가서 log를 확인했는데 아래와 같이 나올 때가 있습니다.
/bin/sh: mysql_config: command not found
/bin/sh: mariadb_config: command not found
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/tmp/pip-install-1udp80ia/mysqlclient_f16b9c1ce0bc4ced88310b73c54d9c5f/setup.py", line 15, in <module>
metadata, options = get_config()
File "/tmp/pip-install-1udp80ia/mysqlclient_f16b9c1ce0bc4ced88310b73c54d9c5f/setup_posix.py", line 70, in get_config
libs = mysql_config("libs")
File "/tmp/pip-install-1udp80ia/mysqlclient_f16b9c1ce0bc4ced88310b73c54d9c5f/setup_posix.py", line 31, in mysql_config
raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found
mysql_config --version
mariadb_config --version
mysql_config --libs
설명이야 길지만 결국 우리가 만든 EB 환경안에 mysql_config
파일이 없다는 의미입니다. 해결방법은 여러개 있습니다만, 가장 잘 통하는 방법을 소개하겠습니다.
EB의 EC2에 접속하기
AWS에서 EC2에 오셔서 EB가 만들어지면서 자동으로 만들어진 EC2 인스턴스를 찾으시면 됩니다. 해당 인스턴스를 체크하고 연결 버튼을 눌러주세요.
연결을 눌러주시면 위와 같은 화면이 나올텐데요 EC2 인스턴스 연결을 눌러주시고 아래에 연결을 다시 눌러주면 우리의 EC2 CLI가 새탭에 나올겁니다.
이런 화면이 나왔나요? 그럼 우린 이제 우리의 requirements.txt
파일을 찾아야 합니다.
위 순서대로 오시면 찾으실 수 있으실겁니다. 만약 deploy가 정상적으로 안되신 분들이라면 마지막에 cd current/
가 아니라 cd staging/
같은 폴더가 있을겁니다. 거기에 requirements.txt
가 있습니다. 위 경로를 잘 기억해두시고요.
이제 다른 폴더로 갈 것입니다.
위 경로로 들어오시면 venv
의 bin
폴더로 오게 됩니다. 이제 수동으로 requirements.txt
를 설치할 것입니다.
mysql_config 설치
requirements.txt
설치 이전에 mysql_config
파일을 설치하기 위에 조금 위회 할 것입니다.
sudo yum install mysql-devel gcc python-devel
bin
폴더 안에서 위 명령어를 실행해주세요. 그러면 한두번 정도 y
를 누르게 되고 설치가 완료될 것입니다. 그러면 우회적으로 mysql_config
가 설치 되었을 겁니다.
pip install mysqlclient
확인을 위해서 위 코드를 실행해보세요. 정상적으로 설치가 되었나요? 그러면 모든게 완료되었습니다. 다시 평소처럼 EB를 deploy
해보세요. 정상적으로 사이트가 열릴 것입니다.
'Python Django > Django FAQ' 카테고리의 다른 글
Django 어드민 사이트 포스팅 제목 바꾸기 (0) | 2022.09.09 |
---|
댓글