django项目部署


...

curl -I www.baidu.com  得到响应头信息

vim 里shift + % 找括号的另一半

find / -name virtualenv

3.创建虚拟主机定义的网页根目录
mkdir -p /opt/static/{mytb,myjd}

nginx安装

1.dns解析流程

1.你要输入域名  pythonav.cn
2.你的机器首先在/etc/hosts文件中查找解析记录
3.会去本地dns缓存中查找记录,LDNS
4.就去/etc/resolv.conf去找到指定的公网dns服务器
5.假设你dns服务器是119.29.29.29
通过119.29.29.29找到对应的记录
pythonav.cn 123.206.16.61
6.找到记录后,机器会将此记录,缓存到LDNS中,用于下次加速解析
7.浏览器访问对应的ip ,123.206.16.61,发起http请求

nginx安装配置:

之前装的nginx要不要删
yum install nginx -y
systemctl start nginx
他会配置环境变量
/usr/local/bin/nginx 这个快捷启动命令
很可能扰乱你编译nginx的使用
因此
yum remove nginx -y

1.解决软件依赖

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

1.下载源码包

wget -c https://nginx.org/download/nginx-1.12.0.tar.gz --no-check-certificate

2.解压缩源码

tar -zxvf nginx-1.12.0.tar.gz

切换进入nginx目录

cd  nginx-1.12.0

3.配置,编译安装

./configure --prefix=/opt/nginx1-12/   #这里不会生成文件夹

make && make install    #此步结束,才会正式创建/opt/nginx1-12文件夹

4.启动nginx,进入sbin目录,找到nginx启动命令

cd /opt/nginx1-12  #进入nginx主目录,所有东西都在这了
#进入可执行命令目录
cd sbin #里面有一个nginx脚本 ./nginx #启动 ,检查端口和进程 ./nginx -s stop #关闭 ./nginx -s reload #重新加载ngix配置文件,不重启nginx ,提前,你的nginx必须得启动 ./nginx -t #检测nginx.conf语法是否正确 nginx博客
https://www.cnblogs.com/pyyu/p/9468680.html/

安装python

编码编译安装python3

1.解决依赖关系

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 -y

2.下载python源代码

yum install wget -y
cd /opt/
wget https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tar.xz

3.解压缩python源代码

xz -d Python-3.4.7.tar.xz
tar -xf Python-3.4.7.tar

4.切换进入python源代码目录

cd /opt/Python-3.4.7

5.开始编译安装,释放编译文件

./configure --prefix=/opt/python347/    #此时还不会生成这个文件夹!

6.开始编译,编译安装

make
make install #直到这两步走完,才会生成。创建 /opt/python347/ ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
#这个confiure脚本执行后,会生成一个Makefile文件 make是用来编译的,它从Makefile中读取指令,然后编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 然后这两句可以一局就执行成功 make && make install

7.检查你自己制定的安装路径,/opt/python347/

查看/opt/python347/bin目录,python3的可执行命令都在bin底下了

8.配置软连接,快捷启动python3和pip3

ln -s /opt/python347/bin/python3    /usr/bin/python3
ln -s /opt/python347/bin/pip3 /usr/bin/pip3

9.配置系统环境变量,配置PATH,加入python3的目录

#尽量用这一步
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python347/bin/
#这一步尽量别用了
PATH=$PATH:/opt/python347/bin/ #配置环境变量需谨慎,如果配错了,你的其他命令也会丢失! 写入个人配置文件,永久生效/etc/profile
yum install vim -y
vim /etc/profile #编辑个人配置文件,写入PATH
PATH=$PATH:/opt/python347/bin/ source /etc/profile #读取一下配置文件,生效配置

安装启动django

创建django项目

pip3 install django==1.11.14

django-admin startproject mysite

#修改django  settings.py配置文件
ALLOWED_HOSTS = ['*']
#启动django python3 manage.py runserver 0.0.0.0:9000

可能出现的问题

网页访问不到
解决办法: iptables -F
setenforce 0
关闭防火墙 不要用win8 win10自带的浏览器
用chrome

提示命令pip找不到

pip install --upgrade pip

但是你系统现在是pip3
执行这条:
pip3 install --upgrade pip

Python环境安装之virtualenv虚拟环境

安装virtualenv:

