компиляция mod_wsgi без привилегий root

#python #django #virtualenv #mod-wsgi

#python #django #virtualenv #mod-wsgi

Вопрос:

Мне нужно скомпилировать mod_wsgi без привилегий root на CentOS. В системе есть предварительно скомпилированная версия mod_wsgi, но она предназначена для python2.6. Для моего приложения django требуется python2.7, и, следовательно, мне нужно скомпилировать mod_wsgi с помощью python2.7 Я загрузил и скомпилировал python2.7 и создал virtualenv. Теперь я использую это для компиляции mod_wsgi : ./configure --with-python=/MYHOME/.MYENV/bin/python2.7 . Шаг настройки работает нормально, и так make оно и есть. Однако, когда я это делаю make install , я получаю сообщение об ошибке:

 cp: cannot create regular file `/usr/lib64/httpd/modules/mod_wsgi.so': Permission denied
apxs:Error: Command failed with rc=65536`
  

Неудивительно, поскольку я не root. Что я могу сделать сейчас, можно ли указать apache для загрузки mod_wsgi.so из другого места? Вероятно, я могу попросить системного администратора отредактировать конфигурационные файлы apache.

РЕДАКТИРОВАТЬ: я должен был упомянуть, что мой файл http.conf содержит директиву Include /path/to/user-owned/directory/*.conf . Я ищу вариант, который требует как можно меньшего вмешательства со стороны системного администратора.

Комментарии:

1. Если вы можете попросить администратора отредактировать конфигурационный файл apache, попросите его скомпилировать mod_wsgi.

2. если у вас нет привилегий root, как вы собираетесь скопировать его в каталог Apache и / или отредактировать конфигурацию Apache?

3. хорошо, хорошая точка зрения, едподтрзитко. Я должен был упомянуть об этом в своем вопросе. http.conf содержит Include /path/to/user-owned/directory/*.conf .

Ответ №1:

Я смог решить это с помощью системного администратора.

После настройки mod_wsgi с ./configure --with-python=/MYHOME/.MYENV/bin/python2.7 помощью я отредактировал Makefile, вставив следующее: DESTDIR=/path/to/local/dir .

Затем make и make install запустить без ошибок, как mod_wsgi.so записывается в разрешенный каталог.

В конфигурационном файле apache (благодаря которому я могу редактировать без привилегий root Include /path/to/user-owned/directory/*.conf ) я установил LoadModule wsgi_module /path/to/local/dir/mod_wsgi.so .

Надеюсь, это поможет кому-либо с аналогичной настройкой.