Я пытаюсь заставить web.py работать.
Я скомпилировал mod_wsgi для использования python2.6 и правильно настроил свой виртуальный хост (по крайней мере, я почти уверен, что это так!). Приложение hello, world продолжает отображаться как 404. Я изменил уровень логирования Apache на info. и вижу следующее:
[Wed Sep 28 15:41:12 2011] [info] mod_wsgi (pid=25969): Attach interpreter ''.
[Wed Sep 28 15:42:55 2011] [info] mod_wsgi (pid=25969): Create interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroying interpreters.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroy interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Cleanup interpreter ''.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Terminating Python.
[Wed Sep 28 15:45:33 2011] [error] Exception KeyError: KeyError(-1216178416,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Python has shutdown.
Fatal Python error: Interpreter not initialized (version mismatch?)
Что касается KeyError, я действительно не уверен, откуда это. Я протестировал приложение из командной строки (python26 code.py), и оно выполняется без ошибок. Фактически, это не дает никакого вывода.
На всякий случай вот моя конфигурация VirtualHost, а также код приложения:
Код Python (взят непосредственно с сайта web.py):
#!/usr/bin/python26
import web
urls = (
'/.*', 'index'
)
class index:
def GET(self):
return "Hello, world!"
app = web.application(urls,globals()).wsgifunc()
VirtualHost:
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin "tom@turnleftllc.com"
ServerName clearpoint.turnleftllc.com
ServerAlias clearpoint
ErrorLog logs/clearpoint_error_log
DocumentRoot /home/turnleftllc/public_html/cpccs
WSGIScriptAlias /budgetCalculator /home/turnleftllc/public_html/cpccs/apps/code.py
Alias /budgetCalculator/static /home/turnleftllc/public_html/cpccs/apps/static
AddType text/html .py
<Directory /home/turnleftllc/public_html/cpccs>
Order allow,deny
Allow from all
AllowOverride All
</Directory>
<Directory /home/turnleftllc/public_html/cpccs/apps>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Я использую CentOS5, по умолчанию - python2.4. Я удалил и перекомпилировал mod_wsgi для python2.6 (как вы можете видеть в выходных данных, он определенно инициализирует 2.6).
Любая помощь будет принята с благодарностью!
Убедитесь, что вы все еще не загружаете mod_python в тот же Apache.
Прочтите следующее и подтвердите свою установку.
http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Installation_In_Use
http://code.google.com/p/modwsgi/wiki/InstallationIssues
Сообщение KeyError связано с тем, что вы используете старую версию mod_wsgi, а не последнюю, поэтому, если вы создавали из исходного кода, убедитесь, что вы использовали mod_wsgi 3.3.