#通过pip3安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#创建虚拟环境 venv
virtualenv --no-site-packages --python=python3 venv
#激活虚拟环境,进入虚拟环境!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!()
重点,这个虚拟环境不是什么虚拟的linux,只是复制了一份python解释器!
#激活虚拟环境
source /data/mydjango1.11.15/venv/bin/activate
#此时你的环境变量,已经被修改,添加了虚拟环境
可以查看echo $PATH #安装django1.11.15
pip3 install django==1.11.15 django-admin startproject mysite115
启动django1.11.15

确保开发环境一致性的操作

1.假设我们在本地开发环境,准备好了项目+依赖包环境
2.现在需要将项目上传至服务器,上线发布
3.那么就要保证服务器的python环境一致性
复制代码
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt 这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。 2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt

虚拟环境之virtualenvwrapper

虚拟环境的强大,我们已经知道,可以隔绝多个python解释器环境,但是他的弊端也很多

基本使用virtualenvwrapper,管理virtualenv

创建一个虚拟环境,默认会激活当前这个虚拟环境
mkvirtualenv my_django115 再创建一个虚拟环境,默认切换进入my_django2的虚拟环境
mkvirtualenv my_django2 #任意切换不同的虚拟环境,workon提供tab补全功能,非常方便 workon my_django115 workon my_django2
这个命令非常方便的用法就是,在物理环境下,快速进入虚拟环境 当然也可以手动停止虚拟环境
deactivate 其他virtualenvwrapper管理命令
删除虚拟环境,需要先退出虚拟环境
rmvirtualenv my_django115 复制代码
lsvirtualenv
列举所有的环境。
cdvirtualenv
导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
cdsitepackages
和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages
显示 site-packages 目录中的内容。

nginx + uwsgi + django + supervisor 上线发布django

要记得关防火墙、selinux。一定。

python虚拟环境

1.准备好python3环境,以及虚拟环境virtualenvwrapper
2.创建新的虚拟环境
mkvirtualenv django15
3.安装django1.11.15
pip3 install django==1.11.15
4.创建django项目,测试访问
python3 manage.py runserver 0.0.0.0:8000

安装uwsgi

进入虚拟环境venv,安装uwsgi
1.pip3 install -i https://pypi.douban.com/simple uwsgi pip3 list 查看 uwsgi --version 检查uwsgi版本
uwsgi --python-version #检查uwsgi python版本

通过uwsgi运行django

进入项目第一层目录,可以看到manage.py

启动命令:
uwsgi --http :8088 --module mysite.wsgi --py-autoreload=1
# mysite 是跟项目同名的文件夹,下面有wsgi.py这个文件
# 问题: 样式丢了

配置nginx,使得请求正确过来

nginx端两条配置:

server {
listen 80;
server_name www.s12django.com; #charset koi8-r; #access_log logs/host.access.log main; location / {
include /opt/nginx1-12/conf/uwsgi_params;
uwsgi_pass 0.0.0.0:8000;
# root html;
# index index.html index.htm;
}

启动命令:

uwsgi --socket :8000 --module django15.wsgi --py-autoreload=1

配置nginx,解决静态文件

nginx配置添加字段:

location /static {
alias /opt/static/django;
}

创建目录:

mkdir -p  /opt/static/django/

在django的settings里面配置:

STATIC_URL = '/static/'
STATIC_ROOT='/opt/static/django'

通过python3 manage.py collectstatic 收集所有你使用的静态文件保存到STATIC_ROOT!

python3 manage.py collectstatic 

STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来
# 把这些文件放到一起是为了用nginx等部署的时候更方便

重启nginx,重启服务,静态文件恢复正常

uwsgi配置文件启动

这个文件放哪里都可以

touch uwsgi.ini

[uwsgi]
#使用nginx连接时使用
socket=0.0.0.0:8000
#不用nginx直接当做web服务器使用
#http=0.0.0.0:9000
#项目目录绝对路径
chdir=/root/django15
#wsgi文件路径,在项目底下
wsgi-file=django15/wsgi.py
#指定解释器目录,虚拟环境目录
home=/root/Envs/my_django115
processes=4
threads=2
master=True
pidfile=uwsgi.pid

启动命令:

uwsgi --ini uwsgi.ini # 在uwsgi.ini的目录中

supervisor

#注意此时已经退出虚拟环境了!!!!!

yum install python-setuptools -y
easy_install supervisor

通过命令生成supervisor的配支文件

echo_supervisord_conf > /etc/supervisord.conf

编辑配置文件,添加字段

