[program:tornado_oa-9003]
command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/ githublearning/system-foro_a/oa_web/run.py --port=9003
autostart=true
autorestart=true
[program:dgango_oa]
command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/ githublearning/system-foro_a/oa_admin/manage.py runserver
autostart=true
autorestart=true
安装virtualenv (用于创建独立的Python环境,多个Python互相独立,互不影响)
sudo apt-get install python-virtualenv
如:创建**ENV**的虚拟环境
virtualenv ENV
启动虚拟环境
cd ENV
source ./bin/activate
退出虚拟环境:
接下来所有模块都只会安装到该目录中去:pip install **
deactivate
../env/bin/pipinstall -r requirement.txt进行批量安装:
requirement.txt里面内容为:
Django==1.5
django-grappelli==2.4.8 #×××××××用来进行django 的admin功能进行界面美化的
south
MySQL-python
tornado==3.1.1
xlrd #××××××作为操作xlrd的
中间可能会碰到不能安装MySQL-python的情况那就要先
1安装mysql-server mysql-client
2 sudo apt-get install build-essential python-dev libmysqlclient-dev
如果有时碰到如下面的问题:
Traceback(most recent call last):
File"run.py", line 3, in <module>
fromoa_web.settings import settings
File"/home/administrator/www/pinhui_oa/oa_web/oa_web/settings.py",line 5, in <module>
fromoa_admin.init import init_django_settings
ImportError:No module named oa_admin.init
那是因为没有连接库:链接一个库到python的site-packages中:
administrator@ubuntu:~/www/pinhui_oa/oa_web/env/lib/python2.7/site-packages$ln -s ~/www/pinhui_oa/oa_admin/oa_admin/ .
我自己开发的环境为了方便开发时启动服务器而编写的脚本:
python编写 启动web,admin服务器的脚本:
#!/usr/bin/python
#start web tornado server and dgango server
"""
use subprocess to run run.py
and os.system to run manage.py
"""
import os.path as osp
import os
import sys
import subprocess
path = osp.abspath(osp.dirname(__file__))
tornadoserverpath = path+'/pinhui_oa/oa_web'
dgangoserverpath = path+'/pinhui_oa/oa_admin'
pythonenv = path+'/env/bin/python'
#add sys.path for tornado dgango
sys.path.append(tornadoserverpath)
sys.path.append(dgangoserverpath)
#fork process for run.py and then exec manage.
print "%s" %(sys.argv[0])
subprocess.Popen('env/bin/python %s/run.py' %tornadoserverpath,shell=True)
os.system('env/bin/python %s/manage.py "runserver"' %dgangoserverpath)
在生产环境的时候一般用supervisord来进行启动程序的监控进行自动重启工作:
1:生成和编辑 supervisord.conf进行要添加的进程如下面:
[program:nginx]
command=/usr/local/nginx/sbin/nginx
priority=1
numprocs=1
autostart=true
autorestart=true
[program:tornado_oa-9000]
command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/ githublearning/system-foro_a/oa_web/run.py --port=9000
autostart=true
autorestart=true
[program:tornado_oa-9003]
command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/ githublearning/system-foro_a/oa_web/run.py --port=9003
autostart=true
autorestart=true
[program:dgango_oa]
command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/ githublearning/system-foro_a/oa_admin/manage.py runserver
autostart=true
autorestart=true
2.添加可视化管理功能 修改/etc/supersord.conf
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.2:9001 ; (ip_address:port specifier, *:port for all iface)username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))
3.运行supervisord
sudo supervisord -c /etc/supervisord.conf
4.supervisord操作命令 先用 supervisorctl进入命令环境,然后查看--help进行操作,可以通过reload等进行控制
注意:要以root形式运行supervisord,避免有些程序因为权限问题不能启动。