uwsgi + django: неподдерживаемый тип хэша - PullRequest
0 голосов
/ 31 октября 2018

При развертывании моего сайта django на сервере Ubuntu 18.04 я обнаружил, что использование python manage.py runserver работает хорошо. Но когда я использую uwsgi для запуска этого сайта django, при отправке моего логина по-прежнему возникает ошибка unsupported hash type форма.

Среда: Ubuntu 18.04 / anaconda3 (используйте conda для управления virtualenvs) /python3.6/uwsgi2.0.17/django2.0/

подробности ошибки: отсюда и исключение: user = authenticate(username=username, password=password)

Тип исключения: ValueError Значение исключения:
неподдерживаемый тип хеша

мой файл uwsgi ini:

[uwsgi]
chdir = /www/wwwroot/django-xxx/
plungins = python,gevent
socket = 127.0.0.1:8080
module = apps.wsgi:application
gevent-early-monkey-patch = True
gevent-wait-for-hub = True
gevent = 10
workers = 3
master = True
vacuum = True
user = root
logto = /www/wwwroot/django-xxx/uwsgi.log

Traceback:

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner
  35.             response = get_response(request)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  128.                 response = self.process_exception_by_middleware(e, request)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "./apps/sspanel/views.py" in user_login
  94.             user = authenticate(username=username, password=password)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/__init__.py" in authenticate
  70.             user = _authenticate_with_backend(backend, backend_path, request, credentials)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/__init__.py" in _authenticate_with_backend
  115.     return backend.authenticate(*args, **credentials)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/backends.py" in authenticate
  22.             if user.check_password(password) and self.user_can_authenticate(user):

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/base_user.py" in check_password
  111.         return check_password(raw_password, self.password, setter)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/hashers.py" in check_password
  50.     is_correct = hasher.verify(password, encoded)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/hashers.py" in verify
  256.         encoded_2 = self.encode(password, salt, int(iterations))

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/contrib/auth/hashers.py" in encode
  249.         hash = pbkdf2(password, salt, iterations, digest=self.digest)

File "/anaconda3/envs/django-sspanel-7/lib/python3.7/site-packages/django/utils/crypto.py" in pbkdf2
  85.     return hashlib.pbkdf2_hmac(digest().name, password, salt, iterations, dklen)

обновление: мои дальнейшие исследования 1. перейти на Ubuntu 16.04 без каких-либо других изменений, не работать; 2. Измените мой способ установки UWSGI, проблема решена: оригинальный способ установки UWSGI состоял в том, чтобы установить gcc 4.7 и использовать его для установки UWSGI (установка завершится неудачно, если я установлю UWSGI напрямую, потому что версия gcc слишком высока в соответствии с моими результатами Google). Я пытаюсь conda установить uwsgi, наконец, эта проблема исчезает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...