Назад | Перейти на главную страницу

Настройка mod_wsgi для использования Python 2.7

Я пытаюсь настроить mod_wsgi для использования Python 2.7.

Я скачал, распаковал исходники и запустил

./configure --with-python=/usr/local/bin/python2.7

После этого в / usr / lib / apache2 / modules появились mod_wsgi.so-2.4 и mod_wsgi.so-2.5.

Я перезапустил сервер, но он сообщает о «внутренней ошибке сервера». Журналы ошибок показывают, что при запуске сервер сообщает об использовании Python 2.5.2 - той же версии, что и ранее.

Как заставить Apache запускать Python 2.7? Как мне правильно настроить mod_wsgi для работы с Python 2.7?

У вас установлен конфликтующий системный пакет для mod_wsgi. Если они вам не нужны, удалите системный пакет для mod_wsgi.

Также не забудьте прочитать:

поскольку вам может потребоваться установить для LD_RUN_PATH значение / usr / local / lib при сборке mod_wsgi, чтобы он знал, где найти библиотеку Python во время выполнения, если / usr / local / lib не указан в системном ld.cache.

Вам также может потребоваться установить:

WSGIPythonHome /usr/local

в конфигурации Apache, поэтому mod_wsgi знает, где находится Python 2.7, поскольку не находится в системном местоположении.

Также убедитесь, что Python 2.7 был установлен с общей библиотекой.

Вот как вы можете настроить mod_wsgi для использования Python2.7

Я столкнулся с той же проблемой. И я искал вариант удаления mod_wsgi и его повторной установки с соответствующими конфигами.

Прочитав одну из статей, я понял, что нет необходимости удалять мой текущий mod_wsgi, и я мог просто пойти дальше и переустановить mod_wsgi3.4 (раньше у меня была v3.2) с настройками для использования Python2.7 (похоже, процесс установки переписывает все без ошибок / конфликтов).

Поскольку у меня уже был установлен Python2.7.

Я переустановил mod_wsgi-3.4 (без деинсталляции)

[root @ server ~] # cd ~

[root @ server ~] # wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz

[корневой @ сервер ~] # tar xvf mod_wsgi-3.4.tar.gz

[root @ server ~] # cd mod_wsgi-3.4

Настроил mod_wsgi с установленным python2.7

[root @ server ~] #. / configure --with-python = / usr / local / bin / python2.7

[root @ server ~] # make

[root @ server ~] # make install

Следующие две команды очень важны. Замените / usr / local / lib на папку, в которую вы установили libpython2.7.so.1.0, если ее нет в / usr / local / lib.

[корневой @ сервер ~] # LD_LIBRARY_PATH = / usr / local / lib / usr / local / bin / python

[корневой @ сервер ~] # ldconfig

Перезагрузите сервер Apache

[root @ server ~] # перезапуск службы httpd

[корневой @ сервер ~] # ldd /etc/httpd/modules/mod_wsgi.so

Вывод приведенной выше команды: Line2 указывает, что ваш mod_wsgi теперь использует библиотеки Python2.7. УРА!

    linux-vdso.so.1 =>  (0x00007fffc0aa9000)
    libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f03a5b20000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f03a5903000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f03a56fe000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f03a54fb000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f03a5277000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f03a4ee2000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f03a6133000)