[program:my_django115]
command=/root/Envs/my_django115/bin/uwsgi --ini /root/django15/uwsgi.ini

启动命令:

supervisord -c /etc/supervisord.conf

交互式界面:

supervisorctl
start my_django115

day24_雷神_django项目部署的更多相关文章

  1. jsp项目部署

    每新建一个项目都要发布到服务器,也就是项目部署,在tomcat中的  tomcat\Tomcat 6.0\webapps  路径下就会新建你的项目文件夹 webapps是tomcat的默认访问路径,很 ...

  2. javaWeb项目部署到阿里云服务器步骤

    记录web项目部署到阿里云服务器步骤 (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以 ...

  3. Spring+SpringMvc+Mybatis框架集成搭建教程四(项目部署及测试)

    在IDEA中将项目部署到本地Tomcat下进行运行并验证整合结果 (1).点击如下图所示的下拉按钮,弹出Edit Configurations...后点击该项. (2).跳出如下界面后,点击红框内的& ...

  4. SSIS2012 项目部署模型

    SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integrat ...

  5. 项目部署到tomcat Root中后导致 WebApplicationContext 初始化两次的解决方法

    上一篇文章刚说项目部署到tomcat的ROOT中,今天就发现一个问题.通过eclipse启动tomcat时候,WebApplicationContext 初始化两次: 现象:   通过eclipse控 ...

  6. 百度BAE JAVA环境项目部署和调试

    起初在一个应用挂在虚拟主机上,昨天早上虚拟主机挂了.本来考虑迁移到SAE上的,但之前发现SAE的JVM云豆消耗的太快(PS:我是中级开发者,每月 10000云豆,如果有哪位大神对SAE JAVA云豆能 ...

  7. 如何正确的将J2ee项目部署到Tomcat

    如何正确的将J2ee项目部署到Tomcat 1.打开配置文件(我的如下:C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\serv ...

  8. SSIS 项目部署模型

    微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模型 关于部署 SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integ ...

  9. 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

    很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...

随机推荐

  1. TZOJ 2289 Help Bob(状压DP)

    描述 Bob loves Pizza but is always out of money. One day he reads in the newspapers that his favorite ...

  2. BundleConfig某js文件 全部打包

    var server = HttpContext.Current.Server; var jsFiles = System.IO.Directory.GetFiles(server.MapPath(& ...

  3. DynamoDB

    https://boto3.amazonaws.com/v1/documentation/api/latest/guide/dynamodb.html Creating a  New  Table I ...

  4. 使用Snappy将html或者url转成PDF文件

    这是一个操作简单的html文件或者url转PDF的php库 Github地址 https://github.com/KnpLabs/snappy 安装: $ composer require knpl ...

  5. nginx学习笔记(二)

    nginx变量 Nginx 变量值容器的生命期是与当前正在处理的请求绑定的,而与 location 无关. 通过 set 指令隐式创建的 Nginx 变量.这些变量我们一般称为"用户自定义变 ...

  6. python基础 (装饰器,内置函数)

    https://docs.python.org/zh-cn/3.7/library/functions.html 1.闭包回顾 在学习装饰器之前,可以先复习一下什么是闭包? 在嵌套函数内部的函数可以使 ...

  7. 记一次Struts2 内核问题分析解决

    问题场景描述 生产环境某个处理耗时比较长的接口,吞吐能力极差.客服反馈此功能长期处于毫无响应状态. 具体表现 系统启动后第一次调用耗时极慢,长时间不响应.紧随之后发起的请求也同时没有响应. 等待第一次 ...

  8. Isight 命令行运行任务

    说明书参考:https://abaqus-docs.mit.edu/2017/English/DSSIMULIA_Established.htm 不一定对版本.但是大部分还可以. 不对的可以在命令里敲 ...

  9. 分布式一致性的基石---Paxos算法(1)

    分布式一致性的基石---Paxos算法(1) Paxos算法是由微软的工程师Lamport提出,Lamport依靠Paxos算法获得图灵奖: Paxos算法旨在解决相互信任的分布式系统中,多个节点能快 ...

  10. 原来这就是 UI 设计师的门槛

    本文主要分享 UI 设计师入行的一些个人经验指南,希望可以带给新入行业的设计师一点帮助! 写在前面 随着互联网的不断发展,特别是移动互联网的不断成熟,视觉设计师也进行了迭代与细分.衍生出的 UI 设计 ...