环境:centos7 x64 nginx-1.10.2 +uwsgi
项目:主要是自己尝试写的一个简单的CMDB项目,收集服务器信息,并进行简单的远程操作。
部署目的:部署到服务器看看效果
项目目录:/opt/PythonCMDB
一、环境安装:
这一步网上有很多教程,直接百度就行。这里直接yum安装,简要写一下:
基础开发环境: #yum groupinstall "Development tools" #yum install -y epel-release#yum install -y nginx#yum install -y gcc gcc-c++ zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel libxml*#yum install -y python-devel
#yum install -y python-pip
安装Python包:
#pip install paramiko
#pip install pillow
#pip install django==1.8.2
#pip install mysql-python
安装Nginx+uwsgi:
#pip install uwsgi
二、环境配置
1、uwsgi配置:
在项目目录/opt/PythonCMDB下新建一个cmdb_uwsgi.ini文件,具体配置如下:
2、nginx配置/etc/nginx/nginx.conf配置:
三、部署结果
启动uwsgi和nginx: uwsgi -i /opt/PythonCMDB/cmdb_uswgi.ini & systemctl start nginx
至此可以正常访问。
四、错误集合
1、刚开始项目直接放在/root目录下,导致/static静态文件无法加载:
解决方法:由于/root目录是root用户的家目录,而nginx进程默认是以nginx用户的身份运行,故无权限访问。项目放在非/root目录后可以正常访问。
2、网站访问出现paramiko模块的属性错误:
解决方法:是因为在centos7环境下,paramiko模块没有GSSException属性,所以需要将/usr/lib/python2.7/site-packages/paramiko目录下ssh_gss.py文件的GSS_EXCEPTIONS = (gssapi.GSSException,)注释掉:
3、网站访问出现paramiko下util模块的import导入错误:
解决方法:我是直接修改源文件,将/usr/lib/python2.7/site-packages/paramiko目录下transport.py文件中 from paramiko import util 注释,并将该文件中所有使用到util的替换为paramiko.util,需要注意如果有本来就是使用paramiko.util的不需要替换