我在A2 Hosting Linux共享主机帐户上运行Django。以前,我使用的是旧版本的Django和Python。我也在使用FCGI。我最近更改为新服务器,现在使用的是Django 2.1.2,Python 3.6.0。和Phusion乘客。
我无法获得passenger_wsgi.py来加载我的网站,也找不到错误日志来尝试解决问题。
.htaccess文件位于public_html目录中。
我的应用程序文件存储在: /home/username/example.com /
example.com目录中的文件夹/文件结构为: -媒体
-mysite
--- init.py
--- settings.py
--- urls.py
--- wsgi.py
-公共
-tmp
-manage.py
-passenger_wsgi.py
#passenger_wsgi.py文件的内容:
import os
import sys
import mysite.wsgi
application = mysite.wsgi.application
cwd = os.getcwd()
sys.path.append(cwd)
#sys.path.append(os.getcwd())
sys.path.append(cwd + '/mysite')
SCRIPT_NAME = os.getcwd()
class PassengerPathInfoFix(object):
"""
Sets PATH_INFO from REQUEST_URI since Passenger doesn't provide it.
"""
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
from urllib.parse import unquote
environ['SCRIPT_NAME'] = SCRIPT_NAME
request_uri = unquote(environ['REQUEST_URI'])
script_name = unquote(environ.get('SCRIPT_NAME', ''))
offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
return self.app(environ, start_response)
application = PassengerPathInfoFix(application)
该网站产生错误(下图)。我整天都在尝试通过修改passenger_wsgi.py文件来解决此问题。
我找不到乘客错误日志文件。我对旅客没有任何经验。我已经没有足够的方法来尝试解决问题了。
当我在SSH中运行“ python passenger_wsgi.py”时,不会产生任何注释。
如果有人可以帮助我: (1)确认passenger_wsgi.py内容有什么问题,或 (2)如何在共享的Linux托管帐户上找到“乘客”错误日志。
答案 0 :(得分:0)
不确定是否可以在没有日志的情况下进行诊断,但是我在共享A2 Hosting查找日志时遇到了类似的问题。我可以在cPanel的“错误”部分中找到一些旅客日志。
在cPanel主屏幕上,向下滚动到“指标”子标题。本节中将有一个指向“错误”的链接。您应该能够在其中找到重要的旅客日志。
答案 1 :(得分:0)
passenger_wsgi.py 的这种结构在A2托管上对我有效:
import os
import sys
import MyApp.wsgi
SCRIPT_NAME = '/home/user/domain'
class PassengerPathInfoFix(object):
""" Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it. """
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
from urllib.parse import unquote
environ['SCRIPT_NAME'] = SCRIPT_NAME
request_uri = unquote(environ['REQUEST_URI'])
script_name = unquote(environ.get('SCRIPT_NAME', ''))
offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
return self.app(environ, start_response)
application = MyApp.wsgi.application
application = PassengerPathInfoFix(application)