Apache/Django中应用日志文件位置的决定因素是什么?

0 投票
2 回答
1008 浏览
提问于 2025-04-16 14:32

(之前在Server Fault上也提过这个问题)

我有一个在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配置,把你的应用程序名称加到日志路径中。不过我可能不会改变这个路径,因为其他应用程序也可能需要记录日志,但不想记录到你的目录里。

撰写回答