Requirements

Note, on CentOS compiling mod_fcgid requires apache-devel be installed (available via yum).

##Apache Configuration

Replace ‘/var/www/myapp/’ with the path to your apps directory

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule fcgid_module modules/mod_fcgid.so

SocketPath /tmp/fcgidsock
SharememPath /tmp/fcgid_shm

Alias /static "/var/www/myapp/static"
Alias / "/var/www/myapp/"
<Directory "/var/www/myapp/">
    allow from all
    SetHandler fcgid-script    
    Options +ExecCGI
    AllowOverride None
    <IfModule mod_rewrite.c>      
       RewriteEngine on
       RewriteBase /
       RewriteCond %{REQUEST_URI} !^/icons
       RewriteCond %{REQUEST_URI} !^/favicon.ico$
       RewriteCond %{REQUEST_URI} !^(/.*)+code.py/
       RewriteRule ^(.*)$ code.py/$1 [PT]
    </IfModule>
</Directory>

<Directory "/var/www/myapp/static">
      allow from all
      AllowOverride None
      Options -ExecCGI
      SetHandler None
  </Directory>

Hello World

Note the following line is required: web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)

#!/usr/bin/python

import web

urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello: 
    def GET(self):
    return 'Hello, world!'

web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
if __name__ == "__main__":
    app.run()

Run

  1. Start your server.
  2. Open your application with your browser
  3. To confirm your application is running try:

ps aux | grep code.py

Troubleshooting


###Check your apache error log for information!


##Common problems

###File permissions. You might see error code 255 in your logs. Ensure the directory is readable and that code. py is executable:

chmod +x code.py

###404 Not Found. Is your Alias path correct in your apache configuration?

###Other problems Web.py spawns http://0.0.0.0:8080, dies unexpectedly, or returns nothing. Did you add this line?

 web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)

#Misc After updating your application you may need to restart your web server to see the changes.

继续阅读关于 的文章


欢迎订阅我的微信公众帐号,只推送原创文字。欢迎扫描二维码订阅:
justjavac微信公众帐号


无觅相关文章插件,快速提升流量
Fork me on GitHub