Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django+;Apache内部服务器错误:权限被拒绝_Django_Git_Apache_Mod Wsgi - Fatal编程技术网

Django+;Apache内部服务器错误:权限被拒绝

Django+;Apache内部服务器错误:权限被拒绝,django,git,apache,mod-wsgi,Django,Git,Apache,Mod Wsgi,我在我的网站上使用Django 1.6和Apache,起初服务器运行良好,我可以成功地转到我的网页,但在运行之后: git reset --hard HEAD^ 在我的/var/www/html/mysite存储库中,它在浏览器中显示了内部服务器错误,我在错误日志中看到: [Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Create interpreter 'www.XXX.XXX|'. [Thu Jun 09 16:28:32

我在我的网站上使用Django 1.6和Apache,起初服务器运行良好,我可以成功地转到我的网页,但在运行之后:

git reset --hard HEAD^
在我的/var/www/html/mysite存储库中,它在浏览器中显示了内部服务器错误,我在错误日志中看到:

[Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Create interpreter 'www.XXX.XXX|'.
[Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Adding '/var/www/html/mysite' to path.
[Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Adding '/usr/local/lib/python2.7/site-packages' to path.
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] mod_wsgi (pid=15479): Exception occurred processing WSGI script '/var/www/html/mysite/mysite/wsgi.py'.
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] Traceback (most recent call last):
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     self.load_middleware()
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 44, in load_middleware
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 54, in __getattr__
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     self._setup(name)
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 50, in _setup
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     self._configure_logging()
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 80, in _configure_logging
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     logging_config_func(self.LOGGING)
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/logging/config.py", line 794, in dictConfig
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     dictConfigClass(config).configure()
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]   File "/usr/local/lib/python2.7/logging/config.py", line 576, in configure
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]     '%r: %s' % (name, e))
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/debug.log'
我看到它被“拒绝许可”,所以我跑了:

sudo chown -R www-data:www-data mysite
而且:

sudo chmod -R 755 mysite
但它仍然不起作用,我甚至将整个
html
目录的任务更改为
777
,但没有用。 我不明白为什么会出现权限错误,是否有与我运行的git命令相关的内容

PS:我在我的settings.py中根本没有提到
/debug.log
,我写道:

  LOGGING = {
  'version': 1,
  'disable_existing_loggers': True,
  'handlers': {
    'file': {
      'level': 'DEBUG',
      'class': 'logging.FileHandler',
      'filename': 'debug.log',
    },
  },
  'loggers': {
    'django.request': {
      'handlers': ['file'],
      'level': 'DEBUG',
      'propagate': True,
    },
  },
}

问题出在文件中控制日志记录的部分的settings.py中

[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/debug.log'
虽然您当然可以使用适当的权限写入/debug.log,但这是一个不太可能的位置。请选择一个更合适的。您可以通过更改此行来完成此操作:

'filename': 'debug.log',
在您的日志设置中。确保提供完整路径,例如/tmp/debug.log或/var/log/httpd/debug.log

如果您真的想写入该文件,请执行以下操作

 sudo touch /debug.log
 sudo chown www-data:www-data /debug.log

然后重新加载mod wsgi

设置中的
LOG\u ROOT
是什么样子?我感觉你的应用程序正在尝试访问绝对目录
/debug.log
,它是linux框中的基本目录。如果您的设置在repo中被跟踪,请尝试
git bull settings.py
并查看更改。看来我没有在设置中添加
LOG\u ROOT
。py不要登录到单独的文件。登录到控制台处理程序,让mod_wsgi捕获Django日志输出并将其发送到Apache错误日志中。这是更好的方法。简而言之,问题是你不能使用相对路径来记录日志,因为默认的当前工作目录可以是任何目录,如果根目录不可写。是的,你是对的,我宁愿使用绝对路径