源码下载:git clone https://github.com/oldtian/Oliver.git
1、安装以下软件
1.1 安装nginx
安装过程略
1.2 安装mysql
安装过程略
1.3 安装python2.7.10
升级安装python2.7.10
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz tar -zxf Python-2.7.10.tgz cd Python-2.7.10 ./configure make all make install make clean make distclean
查看版本
/usr/local/bin/python2.7 -V
建议软链接
mv /usr/bin/python /usr/bin/python2.6.6 ln -s /usr/local/bin/python2.7 /usr/bin/python
重新验证版本
python -V
1.4 安装setuptools
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.2.tar.gz tar -zxf setuptools-19.2.tar.gz cd setuptools-19.2 python setup.py install
1.5 安装pip8.1.1
wget https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz tar -zxf pip-8.1.1.tar.gz cd pip-8.1.1 python setup.py install
2、关闭selinux并开放iptables的80端口
setenforce 0 sed -i '/^SELINUX=/{s/enforcing/disabled/}' /etc/sysconfig/selinux sed -i '/^SELINUX=/{s/enforcing/disabled/}' /etc/selinux/config iptables -I INPUT 4 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT /etc/init.d/iptables save
3、pip安装如下包
pip install supervisor pip install uwsgi pip install ansible==1.9.4 pip install Django==1.8.3 pip install django-users2 pip install MySQL-python pip install rpyc
4、创建uwsgi.ini
建议放置在项目所在目录下
[uwsgi] socket = /tmp/oliver.sock #nginx需要使用到的socket文件 chdir=/opt/www/oliver #切换到项目所在目录 wsgi-file = Oliver/wsgi.py #wsgi.py主程序入口,加载相应环境 touch-reload=/opt/www/oliver/reload #touch一个空白的reload文件,项目重启 processes = 2 #初始启动进程数 threads = 4 chmod-socket = 664#socket文件的属性 chown-socket = nginx:nginx#socket文件的属主和属组
5、创建supervisor配置文件
echo_supervisord_conf > /etc/supervisord.conf
6、编辑supervisor配置文件
在/etc/supervisord.conf末尾追加
[program:oliver] #oliver是supervisor管理的进程名 command=/usr/local/bin/uwsgi --ini /www/oliver/uwsgi.ini directory=/www/oliver startsecs=0 stopwaitsecs=0 autostart=true autorestart=true
7、启动supervisor
supervisord -c /etc/supervisord.conf
查看/tmp/oliver.sock文件是否存在,如果不存在可先将/tmp目录下文件删除,然后再一次执行上面的命令
supervisor管理进程命令:
停止进程:
supervisorctl -c /etc/supervisord.conf stop oliver
启动进程:
supervisorctl -c /etc/supervisord.conf start oliver
重启进程:
supervisorctl -c /etc/supervisord.conf restart oliver
8、修改nginx配置
nginx的配置文件中添加虚拟主机配置:
server { listen 80; server_name localhost; charset utf-8; client_max_body_size 8M; location /media { alias /www/oliver/media; } location /static { alias /www/oliver/static; } location / { uwsgi_pass unix:///tmp/oliver.sock; include /opt/application/nginx/conf/uwsgi_params; } }
django仅在开发模式可加载setting.py配置中指定目录下的静态文件,在生产环境要 通过nginx配置来加载静态文件,创建static和media目录。
9、添加网站监控脚本到定时任务
*/5 * * * * /usr/local/bin/python /www/oliver/webapi/sniffer.py >/dev/null 2>&1
10、在需要做安全审计的主机的/etc/profile文件中添加如下配置
HISTSIZE=1200 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE export HISTCONTROL=ignoredups export HISTFILE=$HOME/.bash_history export HISTFILESIZE=1200 export HISTTIMEFORMAT="`whoami` %F %T " export PROMPT_COMMAND="history -a; history -c; history -r;"'/www/OMAudit/OMAudit_agent.py $(history 1)' shopt -s histappend typeset -r PROMPT_COMMAND typeset -r HISTTIMEFORMAT
11、搜集静态文件到指定目录
在setting.py中配置STATIC_ROOT来指定搜集静态文件存放目录:
python manage.py collectstatic
每次修改静态文件内容,也需要执行一次以上命令,否则修改后的内容nginx加载不到
12、同步数据库
python manage.py makemigrations python manage.py migrate
13、启动OliverServer主进程
python OliverServer.py &
13、重启nginx和supervisor
service nginx restart supervisorctl -c /etc/supervisord.conf restart oliver