Ответ 1
Поддержка Python может быть добавлена к WampServer довольно легко, подобно добавлению любого модуля Apache, который не поставляется с базовым пакетом. Вам нужно сделать несколько дополнительных шагов, чтобы убедиться, что вы можете продолжать использовать консоль WampServer для управления стеком приложений.
Загрузить модуль mod_wsgi Apache
Вам нужно получить соответствующую бинарную версию mod_wsgi. WSGI является предпочтительным методом написания веб-приложений на Python. Бинарный файл, который вы используете, должен совпадать с версиями Windows, Apache и Python, которые вы используете. Этот сайт предоставляет двоичные файлы для текущих версий: бинарные файлы mod_wsgi. ПРИМЕЧАНИЕ. Если вас вообще беспокоит безопасность, вы, вероятно, должны скомпилировать собственную версию mod_wsgi из исходного кода или загрузить только из надежного источника.
Двоичный файл переходит в каталог модулей Apache. В моем случае я скачал mod_wsgi-3.4.ap22.win-amd64-py2.7.zip(Windows 7 64-бит, Python 2.7, Apache 2.2). На моем ноутбуке правильным каталогом был c:\wamp\bin\apache\Apache2.4.4\modules.
Обновить httpd.conf и обновить WampServer
Затем вам нужно обновить httpd.conf. Это можно сделать с панели управления WampServer, выбрав "Apache- > httpd.conf" в меню. Запустится блокнот (или ваш редактор по умолчанию).
Найдите раздел, где есть куча операторов LoadModule. В нижней части этого раздела добавьте оператор LoadModule для mod_wsgi:
LoadModule wsgi_module modules/mod_wsgi.so
Сохраните файл httpd.conf и выйдите из Блокнота.
Чтобы WampServer знал, что вы внесли изменения, вам нужно обновить его. Щелкните правой кнопкой мыши значок WampServer на панели задач и выберите "Обновить". Теперь, когда вы смотрите список модулей на панели управления (Apache- > Apache Modules), вы должны увидеть mod_wsgi в списке. Если он еще не проверен, проверьте его. Если Apache не перезагружается автоматически, сделайте это сейчас с панели управления.
Если Apache не запускается, и вы уверены, что вы не ошиблись в инструкции LoadModule выше, то, скорее всего, у вас есть неправильная совпадение между версией вашего WampServer и бинарником mod_wsgi, который вы загрузили.
Подключить Apache к вашему приложению Python
Этот шаг будет зависеть от того, какую инфраструктуру приложения вы используете (cherrypy, Django и т.д.). Я дам действительно простой пример, чтобы убедиться, что все работает правильно; этот пример внимательно следует официальной документации WSGI.
Создайте каталог для хранения вашего приложения WSGI. Я создал каталог C:\code\wsgi. Там создайте модуль Python, который реализует функцию под названием "приложение". Это будет точкой входа для вашего приложения при вызове вашего URL-адреса приложения.
Я назвал свой модуль wsgi.py:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Затем вам нужно обновить файл Apache httpd.conf, чтобы указать WSGI в вашем приложении. В моем случае использования я поддерживал PHP-сайт, делая несколько прототипов нового сайта с использованием Python. Чтобы сохранить эти два отдельно, я определил виртуальный сервер в Apache, прослушивая другой номер порта. Я также добавил директиву IfModule, так что если я отключу mod_wsgi с помощью панели управления WampServer, то эти утверждения будут проигнорированы.
<IfModule wsgi_module>
<VirtualHost *:8090>
WSGIScriptAlias /myapp /code/wsgi/wsgi.py
<Directory /code/wsgi>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
</IfModule>
Тестирование
Перезапустите Apache с помощью панели управления WampServer. Если все в порядке, вы должны ввести
http://localhost:8090/myapp
в вашем браузере и посмотрите "Привет, мир! отображается сообщение.
Обновлено май 2015 г.
Новые версии двоичных файлов Windows для mod_wsgi упаковываются с использованием формата файла whl. Файл whl представляет собой PIP файл PIP "wheel". Он совместим с ZIP, поэтому вы можете переименовать файл с расширением .zip, чтобы извлечь файл mod_wsgi.so(из каталога данных).
В качестве альтернативы вы можете запустить 'pip install (packagename).whl' для установки mod_wsgi.so в качестве пакета Python. Вам нужно будет узнать, где Python извлек файл mod_wsgi.so и скопировать его в нужное место (при необходимости).
Я использовал прежний подход для последней версии WAMP Server. Правильный файл был mod_wsgi-4.4.11 + ap24vc10-cp34-none-win32.whl. Часть имени "cpNN" должна совпадать с версией Python, которую вы установили.