2013-05-19 26 views
2

我在配置nginx以使用Python3.2時遇到了一些問題。我也在努力尋找類似於這個主題的體面教程。但是,我找到了一個體面的教程,讓nginx能夠和Python2.7一起玩。我的思考過程是,由於uwsgi使用插件,因此遵循Python2.7教程並換出python插件應該是一個相對簡單的練習。將nginx配置爲使用python3.2

這裏是我也跟着得到一個基本的Hello World網站工作教程:https://library.linode.com/web-servers/nginx/python-uwsgi/ubuntu-12.04-precise-pangolin

/etc/uwsgi/apps_available/my_site_url.xml樣子:

<uwsgi> 
    <plugin>python</plugin> 
    <socket>/run/uwsgi/app/my_site_urlmy_site_url.socket</socket> 
    <pythonpath>/srv/www/my_site_url/application/</pythonpath> 
    <app mountpoint="/"> 
     <script>wsgi_configuration_module</script> 
    </app> 
    <master/> 
    <processes>4</processes> 
    <harakiri>60</harakiri> 
    <reload-mercy>8</reload-mercy> 
    <cpu-affinity>1</cpu-affinity> 
    <stats>/tmp/stats.socket</stats> 
    <max-requests>2000</max-requests> 
    <limit-as>512</limit-as> 
    <reload-on-as>256</reload-on-as> 
    <reload-on-rss>192</reload-on-rss> 
    <no-orphans/> 
    <vacuum/> 
</uwsgi> 

一旦一切工作安裝uwsgi -plugin-python3通過apt-get。 ls -l /usr/lib/uwsgi/plugins/現在輸出:

-rw-r--r-- 1 root root 142936 Jul 17 2012 python27_plugin.so 
-rw-r--r-- 1 root root 147192 Jul 17 2012 python32_plugin.so 
lrwxrwxrwx 1 root root  38 May 17 11:44 python3_plugin.so -> /etc/alternatives/uwsgi-plugin-python3 
lrwxrwxrwx 1 root root  37 May 18 12:14 python_plugin.so -> /etc/alternatives/uwsgi-plugin-python 

改變my_site_url.xml pythonpython3python32有同樣的效果,即:

  • 世界您好頁面需要年齡加載(它是有效instantanious前)然後出現空白
  • 我的網站的訪問日誌記錄訪問
  • 我的網站的錯誤日誌記錄沒有新的錯誤
  • /var/log/uwsgi/app/my_site_url.log記錄以下:

    [PID:4503 |應用程式:0 | REQ:1/2] 192.168.1.5(){42個VARS在630個字節} [太陽5月19日10點49分12秒2013] GET/=>在0毫秒產生的0字節(HTTP/1.1 200)2頭65個字節(1個開關核心0)

所以我的問題是:

我怎樣才能正確配置此應用程式,在Python3.2

工作

回答

2

列出的教程有以下應用A n個碼:

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] 

這是不相容與python3.2因爲它需要一個字節對象。用以下修補程序替換應用程序功能:

def application(env, start_response): 
    start_response('200 OK', [('Content-Type','text/html')]) 
    return b"Hello World" 
+1

+1好。也許添加一個鏈接到uwsgi的[快速入門指南](http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html)? –