Я пытаюсь настроить MOD_WSGI на моем компьютере с Ubuntu. Я нашел шаги, которые сказали, что мне нужно сделать следующие шаги, которые я нашел на http://ubuntuforums.org/showthread.php?t=833766
- sudo apt-get установить libapache2-mod-wsgi
- sudo a2enmod mod-wsgi
- sudo /etc/init.d/apache2 restart
- sudo gedit / etc / apache2 / sites-available / default и обновите каталог
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews ExecCGI AddHandler cgi-script .cgi AddHandler wsgi-script .wsgi AllowOverride None Order allow,deny allow from all </Directory>
- sudo /etc/init.d/apache2 restart
Создан test.wsgi с
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]
Шаг 2 не выполняется, потому что он говорит, что не может найти mod-wsgi, хотя apt-get нашел его. Если я продолжу с шагами, приложение Python просто отображается в виде обычного текста в браузере.
Есть идеи, что я сделал не так?
РЕДАКТИРОВАТЬ: Результаты по задаваемым вопросам
automatedtester@ubuntu:~$ dpkg -l libapache2-mod-wsgi
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-======================================-======================================-============================================================================================
ii libapache2-mod-wsgi 2.5-1 Python WSGI adapter module for Apache
automatedtester@ubuntu:~$ dpkg -s libapache2-mod-wsgi
Package: libapache2-mod-wsgi
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 376
Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Architecture: i386
Source: mod-wsgi
Version: 2.5-1
Depends: apache2, apache2.2-common, libc6 (>= 2.4), libpython2.6 (>= 2.6), python (>= 2.5), python (<< 2.7)
Suggests: apache2-mpm-worker | apache2-mpm-event
Conffiles:
/etc/apache2/mods-available/wsgi.load 06d2b4d2c95b28720f324bd650b7cbd6
/etc/apache2/mods-available/wsgi.conf 408487581dfe024e8475d2fbf993a15c
Description: Python WSGI adapter module for Apache
The mod_wsgi adapter is an Apache module that provides a WSGI (Web Server
Gateway Interface, a standard interface between web server software and
web applications written in Python) compliant interface for hosting Python
based web applications within Apache. The adapter provides significantly
better performance than using existing WSGI adapters for mod_python or CGI.
Original-Maintainer: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
Homepage: http://www.modwsgi.org/
automatedtester@ubuntu:~$ sudo a2enmod libapache2-mod-wsgi
ERROR: Module libapache2-mod-wsgi does not exist!
automatedtester@ubuntu:~$ sudo a2enmod mod-wsgi
ERROR: Module mod-wsgi does not exist!
ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ ДЛЯ RMYates
automatedtester@ubuntu:~$ apache2ctl -t -D DUMP_MODULES
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_worker_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgid_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
python_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
automatedtester@ubuntu:~$
ubuntu
apache-2.2
python
mod-wsgi
AutomatedTester
источник
источник
Ответы:
Я обнаружил, что это известная ошибка в пакете mod_wsgi apt-get, которой более года! Подробности на http://www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg1147225.html . В пакете apt-get не было файла wsgi.load, поэтому его необходимо было создать, выполнив действия, указанные в приведенной выше ссылке.
Спасибо всем, кто помог!
источник
Посмотрите, действительно ли модуль загружен правильно:
источник
Насколько я вижу, вы не загрузили модуль mod_wsgi в свой
httpd.conf
.Сначала я бы попытался добавить файлы wsgi в
mods-enabled
каталог Apache.Затем перезапустите Apache, и он должен работать.
источник
Сначала убедитесь, что модуль WSGI действительно установлен:
Это должно дать вам вывод, включая имя, версию и т. Д. - ищите буквы слева от имени, это указывает на текущее состояние пакета. Чтобы проверить вручную, посмотрите в / etc / apache2 / mods-available /, и вы должны увидеть и wsgi.conf, и wsgi.load . Если они существуют, они должны иметь соответствующие символические ссылки в / etc / apache2 / mods-enabled / .
Если какой- либо из них не существует, начните с того, что сначала исправьте - вы не можете интерпретировать код Python через apache, если apache не может найти интерпретатор. Кроме того, ваш скрипт test.py не будет работать с учетом настроенных вами директив AddHandler - эта директива сообщает apache передавать файлы с определенным расширением соответствующему обработчику. Создайте свой скрипт test.wsgi или измените директиву AddHandler .
источник
Вы добавили строку LoadModule для фактической загрузки mod_wsgi? Что такое сообщение об ошибке и откуда оно приходит? Видеть:
http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide
для инструкций низкого уровня. Поскольку вы используете бинарные пакеты, вы можете пропустить компиляцию, но вам все равно нужно вызвать загрузку mod_wsgi. Где и как вы можете это сделать, будет в определенной степени определяться вашим дистрибутивом Linux. На основании этого руководства вы должны выполнить:
Вы на самом деле это сделали?
РЕДАКТИРОВАТЬ
Читая ваш вопрос еще раз, это очевидно. Вы сказали, что файлы с расширением .wsgi обрабатываются mod_wsgi, но затем вы дали файлу расширение .py. Вместо этого используйте .wsgi.
источник
Вы можете посмотреть на синтаксис вашего питона в первую очередь. Проверьте, действительно ли у вас есть 4 пробела после определения функции. Проверьте файл python, запустив его сначала через терминал
затем, если ошибки не появляются, запустите его через веб-браузер.
HTTP: // локальный / WSGI /
и, кстати, вы, кажется, что-то упустили для вашего файла конфигурации Apache / Virtualhost. Поместите это в теги
Кстати, у apt нет проблем при установке модуля wsgi. Я только что проверил это и успешно запустил скрипт Python в своем веб-браузере.
источник
Не уверен, что это актуально, но после запуска:
... следующие файлы ничего не существует:
Переустановка не заменяет отсутствующие файлы. Weird! Тем не менее,
purge
казалось, сделать трюк:источник