2016-11-22 69 views
1

私のサイトでエラーログを有効にしようとしています。だから私はプロジェクトのルートにlog.txtというファイルを作成しました。djangoエラーログ:[Errno 13]アクセスが拒否されました

/home/xyz/public_html/projectname/log.txt 

と、このアドレスで私のsetting.py中:

/home/xyz/public_html/projectname/projectname/settings.py 

私はシンプルなロギング設定を持っている:私はオンライン時にそれを置くとき

LOGGINGs = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'verbose': { 
      'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 
      'datefmt' : "%d/%b/%Y %H:%M:%S" 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': 'log.txt', 
      'formatter': 'verbose' 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers':['file'], 
      'propagate': True, 
      'level':'DEBUG', 
     }, 

    } 
} 

これは私のlocalhostbutで正常に動作します私は取得するサーバーを起動しようとしています:

[Tue Nov 22 04:27:37.817043 2016] [wsgi:error] [pid 3619] [remote 111.113.21.35:0] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/log.txt' 

ここでは、エラー・スタックです:

(XID d4tgu5) Database Connect Error: Access denied for user 'leechprotect'@'localhost' (using password: YES) 
[Tue Nov 22 04:36:25.934018 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882): Create interpreter 'myproject.com|'. 
[Tue Nov 22 04:36:25.960785 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882): Adding '/home/xyz/public_html/myproject' to path. 
[Tue Nov 22 04:36:25.961397 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882): Adding '/usr/local/lib/python3.4/site-packages/' to path. 
[Tue Nov 22 04:36:25.963133 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882, process='myproject', application='myproject.com|'): Loading WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.016998 2016] [wsgi:info] [pid 4925] mod_wsgi (pid=4925): Initializing Python. 
[Tue Nov 22 04:36:26.049383 2016] [wsgi:info] [pid 4925] mod_wsgi (pid=4925): Attach interpreter ''. 
[Tue Nov 22 04:36:26.386166 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Target WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py' cannot be loaded as Pytho 
n module. 
[Tue Nov 22 04:36:26.386312 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Exception occurred processing WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.386413 2016] [wsgi:error] [pid 4882] Traceback (most recent call last): 
[Tue Nov 22 04:36:26.387088 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 557, in configure 
[Tue Nov 22 04:36:26.387135 2016] [wsgi:error] [pid 4882]  handler = self.configure_handler(handlers[name]) 
[Tue Nov 22 04:36:26.387239 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 725, in configure_handler 
[Tue Nov 22 04:36:26.387263 2016] [wsgi:error] [pid 4882]  result = factory(**kwargs) 
[Tue Nov 22 04:36:26.388223 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1006, in __init__ 
[Tue Nov 22 04:36:26.388268 2016] [wsgi:error] [pid 4882]  StreamHandler.__init__(self, self._open()) 
[Tue Nov 22 04:36:26.388337 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1035, in _open 
[Tue Nov 22 04:36:26.388360 2016] [wsgi:error] [pid 4882]  return open(self.baseFilename, self.mode, encoding=self.encoding) 
[Tue Nov 22 04:36:26.388418 2016] [wsgi:error] [pid 4882] PermissionError: [Errno 13] Permission denied: '/log.txt' 
[Tue Nov 22 04:36:26.388464 2016] [wsgi:error] [pid 4882] 
[Tue Nov 22 04:36:26.388483 2016] [wsgi:error] [pid 4882] During handling of the above exception, another exception occurred: 
[Tue Nov 22 04:36:26.388491 2016] [wsgi:error] [pid 4882] 
[Tue Nov 22 04:36:26.388509 2016] [wsgi:error] [pid 4882] Traceback (most recent call last): 
[Tue Nov 22 04:36:26.388781 2016] [wsgi:error] [pid 4882] File "/home/xyz/public_html/myproject/myproject/wsgi.py", line 16, in <module> 
[Tue Nov 22 04:36:26.388819 2016] [wsgi:error] [pid 4882]  application = get_wsgi_application() 
[Tue Nov 22 04:36:26.389032 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
[Tue Nov 22 04:36:26.389064 2016] [wsgi:error] [pid 4882]  django.setup() 
[Tue Nov 22 04:36:26.389245 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/site-packages/django/__init__.py", line 17, in setup 
[Tue Nov 22 04:36:26.389273 2016] [wsgi:error] [pid 4882]  configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
[Tue Nov 22 04:36:26.389521 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/site-packages/django/utils/log.py", line 71, in configure_logging 
[Tue Nov 22 04:36:26.389590 2016] [wsgi:error] [pid 4882]  logging_config_func(logging_settings) 
[Tue Nov 22 04:36:26.389657 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 789, in dictConfig 
[Tue Nov 22 04:36:26.389680 2016] [wsgi:error] [pid 4882]  dictConfigClass(config).configure() 
[Tue Nov 22 04:36:26.389726 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 565, in configure 
[Tue Nov 22 04:36:26.389745 2016] [wsgi:error] [pid 4882]  '%r: %s' % (name, e)) 
[Tue Nov 22 04:36:26.389784 2016] [wsgi:error] [pid 4882] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/log.txt' 
[Tue Nov 22 04:36:26.390725 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882, process='myproject', application='myproject.com|'): Loading WSGI script '/home/xyz/public_html/neg 
inpay/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.392489 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Target WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py' cannot be loaded as Pytho 
n module. 
[Tue Nov 22 04:36:26.392630 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Exception occurred processing WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.392724 2016] [wsgi:error] [pid 4882] Traceback (most recent call last): 
[Tue Nov 22 04:36:26.392821 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 557, in configure 
[Tue Nov 22 04:36:26.392835 2016] [wsgi:error] [pid 4882]  handler = self.configure_handler(handlers[name]) 
[Tue Nov 22 04:36:26.392882 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 725, in configure_handler 
[Tue Nov 22 04:36:26.392892 2016] [wsgi:error] [pid 4882]  result = factory(**kwargs) 
[Tue Nov 22 04:36:26.392931 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1006, in __init__ 
[Tue Nov 22 04:36:26.392941 2016] [wsgi:error] [pid 4882]  StreamHandler.__init__(self, self._open()) 
[Tue Nov 22 04:36:26.392976 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1035, in _open 
[Tue Nov 22 04:36:26.392985 2016] [wsgi:error] [pid 4882]  return open(self.baseFilename, self.mode, encoding=self.encoding) 
[Tue Nov 22 04:36:26.393021 2016] [wsgi:error] [pid 4882] PermissionError: [Errno 13] Permission denied: '/log.txt' 

だから私はそれは私がよりよい解決策を見つけるまで、私は一時的に777に設定したログファイルのパーミッションだと思いました。今、私は持っています:

私は周りを検索し、いくつかはSELinuxのためにこの問題があることを発見した。だから私は、私が持っているNOW AS WELL THATをオフにして:

[[email protected]]# sestatus 
SELinux status:     disabled 

しかし、まだ運と、私はこのエラーに

答えて

4

のmod_wsgiを取得していますが、おそらく/(ファイルシステムのルート)

にカレントディレクトリを変更しません

あなたのアプリはあなたが作成したものではなく、/log.txtに書き込もうとします。 'ファイル名' は、完全なファイルパスではなく、相対1

'ファイル名' になるように

  • はLOGGINGsを変更: '/home/xyz/public_html/projectname/log.txt'

  • はまた、あなたが別のログファイルを使用してはならないのmod_wsgiを使用する場合はApacheを実行しますよりも、システムのユーザーが持っていることのlog.txt

+0

実際には、Apacheはシステムのinitスクリプトから起動され、作業ディレクトリとして '/'を継承するからです。 http://modwsgi.readthedocs.io/ja/develop/user-guides/application-issues.html#application-working-directoryに文書化されています。 –

2

上の権利を書くことを確認してください。代わりにstdoutまたはstderrに直接ログを記録し、それをApacheエラーログファイルに取り込ませてください。この方法では、Apacheは、権限が心配やファイルなどの回転部分の例を参照してくださいの「Pythonの例外のログ」ログイン:1のApacheに複数のサイトをホスティングしている場合は、念の

を作成し、各VirtualHostその独自のエラーログファイルを作成して、異なるサイトを分離します。

関連する問題