Apache/Django中应用日志文件位置的决定因素是什么?
我有一个在Apache/ubuntu上运行的django应用,但我显然配置错了。当我启动apache时,apache的日志里出现了这个错误:
...
IOError: [Errno 2] No such file or directory: '/home/osqa/sites/log/django.osqa.log'
现在,我的网站应该是在'home/osqa/sites/foobar/'这个文件夹下运行。为什么django/apache却在找一个在这个文件夹上面的日志文件呢?这个设置是在哪里配置的?我该如何解决或分析这个问题呢?
2 个回答
1
我觉得可能是你的apache2配置出了问题。去找一下sites-available/your-site.com.conf这个文件,看看里面的内容。也许你会发现它在记录一些日志?
1
你在httpd.conf文件中的以下几行代码正是导致你问题的原因:
CustomLog ${APACHE_LOG_DIR}/beta-meta-d3c.access.log common
ErrorLog ${APACHE_LOG_DIR}/beta-meta-d3c.error.log
这个日志设置是针对整个apache的,而不仅仅是你在apache的子目录中设置的应用程序。
${APACHE_LOG_DIR}
应该解析为/home/osqa/sites/log/
。完整的日志文件名会是:
/home/osqa/sites/log/beta-meta-d3c.access.log
这正是它告诉你的内容。你要么创建那个目录并确保它可以写入,要么修改你的httpd配置,把你的应用程序名称加到日志路径中。不过我可能不会改变这个路径,因为其他应用程序也可能需要记录日志,但不想记录到你的目录里。