В настоящее время я пытаюсь установить графит 0.9.9 на ящик Gentoo, используя эти инструкции из графитовой вики. По сути, он выходит на графит с помощью apache и mod_wsgi.
Кажется, все прошло хорошо, за исключением того, что веб-приложение apache / graphite никогда не возвращает ответ веб-браузеру (браузер постоянно ожидает загрузки страницы). Я включил отладочную информацию графита, но единственное сообщение в файлах журнала - это, которое повторяется снова и снова в info.log (с постоянным изменением pid):
Чт, 23 фев, 01:59:38 2012 :: graphite.wsgi - pid 4810 - перезагрузка поискового индекса
Эти инструкции работали для меня раньше, когда я настраивал графит на машине Ubuntu. Я подозреваю, что mod_wsgi умирает, но я подтвердил, что mod_wsgi отлично работает, когда не обслуживает графитовое веб-приложение.
Вот как выглядит мой файл vhost graphite.conf:
WSGISocketPrefix /etc/httpd/wsgi/
<VirtualHost *:80>
ServerName # Server name
DocumentRoot "/opt/graphite/webapp"
ErrorLog /opt/graphite/storage/log/webapp/error.log
CustomLog /opt/graphite/storage/log/webapp/access.log common
# I've found that an equal number of processes & threads tends
# to show the best performance for Graphite (ymmv).
WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
WSGIProcessGroup graphite
WSGIApplicationGroup %{GLOBAL}
WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi
Alias /content/ /opt/graphite/webapp/content/
<Location "/content/">
SetHandler None
</Location>
# XXX In order for the django admin site media to work you
# must change @DJANGO_ROOT@ to be the path to your django
# installation, which is probably something like:
# /usr/lib/python2.6/site-packages/django
Alias /media/ "/usr/lib64/python2.6/site-packages/django/contrib/admin/media/"
<Location "/media/">
SetHandler None
</Location>
# The graphite.wsgi file has to be accessible by apache. It won't
# be visible to clients because of the DocumentRoot though.
<Directory /opt/graphite/conf/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Не решает вашу проблему, но вам не нужны:
<Location "/content/">
SetHandler None
</Location>
<Location "/media/">
SetHandler None
</Location>
Раньше использование SetHandler было необходимо только при использовании mod_python. Это не требуется при использовании mod_wsgi.
Я бы посоветовал вам сделать так, чтобы пользователь, выполняющий ваш код под Apache, действительно имел соответствующий доступ на запись к любым каталогам, которые необходимы для файлов данных для приложения.