1.安装python环境

由于测试环境只有内网,所以在外网同系统上安装python.

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ zlib* sqlite-devel

mkdir /home/python3 

xz –d Python-3.6.5.tgz.xz

tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5

./configure --prefix=/home/python3

make && make install

2.安装django等第三方库

/home/python3/bin/pip3   install -r requirements.txt     #该文件一般放在项目目录上

request
pymysql
paramiko
pymongo==3.7.0
django==1.11.10
django-celery==3.2.1
celery==3.1.20
redis

用django 新建个项目测试测试,有少库的,就装上

/home/python3/bin/django-admin startproject newtest

/home/python3/bin/python3 manage.py runserver 0.0.0.0:8087  运行没错就下一步,有错就根据错误信息解决,一般少库就装库。

 如报这个错:

File "/home/python3/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 198, in get_new_connection
conn = Database.connect(**conn_params)
django.db.utils.NotSupportedError: URIs not supported
^Z
[1]+ Stopped /home/python3/bin/python3 manage.py runserver 0.0.0.0:8087

原因分析,这是sqlite3版本3.7的通病,安装3.8的就可以,这里我采用修改源码的方式,直接打开

"/home/python3/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py"这个文件,修改修改大概198行,通过搜索uri查找。
        # between multiple threads. The safe-guarding will be handled at a
        # higher level by the `BaseDatabaseWrapper.allow_thread_sharing`
        # property. This is necessary as the shareability is disabled by
        # default in pysqlite and it cannot be changed once a connection is
        # opened.
        if 'check_same_thread' in kwargs and kwargs['check_same_thread']:
            warnings.warn(
                'The `check_same_thread` option was provided and set to '
                'True. It will be overridden with False. Use the '
                '`DatabaseWrapper.allow_thread_sharing` property instead '
                'for controlling thread shareability.',
                RuntimeWarning
            )
        kwargs.update({'check_same_thread': False})
        if self.features.can_share_in_memory_db:
            kwargs.update({'uri': False})  #这里原来是True,修改为False就可以了
        return kwargs

3.安装数据库

mongodb:

下载:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz 
解压可用
ln -s /home/mongodb/bin/mongo /usr/local/bin/mongo
ln -s /home/mongodb/bin/mongod /usr/local/bin/mongod 添加到环境变量

在mongodb文件夹再里创建三个文件夹:
mkdir data //用来存放数据库数据
mkdir logs //用来存放日志文件
mkdir etc //用来存放配置文件

接下来,进入到logs文件夹里创建 mongo.log文件:touch mongo.log
再到etc文件夹里创建 mongo.conf文件:touch mongo.conf
通过vi命令打开mongo.conf编辑内容:
vi mongo.conf

dbpath=/home/mongodb/data
logpath=/home/mongodb/logs/mongo.log
logappend=true
journal=true
quiet=true
port=27017

启动:mongod -f /home/mongodb/etc/mongo.conf
另一个窗口:
mongo
use admin
db.createUser({user:"admin",pwd:"mima",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]}) 创建管理员
use filedb
db.createUser({user:"file",pwd:"mima",roles:[{"role":"readWrite","db":"filedb"}]}) 创建普通用户
启动:mongod -f /home/mongodb/etc/mongo.conf --fork --auth
停:kill 或者rm /home/mongodb/data/mongod.lock

redis:

安装:

1.下载:wget http://download.redis.io/releases/redis-4.0.8.tar.gz

2.解压:tar xzvf redis-4.0.8.tar.gz

3.安装
  cd redis-4.0.8
  make
  cd src
  make install PREFIX=/usr/local/redis  
4.移动配置文件到安装目录下

  cd ../
  mkdir /usr/local/redis/etc
  mv redis.conf /usr/local/redis/etc
 5.配置redis为后台启动
  vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes
6.将redis加入到开机启动(也可以不要,但机器重启要记得手动开启)
  vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
7.开启redis
  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 
常用命令  
  redis-server /usr/local/redis/etc/redis.conf //启动redis
  pkill redis  //停止redis
  卸载redis:
    rm -rf /usr/local/redis //删除安装目录
    rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
    rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹

