第一次在nginx上部署web2py花了我3天时间,找资料找得晕头转向,偏偏google这位大爷的了传染病,已经一个多星期都不能用了。唉,最后在我使尽了坑蒙拐骗偷这个终极绝招,这小子投降了。下面奉上我的部署脚本:
#!/bin/bash
echo 'setup-web2py-nginx-uwsgi-ubuntu-precise.sh'
echo 'Requires Ubuntu > 12.04 and installs Nginx + uWSGI + Web2py'# Get web2py admin password
echo "Web2py admin password:"
read  web2py_password
# Get webfaction application name
echo "Webfaction application name:"
read  webfaction_app_name
# Get webfaction port number
echo "Webfaction application port:"
read  webfaction_app_port
# port betweet nginx and uwsgi
echo "Port number for communication between nginx and uswgi (eg. 9001):"
read nginx_uwsgi_port
#获取app的地址
echo "svn_adderess of the project:"
read files_address
#routes.py中的控制器
echo 'app default_controller:'
read controler
#routes.py中的函数
echo 'app default_function:'
read functions
#安装svn
sudo aptitude install subversionmkdir /opt/${webfaction_app_name}
mkdir /opt/${webfaction_app_name}/down
cd /opt/${webfaction_app_name}/down#安装nginx
echo "install nginx---------------------"
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar -zxvf nginx-1.0.11.tar.gz
cd nginx-1.0.11
./configure \--prefix=/opt/${webfaction_app_name}/nginx \--sbin-path=/opt/${webfaction_app_name}/nginx/sbin/nginx \--conf-path=/opt/${webfaction_app_name}/nginx/nginx.conf \--error-log-path=/opt/${webfaction_app_name}/nginx/log/error.log \--pid-path=/opt/${webfaction_app_name}/nginx/run/nginx.pid  \--lock-path=/opt/${webfaction_app_name}/nginx/lock/nginx.lock \--with-http_gzip_static_module \--http-log-path=/opt/${webfaction_app_name}/nginx/log/access.log \--http-client-body-temp-path=/opt/${webfaction_app_name}/nginx/tmp/client/ \--http-proxy-temp-path=/opt/${webfaction_app_name}/nginx/tmp/proxy/ \--http-fastcgi-temp-path=/opt/${webfaction_app_name}/nginx/tmp/fcgi/
make && make install
cd /opt/${webfaction_app_name}/
mkdir logs
mkdir nginx/tmp
mkdir nginx/tmp/client
echo "config nginx----------------"
cd nginx
echo "
worker_processes  2;
events {worker_connections  1024;
}
http {access_log  /opt/${webfaction_app_name}/logs/access_appname.log  combined;error_log   /opt/${webfaction_app_name}/logs/error_appname.log   crit;include                mime.types;client_max_body_size   5m;default_type           application/octet-stream;gzip_static            on;gzip_vary              on;sendfile               on;tcp_nodelay            on;server {listen ${webfaction_app_port};server_name  localhost;location ~* /(\w+)/static/ {root /opt/${webfaction_app_name}/web2py/applications/;}location / {uwsgi_pass      127.0.0.1:${nginx_uwsgi_port};include         uwsgi_params;}}
}
" > nginx.conf
#安装uwsgi
echo "install uwsgi---------------------------------"
cd /opt/${webfaction_app_name}
mkdir uwsgi
cd /opt/${webfaction_app_name}/down
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar -zxvf  uwsgi-latest.tar.gz
cd uwsgi-2.0.5.1
#python setup.py install
make -f Makefile
cp uwsgi /opt/${webfaction_app_name}/uwsgi/
cd  /opt/${webfaction_app_name}/uwsgi
echo "<uwsgi><socket>127.0.0.1:${nginx_uwsgi_port}</socket><workers>4</workers><no-orphans/><pythonpath>/opt/${webfaction_app_name}/web2py</pythonpath><pidfile>/opt/${webfaction_app_name}/uwsgi/uwsgi.pid</pidfile><daemonize>/opt/${webfaction_app_name}/uwsgi/uwsgi.log</daemonize><mount>/=wsgihandler:application</mount>
</uwsgi>" > uwsgi.xml#安装web2py
echo "install web2py------------------"
cd /opt/${webfaction_app_name}
wget http://www.web2py.com/examples/static/web2py_src.zip
unzip web2py_src.zip
cp  web2py/handlers/wsgihandler.py  web2py/
cd web2py/
echo "default_application = '${webfaction_app_name}'
default_controller = '${controler}'
default_function = '${functions}'" > routes.py
python -c "from gluon.main import save_password;save_password('${web2py_password}',443)"
cd ..
rm  web2py_src.zip
cd /opt/${webfaction_app_name}/web2py/applications/
svn co ${files_address}
cd /opt/${webfaction_app_name}#nginx,uwsgi启动控制脚本
touch web2py_control.sh
echo "
#!/bin/bashinstall_path="/opt/${webfaction_app_name}"function killall(){ps -e | grep $1 | {while read pid tty time cmd; doecho "Killing $pid ==> $cmd"kill -9 $piddone
}
#exit
}function service_control(){if  [ $1 = nginx -a $2 = start ]; then$install_path/$1/sbin/nginx -c  $install_path/$1/nginx.confecho "nginx start ..... [ok]"exitelif [ $1 = nginx -a $2 = stop ]; thenkillall $1 -QUITecho "nginx stop ...... [ok]"exitelif [ $1 = nginx -a $2 = restart ]; thenkillall $1 -QUIT$install_path/$1/sbin/nginx  -c $install_path/$1/nginx.confecho "nginx restart ..... [ok]"exitelif [ $1 = "uwsgi" -a $2 = start ];then$install_path/$1/uwsgi -x $install_path/$1/uwsgi.xmlecho "uwsgi start ...... [ok]"exitelif [ $1 = "uwsgi" -a $2 = stop ];thenkillall $1 -QUITecho "uwsgi stop ...... [ok]"exitelif [ $1 = "uwsgi" -a $2 = restart ];thenkillall $1 -QUIT$install_path/$1/uwsgi  -x $install_path/$1/uwsgi.xmlecho "uwsgi restart ......[ok]"exit
fi
}
service_control $1 $2"> web2py_control.shchmod +x web2py_control.sh
# start nginx
/opt/${webfaction_app_name}/nginx/sbin/nginx -c /home/${webfaction_app_name}/nginx/nginx.conf# start uwsgi
/opt/${webfaction_app_name}/uwsgi/uwsgi -x /opt/${webfaction_app_name}/uwsgi/uwsgi.xml
rm -rf down

