django前后端未分离项目部署

django+nginx+uwsgi 项目部署到linux服务端

1.配置supervisro工具
注意要退出虚拟环境
注意要退出虚拟环境
注意要退出虚拟环境

	1.安装easy_install 
	pip3是python3的软件包管理工具
	easy_install 是python2的软件包管理工具
	
	yum install python-setuptools

	2.安装supervisor
	easy_install supervisor
	
	3.创建supervisor的配置文件
	
	echo_supervisord_conf >  /etc/supervisor.conf 

	4.修改supervisor的配置文件,添加启动uwsgi的命令
	
	supervisor其实就是帮咱们执行了,需要手动执行的命令而已 
	vim /etc/supervisor.conf
	写入如下内容,在最底部写
[program:s18crm]
command=/root/Envs/nginx_crm/bin/uwsgi  --ini /opt/Crm_Project/uwsgi.ini
stopasgroup=true
killasgroup=true



	5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出
	5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出
	5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出
	5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出
	
supervisord -c  /etc/supervisor.conf   #这是启动supervisor服务端命令

supervisorctl -c /etc/supervisor.conf 	#这是supervisor客户端管理命令

	6.学习supervisor的命令
	
	status s18crm #查看状态
	start s18crm  #启动任务
	stop  s18crm #停止任务
	
	start all  
	stop  all  #启停所有的任务
2.linux 下安装python的虚拟环境,virtualenv pipenv
1.安安装python的虚拟环境
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

2.是由cd 切换到一个位置,然后通过命令创建虚拟环境
virtualenv --no-site-packages --python=python3     venv1   #创建一个干净隔离的虚拟环境,且以python3为复制本体,虚拟环境名叫做venv1
	--no-site-packages  创建干净隔离的python虚拟环境
	--python=python3  
3.查看当前虚拟环境的PATH 变量
[root@wangdachui opt]# echo $PATH
/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

4.激活虚拟环境,再次查看环境变量
        在虚拟环境的bin目录下输入命令  
        进入虚拟环境
        source ./activate
        退出虚拟环境 
        deactivate
5.检查是否成功安装虚拟环境
	which python3
	which pip3
	pip3 list
	
6.退出虚拟环境,再检查python3解释器路径
        退出命令
        deactivate

7.闯将两个虚拟环境 venv1 venv2  分别运行django1 django2
    1.激活venv1 创建django1.11.14
    [root@wangdachui opt]# source   venv1/bin/activate
    2.安装django
    pip3 install -i https://pypi.douban.com/simple  django==1.11.14

    3.创建django项目 运行 
    django-admin startproject mydjango114


    4.创建venv2,创建django2版本
    virtualenv --no-site-packages --python=python3     venv2 

    激活venv2
    source   venv2/bin/activate
    下载django2版本,且创建django2项目
    pip3 install -i https://pypi.douban.com/simple  django
    创建django项目 运行 
    django-admin startproject mydjango21
3.将项目拷贝到服务器上,安装virtualenvwrapper工具
	1.安装 
		pip3 install virtualenvwrapper
	2.配置个人环境变量配置文件,每次登陆都启动virtualenvwrapper工具
		vim ~/.bashrc 
	3.写入加载变量,使得virtualenvwrapper每次开机可使用
		export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
		export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'  

		#添加virtualenvwrapper的参数,生成干净隔绝的环境
		export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3     #指定python解释器

		source /opt/python36/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
		
		
	4.退出回话,重新登录,查看工具是否安装
	
	5.学习virtualenvwrapper工具的命令
		1.创建新的虚拟环境
		mkvirtualenv mycrm
		
		2.切换多个虚拟环境
		workon 虚拟环境的名字
		
		3.列出所有的虚拟环境目录
		lsvirtualenv 
		
		4.进入当前激活的虚拟环境的目录
		cdvirtualenv 
4.创建一个虚拟环境

安装 virtualenv 和 virtualenvwrapper

  • 创建虚拟环境 mkvirtualenv 环境名
  • 进入虚拟环境 workon 环境名
  • 进入虚拟环境目录 cdvirtualenv
5.将windows本地项目所需的依赖包导出,服务器安装项目依赖包
将解释器中所有模块导出到文件中:`pip3 freeze > requirements.txt`
将这个 requirements.txt  文件传输到服务器上,进行安装,就可以自动解决所有模块问题
pip3 install -r requirements.txt  

指定豆瓣源:pip3 install  -r requirements.txt -i https://pypi.douban.com/simple 

6.虚拟环境下安装mariadb服务端
安装linux的mariadb服务端
		yum install mariadb-server   mariadb  mysql  -y
#启动mysql服务端
		systemctl start mariadb
#检查mysql是否启动
		1.查进程
		ps -ef |grep mariadb 
		2.查端口
		netstat -tunlp |grep 3306 

将数据从windows本地导入到linux服务端
  • 方法一

    #在window中通过命令导出数据库信息
           mysqldump -u root -p --all-databases > db.dump
    #找到这个db.dump传输到Linux中即可
    mysql -uroot -p  < /opt/Crm_Project/alldb.dump 
    
  • 方法二

    windows 下导入数据:
    导出:`mysqldump -u root -p 数据库名 > 文件路径(d:/db/test.sql)`
    linux环境下导入文件:
    mysql> create database abc;      # 创建数据库
    mysql> use abc;                  # 使用已创建的数据库 
    mysql> set names utf8;           # 设置编码
    mysql> source /home/abc/abc.sql  # 导入备份数据库
    