mysql:

1下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2、解压tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
#复制解压后的mysql目录
cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
3、添加用户组和用户
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
4、安装
cd /usr/local/mysql/
mkdir ./data/mysql chown -R mysql:mysql ./ ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql cp support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld cp support-files/my-default.cnf /etc/my.cnf #修改启动脚本 vi /etc/init.d/mysqld #修改项: basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/mysql #启动服务 service mysqld start #测试连接 ./mysql/bin/mysql -uroot #加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了 export PATH=$PATH:/usr/local/mysql //bin
source /etc/profile
#启动mysql service mysqld start #关闭mysql service mysqld stop #查看运行状态 service mysqld status

  修改mysql的登录密码

  >mysql  set password=password('root');

  >mysql  grant all privileges on *.* to root@'%' identified by 'root';

  >mysql  flush privileges;

 

yum install mariadb-server mariadb  #有做离线源的也可以这么做

4.配置项目

拷贝nops这个项目的文件到服务器上,例如 /home/www 这个目录

添加权限:chomd +x /home 

视情况可将 /home 修改为nginx用户: chown -r nginx:nginx /home

修改配置: \home\www\nops\nops\settings.py

把里面数据库配置都修改为我们创建的

5.启动

因为我们的项目用了celery 所以先要启动这个

后台启动celery: 

/home/python3/bin/python3 /home/www/nops/manage.py celery worker --loglevel=info >/dev/null 2>&1 &
有定时任务的话,还需要启动心跳:
/home/python3/bin/python3 /home/www/nops/manage.py celery beat >> /home/www/nops/celery.log 2>&1 &

启动项目:  先

/home/python3/bin/python3 /home/www/nops/manage.py runserver 0.0.0.0:8087 

测试没问题就可以配置uwsgi

6.使用uwsgi部署

安装 uwsgi

sudo  pip install uwsgi --upgrade

使用 uwsgi 运行项目

uwsgi --http :8001 --chdir /home/www/nops  --module nops.wsgi

这样就可以跑了,project.wsgi 指的是 /home/www/nops/wsgi.py 文件

这样只是测试,正式环境下:

先编写uwsgi.ini文件:

[uwsgi]
#home=/home/qitanl/pyenv/soms
chdir=/home/www/nops
# Django项目根目录 (绝对路径)
module=nops.wsgi:application 
master=True 
# process-related settings
# master
pidfile=/home/www/nops/vm.pid 
vacuum=True
# clear environment on exit
max-requests=1000 
daemonize=/home/www/nops/v_uwsgi.log
socket = 0.0.0.0:10000
#真实服务的端口
#http = 0.0.0.0:8082

其中soms 改为只能项目名字就行。#是注释掉的,这里保留做学习助于理解。

启动:uwsgi --ini uwsgi.ini

启动成功后uwsgi会占用10000端口运行该项目,但要注意这里没配http,所以不能直接用http访问。

7.安装配置nginx

yum install nginx

安装nginx

然后添加配置文件:

  server
{
    listen 8082;
    server_name nops.com;
    index index.html;
    location / {
        root /home/www/nops;
        ##uwsgi
        uwsgi_pass 127.0.0.1:10000;
        include uwsgi_params;
        uwsgi_param UWSGI_CHDIR /home/www/nops;
        uwsgi_param UWSGI_SCRIPT wsgi;
    }
    location ~ .*\.(log|php|pl|py|sh|cgi)$ {
        return 403;
    }
    location /static/ {
        alias /home/www/nops/static;
        autoindex on;
    }
    location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
        root /home/www/nops;
        expires 30d;
    }
    location ~ .*\.(js|css)?(.*)
    {
        root /home/www/nops;
        expires      12h;
    }
}

重启:

cd /etc/rc.d/init.d
# ./nginx stop
Stopping nginx: [ OK ]
# ./nginx start
Starting nginx:   [ OK ]

到此访问: ip:8082端口即可看到项目

 

posted on 2018-08-01 08:34  聪神carry  阅读(1370)  评论(0编辑  收藏  举报