問題描述:
Internal Server Error
原因分析:
重新查看nginx和uwsgi配置,再次重啓nginx和uwsgi,發現還是一樣的狀況,但是訪問項目的靜態文件時成功的,查看uwsgi中設置的log文件
Traceback (most recent call last):
File "./dailyfresh/wsgi.py", line 16, in <module>
application = get_wsgi_application()
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/django/__init__.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/django/conf/__init__.py", line 79, in __getattr__
self._setup(name)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/django/conf/__init__.py", line 66, in _setup
self._wrapped = Settings(settings_module)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/django/conf/__init__.py", line 157, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'settings_production'
unable to load app 0 (mountpoint='') (callable not found or import error)
找到原因。項目的wsgi.py文件中settings引用錯誤,修改後重新啓動uwsgi,遇到這個問題,不多說找到代碼直接注掉
load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 36, in <module>
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
注掉後重啓uwsgi(還有個地方將decode修改爲encode的),
查看uwsgi的日誌文件,明白了,當時使用了jieba分詞器,修改了haystack底層代碼,額外建了一個文件並沒有上傳到服務器上。
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/haystack/query.py", line 29, in __init__
self._determine_backend()
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/haystack/query.py", line 62, in _determine_backend
self.query = connections[backend_alias].get_query()
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/haystack/utils/loading.py", line 109, in __getitem__
self.thread_local.connections[key] = load_backend(self.connections_info[key]['ENGINE'])(using=key)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/haystack/utils/loading.py", line 60, in load_backend
return import_class(full_backend_path)
File "/zt_dailyfresh/dailyfresh_env/lib/python3.6/site-packages/haystack/utils/loading.py", line 27, in import_class
module_itself = importlib.import_module(module_path)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'haystack.backends.whoosh_cn_backend'
上傳相關文件後,訪問服務器ip
還有個問題,我的數據庫還沒有建表,建表後。
decode修改爲encode
\lib\site-packages\django\db\backends\mysql\operations.py”, line 146, in last_executed_query
query = query.decode(errors=‘replace’)
AttributeError: ‘str’ object has no attribute ‘decode’
成功。