linux下搭建django记录笔记,未完稿,节后继续
使用ECS服务,有时需要更新apt-get,故先要先执行第一步 使用:SSH连接
1:更新apt-get
#sudo apt-get update
当用apt-get更新软件包时常出现错误提示Unable to locate package update, 尤其是在ubuntu server上,解决方法是: 先更新apt-get #sudo apt-get update 执行完后,问题就解决了。 继续更新: #sudo apt-get upgrade
2.安装Django
(这里使用的是pip,当然easy_install也是可以的)
sudo pip install django==1.9
3.安装 Nginx
更新后才有效
sudo apt-get install nginx
报错形式:http://maizime.top/
4.安装 uwsgi
sudo apt-get install uwsgi
可以通过下面命令,查看 Linux环境下,怎么确定Nginx是以那个config文件启动的?
输入命令行: ps -ef | grep nginx
master process 后面的就是 nginx的目录
怎么查看服务器上安装的nginx版本号,主要是通过ngix的-v或-V选项,查看方法如下图所示:
5.创建个Django项目+app
python django-admin.py startproject cloud_shield cd cloud_shield python manage.py startapp cloud_proxy
检测nginx运行状态:(V大写会显示版本号和模块等信息、v小写仅显示版本信息。)master process为其所在路径
检测版本
安装python 3虚拟环境:安装 python3-venv 用 virtualvenvwrapper 创建的虚拟环境里 既有 py2 还有 py3 ,pip啥的也是乱七八糟的,有脏东西,改用 python3 自带的 venv 创建纯净的,只有 python3 ,pip也只对应 python3 的虚拟环境
创建虚拟环境 ,kmind为虚拟环境所在的文件夹的名称
kmind/bin 里的 python 和 python3 全都是 python3.5 使用 pip 安装的 包也都是对应 python 3.5的
激活虚拟环境 source activate:
退出虚拟环境 deactivate:
通过SSH file 上传文件
二、uWSGI服务器部署:
已经安装好uwsgi后(pip install uwsgi),只需要增加配置, 告诉uWSGI-server的框架入口函数在哪,就能让django和uWSGI服务器对接上。
1. 在django项目的setting.py文件的同级目录下,增加一个配置文件 uwsgi.ini
2. 对配置文件进行配置
[uwsgi]
# 配置服务器的监听ip和端口,让uWSGI作为nginx的支持服务器的话,设置socke就行;如果要让uWSGI作为单独的web-server,用http
# http = 127.0.0.1:3309
socket = 127.0.0.1:3309
# 配置项目目录(此处设置为项目的根目录)
chdir = /home/python/Desktop/my_pro
# 配置入口模块 (django的入口函数的模块,即setting同级目录下的wsgi.py)
wsgi-file = my_pro/wsgi.py
# 开启master, 将会多开一个管理进程, 管理其他服务进程
master = True
# 服务器开启的进程数量
processes = 2
# 以守护进程方式提供服, 输出信息将会打印到log中
daemonize = wsgi.log
# 服务器进程开启的线程数量
threads = 4
# 退出的时候清空环境变量
vacuum = true
# 进程pid
pidfile = uwsgi.pid
# 配uWSGI搜索静态文件目录(及django项目下我们存放static文件的目录,用uWSGI作为单独服务器时才需要设置,此时我们是用nginx处理静态文件)
# check-static = /home/python/Desktop/ttsx
- 启动uWSGI服务器 在配置文件uwsgi.ini所在目录下,用我们刚才配置好的配置文件启动uWSGI: $: uwsgi –ini uwsgi.ini
三、nginx服务器部署: uWSGI服务器已经部署好了,我们只需要安装并启动nginx,然后将nginx服务器的动态文件请求转发给uWSGI服务器,将静态文件请求交给自己来处理。
1. 安装nginx:
需下载准备好nginx的包文件, 以及nginx安装依赖库的包文件OPENSSL:
a. 首先安装nginx所依赖的库: PCRE
$: sudo apt-get install libpcre3 libpcre3-dev
b. 安装OPENSSL库,下载地址https://www.openssl.org/source/
下载将其解压文件放到/usr/local/lib/openssl-1.0.2l目录下
$: /usr/local/lib/openssl-1.0.2l
c. 在这里我们使用编译的安装nginx,指定将nginx的安装到/ust/opt/目录下。
解压包文件,进入nginx包文件目录:
配置:
$: ./configure --prefix=/opt/nginx --with-openssl=/usr/local/lib/openssl-1.0.21
(--prefix指定nginx的安装目录, --with-openssl指定我们要使用的openssl版本,也就是我们刚才安装的路径)
编译:$: make
安装:$: make install
d. 启动nginx:
$: cd /opt/nginx/sbin/
$: ./nginx
相关命令:./nginx -s stop 强制停止 ./nginx -s quit 处理完当前所有连接后停止./nginx -s reload 重新加载配置文件进行重启 查看进程: ps -ajx | grep nginx
2. 配置nginx:
1. 修改nginx的配置文件 $: vim/opt/nginx/conf/nginx.conf
修改其收到请求处理的两条配置:
location / {include uwsgi_params; # 设置将所有请求转发给uwsgi服务器处理
uwsgi_pass: 127.0.0.1:3309; # 指定uwsgi服务器url
}
location /static {
alias /hom/xxx/xxx/pro_name/static/; # 设置将/static的静态请求交给nginx,并指定静态文件的目录
}
https://www.cnblogs.com/languoliang/archive/2013/04/01/nginx.html
四、admin后台管理界面静态文件配置: 以上,nginx+uWSGI+django已经可以正常运行了,但是登陆django的admin后台管理界面,网页的静态文件无法找到。 那是因为我们在前面设置nginx的静态文件目录时,static目录下一般只是我们项目应用开发中自己的静态文件, 但是django后台admin用到的静态文件并不在这,所以找不到。所以我们需要把所有的静态文件打包放在一个目录下。 1. 在项目的根目录下新建一个目录,可以取名为all_static。 2. 在setting.py文件下增加一行配置,指定所有静态文件的根目录: STATIC_ROOT = os.path.join(BASE_DIR, ‘all_static’) 3.执行django管理器命令,会自动将我们项目所有的静态文件放到上面设置的静态文件根目录下: ./managy.pu collectstatic linux(无桌面)安装anaconda http://www.linuxdiyf.com/linux/25117.html 安装当前最新版的python,并设置为默认:http://blog.csdn.net/u012582664/article/details/56845037
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 突发!Windows XP 源代码泄露
- SAP Spartacus打印Occ endpoint请求的url
- 线上发生死锁异常了,该怎么办
- jQuery 元素操作
- jQuery 文本属性值
- jQuery 属性操作
- 方老师聊Nginx知识点
- 《Java从入门到失业》第五章:继承与多态(5.1-5.7):继承
- 【赵渝强老师】Flink的DataSet算子
- Node.js 案发现场揭秘 —— 文件句柄泄露导致进程假死
- nacos配置问题
- Chevereto 配合 Picgo 打造个人相册/图床解决方案
- 从提高 Elasticsearch 搜索体验说开去......
- 又一个奇葩要求,Python是如何将“中文”转“拼音”的?
- localStorage中怎么存对象?