nginx+uwsgi部署web2py相关推荐

  1. nginx+uwsgi部署Django

    本篇文章主要介绍了解决nginx+uwsgi部署Django的所有问题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近,自己暑假写的小项目也算完毕了,想着投放 ...

  2. 【转】Nginx+uWSGI 部署 Django 应用

    原文来自: http://www.oschina.net/question/54100_30386 http://obmem.info/?p=703 常见的django webapp 部署方式采用FC ...

  3. 使用Nginx+uWSGI部署Django项目

    1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgiln ...

  4. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  5. centos7 下通过nginx+uwsgi部署django应用

    1. 安装python3.6 1. 获取wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz tar -xzvf Python-3 ...

  6. django+nginx+uwsgi部署web站点

    环境: django:1.8.16 python:2.7.13 pip:2.7 uwsgi:2.0.15 project路径: /opt/cmdb/ Uwsgi的安装配置 1.安装python2.7 ...

  7. Ubuntu nginx+uwsgi部署Django项目

    前提条件:首先项目使用一下命令启动成功后,输入公网ip后可以启动成功 python manage.py runserver 0.0.0.0:80 一.阿里云配置安全组 添加8000端口 二.安装配置u ...

  8. nginx+uwsgi 部署

    安装nginx 配置 nginx配置文件 usr/local/nginx/conf/nginx.conf location / { root html; index index.html index. ...

  9. Linux中 Nginx+uwsgi部署flask项目 Nginx负载均衡 反向代理

    Nginx是一款自由的.开源的.高性能HTTP服务器和反向代理服务器. 轻量级,同样起web服务,比 apache占用更少的内存及资源 抗并发, nginx处理请求是异步非阻塞的,而 apache则是 ...

最新文章

  1. SpringBoot + Redis 分布式锁:模拟抢单
  2. 利用现有资源快速实现汉语专用分词系统
  3. 成本、质量、人力资源要点
  4. C#调用C++ memcpy实现各种参数类型的内存拷贝 VS marshal.copy的实现 效率对比
  5. Android -- 带你从源码角度领悟Dagger2入门到放弃(一)
  6. 服务器双网卡设置安全_服务器硬件介绍之服务器主板
  7. 【WPF】绑定Hyperlink超链接
  8. 用Typescript 开发 node.js (方法2)
  9. c# html正则,c# 使用正则解析html
  10. ESXi社区版NVMe驱动更新v1.1
  11. html5视频全屏背景插件(支持全屏背景,标签实现)
  12. 记一次springboot应用偶发502错误的排查过程
  13. matlab 中的波浪号
  14. iPone实现快速切换表情输入法?
  15. perl中CPAN的安装
  16. Meterpreter后渗透模块命令字典
  17. c++ 中的生僻关键字
  18. 前端学习系列——(九)理解什么是ID选择器的“唯一性”
  19. 单片机读取obd_OBD_CAN读取代码(stm32f103)
  20. AcWing 0x00. 语法基础课【Python3】版题解-顺序/判断/循环语句

热门文章

  1. vue 数组对象 按时间排序
  2. 鉴释人物丨专访首席技术官陈新中:三十年磨一“鉴”, 打造静态代码分析行业标杆
  3. Latex中ACM-Reference-Format顺序与论文引用顺序不一致solution
  4. 即构推出AI智能课堂解决方案,加速AI老师落地应用
  5. mockup android素材,10款 iPhone 7 mockup 演示图素材(多种配色、多种视图)
  6. 新乡学院2019计算机报名,2019届毕业论文答辩工作安排
  7. 后端使用nodejs生成xlsx文件数据流,并返回给前端直接进行下载
  8. 微博视频、信息流总结
  9. 推荐一款好用的在线笔记工具evernote
  10. Wordpress 相册插件 NextGEN-Gallery 添加目录中文支持解决办法(转为拼音)