Я пытаюсь запустить uWSGI на Ubuntu 12.04.
На $ sudo service uwsgi start
или # uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/file.ini
, Я получаю следующую ошибку:
opendir(): No such file or directory [uwsgi.c line 471]
Первый вызов регистрирует эту ошибку в /var/log/uwsgi
а второй выводит эту ошибку в stdout
.
В чем дело?
uwsgi отлично работает с приложениями Django даже без установки плагина python.
mkdir -p /usr/lib/uwsgi/plugins
- достаточный обходной путь для странного поведения кода запуска uwsgi.
Самым запутанным является то, что uwsgi запускается отлично, если вы явно укажете конфигурацию как в командной строке, так и в режиме демона.
Например, у вас есть:
/etc/uwsgi/apps-available/uwsgi.ini
/etc/uwsgi/apps-enabled
а затем сделать /etc/init.d/uwsgi start uwsgi.ini
- с запуском проблем нет! /etc/init.d/uwsgi start
- [Ошибка] без существующего каталога плагинов
Надеюсь, что разработчики uwsgi исправят это или, по крайней мере, запишут соответствующее сообщение об ошибке.
Пробовать strace
процесс:
# strace -f -o ~/uwsgi.trace uwsgi --ini /usr/share/uwsgi/conf/default.ini --ini /etc/uwsgi/apps-enabled/file.ini
показывает, что непосредственно перед тем, как этот процесс завершился неудачно, открытие /usr/lib/uwsgi/plugins
не удается:
openat(AT_FDCWD, "/usr/lib/uwsgi/plugins", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Итак, создайте недостающий каталог: # mkdir -p /usr/lib/uwsgi/plugins
а затем попробуйте снова запустить uWSGI.
Тем не менее, если вам не хватает /usr/lib/uwsgi/plugins
каталог, ваша установка uWSGI, скорее всего, не сможет обрабатывать запросы. Например, для обработки запросов Python вам нужно: # apt-get install uwsgi-plugin-python
а затем добавить plugins = python
в конфигурацию вашего приложения.