slav0nic's blog

Заметки о python, linux и других занимательных вещах

Пару хаков для запуска hgweb и Trac на lighttpd

Есть в lighttpd одна проблемка с переменной PATH_INFO. От параметра "broken-scriptfilename" почему-то толку 0 :.

Вот пару скриптов для запуска Trac и HGweb через fcgi:

  • для запуска Trac в корневом каталоге сайта (нашёл в сети, хотя там была одна ошибка):
#!/usr/bin/env python
try:
        from flup.server.fcgi import WSGIServer
except ImportError:
        from trac.web._fcgi import WSGIServer
from trac.web.main import dispatch_request
import tempfile
import os
os.environ['PYTHON_EGG_CACHE'] = tempfile.gettempdir()
def application(environ, start_request):
        environ['PATH_INFO'] = environ['SCRIPT_NAME'] + environ['PATH_INFO']
        environ['SCRIPT_NAME'] = ''
        return dispatch_request(environ, start_request)

if __name__ == '__main__':
        WSGIServer(application).run()
  • Для hgwebdir.cgi достаточно добавить что-то вроде:

    os.environ['SCRIPT_NAME'] = "/hg"
    
  • hgwebdir.fcgi для запуска в корне сайта:

    from mercurial import demandimport; demandimport.enable()
    from mercurial.hgweb.hgwebdir_mod import hgwebdir
    from flup.server.fcgi import WSGIServer
    
    def make_web_app():
        return hgwebdir("hgweb.config")
    
    def wsgiapplication(app_maker):
        application = app_maker()
        def run_wsgi(env, respond):
            env['PATH_INFO'] = env['SCRIPT_NAME'] + env['PATH_INFO']
            env['SCRIPT_NAME'] = ''
            return application(env, respond)
        return run_wsgi
    
    WSGIServer(wsgiapplication(make_web_app)).run()
    

Возможно кому-то пригодится

oduvan post on 2009-08-01 13:40:45
Добрый день. Скрипты конечно адски крутые, но я наверно чего не понимаю. http://redmine.lighttpd.net/projects/1/wiki/HowToSetupTrac тут описание настройки трека по лайти ( к примеру). А если у вас есть трек, то зачем юзать с ним еше и HGweb? ЗЫ: А можно текстовое поле для комментов сделать малех ширше?
slav0nic post on 2009-08-24 22:53:23
коммитить как прикажешь? по ssh?да и мне hgweb удобней для просмотра кода то что есть вики, актуально к траку 1.4.23

web.py