7.此时我们可以进行简单的测试,看看代码在linux服务端是否能正常运行,若能运行我们在使用nginx+uwsgi
  • 项目简单配置

    第一步
    废话不多说,第一步通过xftp软件把Django项目文件传到服务器上。
    
    第二步
    在服务器中安装Django需要的环境和我所需要的Python第三方库。
    
    第三步
    以上所有步骤完成后,还需要进行一步操作,这是我经历的一个坑。 打开Django文件目录中的settings.py ,把ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=["*"]。
    
    最后一步
    在服务器中通过cd切换到项目文件有manage.py所在的目录,输入命令:
    python3 manage.py runserver 0.0.0.0:8000
    然后按下回车,在浏览器中输入:该服务器IP地址:8000,大功告成!
    
8.项目静态文件收集
  • 编辑项目的settings.py 写入如下参数

    STATIC_ROOT= '/opt/miniStatic' # 指定一个目录放置静态文件

  • 执行命令,收集crm所有的静态文件

    python manage.py collectstatic

8.如果在游览器能正常的访问linux服务器,此时我们安装uwsgi+nginx
  • nginx的安装及配置

    1.在linux上是否 通过yum安装了nginx
    	rpm -qi nginx
    2.安装nginx之前需要安装依赖包
    	yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
    3.源代码编译安装tenginx 	
    	1.下载淘宝nginx的源代码包
    	wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz
    	2.解压缩源代码
    	tar -zxvf tengine-2.3.0.tar.gz
    	3.切换进入nginx源代码目录 进行编译安装
    	cd  tengine-2.3.0
    	4.释放编译文件,指定安装路径
    	./configure --prefix=/opt/s18tngx/
    	5.开始编译且安装
    	make && make install 
    	6.卸载之前通过yum安装的nginx
    	yum remove nginx -y 
    	7.查看nginx的安装目录,有哪些东西
            [root@wangdachui s18tngx]# ls
            conf  存放nginx的配置文件目录的
            html 	存放前端文件的地儿
            logs 	存放nginx日志文件的目录
            sbin	存放nginx的可执行命令
        8.配置nginx的环境变量,支持快捷启动
            vim /etc/profile 
            写入
                			PATH="/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/s18tngx/sbin"
    	9.启动nginx
    	直接输入nginx命令
    	
    	
    
  • nginx反向代理配置文件修改

    代码如下
            location / {
            uwsgi_pass  0.0.0.0:8000;
            include uwsgi_params;
            }
            #这个location是解决静态文件的问题的
    location /static  {
    #alias参数 就是将/static转化为/opt/miniStatic ,也就找到了我们所有的静态文件
    alias /opt/miniStatic;
    }
    	
    
    • 重启nginx

      nginx -s reload

  • uwsgi安装及配置

    pip3 install uwsgi
    
  • 在项目文件下创建uwsgi.ini 启动文件

    cd 项目文件目录
    touch uwsgi.ini
    

    编辑uwsgi.ini文件

    # Django-related settings
    # the base directory (full path)
    #填写项目的绝对路径(第一层路径)
    chdir           = /opt/educaton0407
    # Django's wsgi file
    #填写crm第二层目录下的wsgi.py文件的路径
    module          = mini0407.wsgi
    # the virtualenv (full path)
    #填写虚拟环境的绝对路径
    home            = /root/Envs/education
    
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    #基于uwsgi的多进程,根据cpu来优化 
    processes       = 4
    # the socket (use the full path to be safe
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    socket          = 0.0.0.0:8000
    
    #如果你没用nginx,想直接通过浏览器测试后端,使用http 
    #http = 0.0.0.0:8000
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    

    启动uwsgi命令

    uwsgi --ini uwsgi.ini
    

    此时uwsgi正在运行,只要不用ctrl+c退出运行,项目会在后端一直的跑着

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
宝塔是一款Linux服务器管理软件,用于简化服务器管理和应用部署部署Django前后端分离项目的步骤如下: 1. **安装环境**: - 确保宝塔已安装Python、Nginx和MySQL等基础服务。 - 需要安装Django框架以及前端所需的Node.js和npm。 2. **创建新站点**: - 登录宝塔控制面板,在"网站管理"或者"应用"模块里点击“添加”创建一个新的Web应用,指定项目路径。 3. **配置域名和SSL**: - 绑定你的域名到宝塔提供的IP地址,并配置SSL证书,保证安全访问。 4. **设置静态文件处理**: - 在Nginx的配置中启用反向代理,例如将`/static`和`/media`目录指向你的Django项目的对应位置,可以使用`.htaccess`文件或nginx的location指令。 5. **Django项目部署**: - 将Django项目打包成.wsgi文件或使用uwsgi启动,这个文件通常放在项目的根目录下。 - 在宝塔的Nginx配置里添加对.wsgi文件的访问规则。 6. **数据库配置**: - 如果有数据库操作,需要在Django项目settings.py中配置数据库连接信息,包括引擎、主机、用户名、密码等。 7. **迁移和运行**: - 进入项目目录,执行`python manage.py migrate`进行数据库迁移。 - 启动Django应用:`python manage.py runserver` (仅限本地测试) 或者 `gunicorn your_project_name:application` (生产环境). 8. **前端部署**: - 使用Git或其他版本控制系统将前端代码推送到服务器相应目录,如public或者dist。 9. **监控和日志**: - 安装并配置好监控工具,以便了解应用性能和日志情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值