django + lighttpd

Как заставить вместе работать lighttpd и django. Готовый пример конфигурации, которую необходимо складывать в vhosts.d:

$SERVER["socket"] == "0.0.0.0:8888" {
        server.document-root = "/srv/www/django/htdocs"

        url.access-deny = ( "~", ".inc", ".svn/" )

        fastcgi.server = (
                "/dispatch.fcgi" => (
                "main" => (
                        "socket" => "/srv/www/django/run/fcgi.sock",
                        "bin-path" => "/srv/www/django/manage.py runfcgi --pythonpath=/srv/www/django --settings=djangoapp.settings-production method=threaded",
                        "max-procs" => 2,
                        "check-local" => "disable",
                        "fix-root-scriptname" => "enable",
                )
                ),
        )

        alias.url = ( "/static" => "/srv/www/django/htdocs", )

        url.rewrite-once = (
                "^(/static.*)$" => "$1",
                "^/favicon\.ico$" => "/static/favicon.ico",
                "^(/.*)$" => "/dispatch.fcgi$1"
        )
}

Предполагается, что проект лежит в /srv/www/django/, где для него существует рабочая версия настроек в файле settings-production.py. lighttpd сам запустит fcgi-сервер в количестве max-procs экземпляров. Опция check-local необходима для того, чтобы отключить проверку существования файлов на локальной машине, которую делает lighttpd; так как запрашиваемые URL существуют лишь в логике django, а не в файловой системе.

Для правильной работы тегов типа {% url %} необходимо добавить строчку FORCE_SCRIPT_NAME = '' в настройки проекта написанного на django, иначе ко всем ссылкам в начало будет добавляться название /dispatch.fcgi.

xrandr

RandR(The X Resize and Rotate Extension) — это расширение сервера x11 позволяющее динамически менять разрешение экрана, его размер, ориентацию и другие параметры без перезапуска X-сессии. Может быть очень полезен при подключении мультимедийного проектора к ноутбуку. Взаимодействие пользователя осуществляется с помощью одноименной утилиты xrandr, хотя оконные менеджеры предоставляют свои графические обертки для работы с RandR.

xrandr оперирует с выходами(outputs), самый простой способ узнать их наименования и поддерживаемые параметры: xrandr --prop. Общий синтаксис: xrandr --output name --command. Подключая или отключая VGA-устройства во время работы компьютера можно использовать команду xrandr --output VGA --auto для того, чтобы разрешить вновь подключенный выход, или выключить отсоединенный. Есть отдельная команда xrandr --output VGA --off.

Может возникнуть такая ситуация, что экраны должны быть сконфигурированы для показа одно экрана(как в случае мультимедийных проекторов), либо для показа разных участков(два монитора): xrandr --output VGA --same-as LVDS (варианты --left-of, --right-of, --above, --below).

Разрешения двух выходов могут не совпадать, можно использовать команду xrandr --output VGA --mode mode для установки нужной моды, список доступных покажет команда --prop.

Когда физическое отношение сторон экранов двух выходов в режиме --same-as не совпадает(например, если ноутбук 16:10, а мультимедийный проектор 4:3), необходимо либо вырезать нужную часть экрана командой xrandr --output VGA --pos xxy, установив левый верхний угол в позицию x, y., либо использовать команды --scale, которые к сожалению поддерживаются только начиная с версии 1.3 протокола. К счастью, например okular в режиме показа презентаций оставляет черные поля по бокам слайдов 4:3, таким образом использование --pos даже предпочтительно, позволяя отцентрировать выход проектора, отрезав черные поля.