空余时间想测试个web.py,经过多次搜索终于成功运行web.py,过程如下:
在已有LNMP环境下(如果还没有装好环境,可参考Debian 源安装 NGINX+PHP+MYSQL)
安装Web.py
1 2 3 4 5 | apt-get install python-setuptools easy_install flup easy_install web.py easy_install Jinja2 easy_install MySQL-python |
配置Web.py
1 | mkdir -p /home/www/jymmbb |
vi /etc/nginx/vhost/jymmbb.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | server { listen 80; server_name dev.jymmbb.com; root /home/www/jymmbb; location / { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_pass 127.0.0.1:9002; } location /static/ { if (-f $request_filename) { rewrite ^/static/(.*)$ /static/$1 break; } } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } access_log /home/log/jymmbb.log access; } |
重启Nginx
1 | /etc/init.d/nginx restart |
测试Web.py
vi /home/www/jymmbb/main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/usr/bin/env python # -*- coding: utf-8 -*- import web urls = ("/.*", "hello") app = web.application(urls, globals()) class hello: def GET(self): return 'Hello, world!' if __name__ == "__main__": web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr) app.run() |
添加权限
1 2 | chown -R www-data:www-data /home/www chmod +x /home/www/jymmbb/main.py |
启动
1 | /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9002 -d /home/www/jymmbb -f /home/www/jymmbb/main.py |
关闭
1 | kill `pgrep -f "python /home/www/jymmbb/main.py"` |
如果需要检查应用程序是否运行,使用
1 | ps aux|grep main.py |