uWSGI собирается не сложно, но немного нестандартно. Кроме того, этот инструмент имеет огромное количество различных возможностей, большая часть которых рассчитаны на промышленные кластерные и облачные решения, хостинги, множество языков разработки… Всё это здорово, но совершенно не нужно на маленьком VDS, где наоборот важна память.
В последних версиях uWSGI со сборкой стало получше, есть множество готовых компактных конфигураций, но того, что нужно мне ещё не появилось. Всем не угодишь. Поэтому придётся чуть-чуть поколдовать.
Получаем и раззиповываем исходники:
UWSGI_VERSION='1.9.20'
wget -nc "http://projects.unbit.it/downloads/uwsgi-$UWSGI_VERSION.tar.gz"
tar xzf "uwsgi-$UWSGI_VERSION.tar.gz"
cd "uwsgi-$UWSGI_VERSION"
Теперь как раз магия: создаём файл конфигурации для сборки:
cat << EOF > buildconf/_my.ini
[uwsgi]
main_plugin = python,cgi
inherit = minimal
EOF
Тут всего три строчки. Как видите, мы отнаследовались от минимальной конфигурации и включили два плагина: python и cgi.
Теперь собираем.
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -lssl -lcrypto -ldl -lz"
export CPPFLAGS="-I $PREFIX/include"
"$PREFIX/bin/python" uwsgiconfig.py --build _my
Я устанавливаю переменные LDFLAGS
и CPPFLAGS
потому, что
использую часть библиотек так же самосборного приготовления.
Если вы собираетесь с системными библиотеками, то вам нужна только
последняя строка (с системным питоном).
После сборки у вас появится бинарник uwsgi
, который вы можете
положить самостоятельно, куда хотите.
Переходим к настройке.