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.
django==1.11.
django-celery==3.2.
celery==3.1.
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= 启动: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:

安装:

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

.解压:tar xzvf redis-4.0..tar.gz

.安装
  cd redis-4.0.
  make
  cd src
  make install PREFIX=/usr/local/redis
.移动配置文件到安装目录下   cd ../
  mkdir /usr/local/redis/etc
  mv redis.conf /usr/local/redis/etc
.配置redis为后台启动
  vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes
.将redis加入到开机启动(也可以不要,但机器重启要记得手动开启)
  vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
.开启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. //删除redis解压文件夹

mysql:

、下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
、解压:tar -zxvf mysql-5.6.-linux-glibc2.-x86_64.tar.gz
#复制解压后的mysql目录
cp -r mysql-5.6.-linux-glibc2.-x86_64 /usr/local/mysql
、添加用户组和用户
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
、安装
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 /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=
daemonize=/home/www/nops/v_uwsgi.log
socket = 0.0.0.0:
#真实服务的端口
#http = 0.0.0.0:

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

启动:uwsgi --ini uwsgi.ini

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

7.安装配置nginx

yum install nginx

安装nginx

然后添加配置文件:

  server
{
listen ;
server_name nops.com;
index index.html;
location / {
root /home/www/nops;
##uwsgi
uwsgi_pass 127.0.0.1:;
include uwsgi_params;
uwsgi_param UWSGI_CHDIR /home/www/nops;
uwsgi_param UWSGI_SCRIPT wsgi;
}
location ~ .*\.(log|php|pl|py|sh|cgi)$ {
return ;
}
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端口即可看到项目

django-内网项目上线测试部署步骤的更多相关文章

  1. django项目上线环境部署

    django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...

  2. Vue项目上线环境部署,项目优化策略,生成打包报告,及上线相关配置

    Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用来方便快速地搭建易于扩展的网络应用.Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻量 ...

  3. Centos下内网DNS主从环境部署记录

    一.DNS是什么?DNS(Domain Name System),即域名系统.它使用层次结构的命名系统,将域名和IP地址相互映射,形成一个分布式数据库系统. DNS采用C-S架构,服务器端工作在UDP ...

  4. GNS3内网配置虚拟机测试

    一.背景:考虑在GNS3内网配置一台虚拟机系统,用于大流量测试. 二.环境: 1.win10系统已安装:GNS3和配套GNS3VM虚拟机(版本号:2.2.7):vmware虚拟机winxp(名称为:W ...

  5. [Xcode 实际操作]九、实用进阶-(30)为IAP(支付方式)内购项目添加测试账号,测试内购功能

    目录:[Swift]Xcode实际操作 本文将演示如何添加测试账号,以方便对内购功能进行测试. IAP,即in-App Purchase ,是一种智能移动终端应用程序付费的模式, 在苹果(Apple) ...

  6. windows(Linux)创建”内网穿透“工具(通过自定义域名访问部署于内网的 web 服务,可以用于调试微信支付,支付宝支付,微信公众号等开发项目)

    此方法需要自有服务器和域名,如果没有这些的开发者, 可以参考钉钉提供的内网穿透方式:https://www.cnblogs.com/pxblog/p/13862376.html 一.准备工作 1.域名 ...

  7. Linux系统如何在离线环境或内网环境安装部署Docker服务和其他服务

    如何在离线环境或纯内网环境的Linux机器上安装部署Docker服务或其他服务.本次我们以Docker服务和Ansible服务为例. 获取指定服务的所有rpm包 保证要获取rpm包的机器能够上网. 本 ...

  8. 公司内网搭建代理DNS使用内网域名代替ip地址

    企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随 ...

  9. 搭建基于HTTP协议内网yum仓库

    目录 1. 前言 2. 把rpm包下载到本地 3. 配置nginx对外提供服务 4. 配置本地repo文件 5. 生成repodata信息 6. 检查及使用 7. 对管理机器上的仓库进行更新 参考资料 ...

随机推荐

  1. 剑指Offer 18. 二叉树的镜像 (二叉树)

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  2. springBoot的数据库操作

    一:操作数据库起步 1.Spring-Data-Jpa JPA定义了对象持久化的标准. 目前实现了有Hibernate,TopLink 2.pom添加依赖 <dependency> < ...

  3. 支付宝电脑支付沙箱配置(JAVA)

    支付宝电脑支付API地址:https://docs.open.alipay.com/270/105899/.支付宝提供了沙箱环境提供测试,具体配置步骤如下 1.先下载测试DEMO工程 下载地址:htt ...

  4. 关于IT行业加班的问题

    众所周知,所有行业中,IT行业加班最为严重,国内比较大的IT公司都有加班文化. 为什么要加班?有的时候加班是为了项目上线,因为正在运行的项目,在晚上的时候访问量是最小的,这个时候做系统更新是损失最小的 ...

  5. jQuery-2.DOM---创建节点及节点属性

    DOM创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 试想下这样的情况:如 ...

  6. C/C++ 宏技巧

    1. C 也可以模板化 #define DEFINE_ARRAY_TYPE(array_type_, element_type_) \ static inline int array_type_ ## ...

  7. idea快捷键的设置

    因为开始学java被培训机构里的无良老师给带偏,"染上了"MyEclipse的快捷键"恶习",于是很难改了. 所以,在使用idea时,要设置快捷键了,快点适应之 ...

  8. 2018.4.26 lvm

    lvm(Logical Volume Manager)逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 基本概念: 1. 物理卷-----PV(Physical Volume)物理卷在逻辑 ...

  9. springdata笔记2

    SpringData整合hibernate CRUD操作: pom.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  10. Unity Shader 矩阵基本信息

    基本信息 mul函数 mul函数,是表示矩阵M和向量V进行点乘,得到一个向量Z,这个向量Z就是对向量V进行矩阵变换后得到的值.  HLSL的mul函数接受mul(V, M)或mul(M, V),要注意 ...