2016-07-04 5 views
0

Введение

У меня есть веб-API, написанный в python 3, и в нем используется колба. Код работает нормально, когда я запускаю веб-API с терминала, и он размещается из следующей строки в коде.Как установить mod_wsgi в виртуальном окружении

if __name__ == '__main__': 
    app.run(host='', port=8010, debug='true') 

Текущая ситуация

код работает отлично, и я хочу, чтобы установить его на Apache Server. Однако на сервере Apache уже есть веб-сайты, которые были созданы с использованием python 2 и нуждаются в mod_wsgi для python 2.

Я посмотрел, был ли способ настроить как mod-wsgi на сервере apache, но в соответствии со следующим источником: может не mod_wsgi for Python 2 as well as Python 3 on one Apache server

Попытка решения

Я пытаюсь установить моды-WSGI в виртуальную среду. Я загрузил пакет и попытался установить его в среду после его активации.

Я побежал sudo python setup.py install от терминала, но я получил ошибку ниже

File "setup.py", line 139, in 'missing Apache httpd server packages.' % APXS) RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.

Так я открыл Read Me файла, который был частью архивного пакета и обнаружил следующее

If you wish to use a version of Apache which is installed into a non standard location, you can set and export the APXS environment variable to the location of the Apache apxs script for your Apache installation before performing the installation.

Note that nothing will be copied into your Apache installation at this point. As a result, you do not need to run this as the root user unless installing it into a site wide Python installation rather than a Python virtual environment.

To verify that the installation was successful, run the mod_wsgi-express script with the start-server command::

mod_wsgi-express start-server 

кажется, решайте мою ситуацию, так как Apache не установлен в виртуальной среде, из которой я запускаю команду, но я понятия не имею, как это сделать.

I presu я говорю о файле setup.py и что я должен изменить путь, но я не знаю, как это сделать синтаксически, или где находится мой APXS-скрипт.

Вот фрагмент кода, который я думаю, должен быть изменен

APXS = os.environ.get('APXS') 

WITH_HTTPD_PACKAGE = False 

if APXS is None: 
    APXS = find_program(['mod_wsgi-apxs'], 
      paths=[os.path.dirname(sys.executable)]) 
    if APXS is not None: 
     WITH_HTTPD_PACKAGE = True 

if APXS is None: 
    APXS = find_program(['mod_wsgi-apxs', 'apxs2', 'apxs'], 
      'apxs', ['/usr/sbin', os.getcwd()]) 
elif not os.path.isabs(APXS): 
    APXS = find_program([APXS], APXS, ['/usr/sbin', os.getcwd()]) 

if not WITH_TARBALL_PACKAGE: 
    if not os.path.isabs(APXS) or not os.access(APXS, os.X_OK): 
     raise RuntimeError('The %r command appears not to be installed or ' 
       'is not executable. Please check the list of prerequisites ' 
       'in the documentation for this package and install any ' 
       'missing Apache httpd server packages.' % APXS) 

Вопрос

Я делаю все это на сервере под управлением Ubuntu 12.04LTS, если это помогает. Мой вопрос в конце является следующими

  1. Где APXS, расположенные обычно в Ubuntu
  2. Как изменить фрагмент кода, чтобы сделать используйте APXS сценария там

Спасибо так много для Ваше время

+0

Извините за недоразумение получается APXS не был установлен на моем APACHE –

ответ

1

Извините за неудобства

Оказывается, я забыл установить APXS на мой сервер Apache. Я просто запускал код с терминала, и он работал sudo apt-get apache2-threaded-dev