pip : https://pypi.org/project/pip/
setuptools : https://pypi.org/project/setuptools/
linux 设置环境变量URL :
https://jingyan.baidu.com/article/b87fe19e6b408852183568e8.html
https://jingyan.baidu.com/article/a3f121e4b5e848fc9052bbf3.html
linux 临时设置环境变量:
command line: export PATH=$PATH:/usr/local/python-3.5.6/bin
linux 永久设置环境变量:
1、 编辑 vi /etc/profile : 在文件最后添加:
export PATH=$PATH:/usr/local/python-3.5.6/bin 保存退出
2、 执行: source /etc/profile ----> 是变量生效
3、 Linux 系统 重新启动
Django + Nignx + Uwsgi :
https://www.runoob.com/django/django-nginx-uwsgi.html
https://www.cnblogs.com/wcwnina/p/9906081.html
https://cloud.tencent.com/developer/article/1372693
apt install : 通过本地安装
apt-get install : 后者是通过网络获取安装包安装。
apt-get是老版的命令,apt 是新版的命令。
列出一个软件版本的命令: https://www.cnblogs.com/EasonJim/p/7144017.html
apt-cache madison openssh-client
指定版本安装: apt-get install softname=version
aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。
与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,
aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,
整个系统更为干净
killall 、kill 、pkill 命令详解
https://www.cnblogs.com/rsky/p/4886043.html
关闭防火墙:
iptables 为防火墙的管理工具, 可 apt 或 yum 安装
iptables -F : 临时 关闭 防火墙
setenforce 0 : 临时 关闭 selinux
/etc/selinux/config : 永久关闭 防火墙
查看端口: ss -tnlp 或者 netstat -tulnp
ulimit 详解 :
https://man.linuxde.net/ulimit
https://www.cnblogs.com/zengkefu/p/5649407.html
centos : 动静 分离 部署 Django 项目:
https://blog.51cto.com/wangfeng7399/2341281
wangfeng7399 老男孩老师的 码云 地址:
https://gitee.com/wangfeng7399/
1、 安装 nginx
apt-get install aptitude
aptitude install nginx
Centos 安装 nginx: https://blog.51cto.com/wangfeng7399/2341281
2、 新建 Django Pro
# 创建 虚拟环境
mkvirtualenv -p /usr/systemEIF/python-3.7.4/bin/python3 mysiteEnv
进入 虚拟环境
workon mysiteEnv
创建 Django 项目
django-admin startproject mysite
cd mysite
创建 app
python manage.py startapp web
mkdir script
cd sctipt
3、 # 创建 uwsgi.ini 配置文件
vi uwsgi.ini
[uwsgi]
# 项目目录
chdir=/opt/project_teacher/teacher/
# 指定项目的application
module=teacher.wsgi:application
# 进程个数
workers=5
*********** pidfile=/opt/project_teacher/script/uwsgi.pid
# 指定IP端口
http=192.168.31.123:8080
# 指定静态文件
static-map=/static=/opt/test_project/teacher/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 当服务停止的时候自动移除unix Socket和pid文件,清空环境,清空缓存
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录, 且可以后台启动
daemonize=/opt/project_teacher/script/uwsgi.log
# 指定sock的文件路径
************socket=/opt/project_teacher/script/uwsgi.sock
4、 修改 uwsgi.ini 配置文件权限:
为uwsgi.ini 设置 附加组 ,可以让 nginx 访问
查看 nginx 的配置文件: /etc/nginx/nginx.conf, 是哪个用户启动的 nginx
chown root.nginx uwsgi.ini # centos
chown root.www-data uwsgi.ini # ubuntu
客户端的 所有 请求 到达服务器 , 都先 路过 nginx ,
动态请求 再转发给 配置文件中的 sock 文件(uwsgi socket)
静态请求 直接 转发给 Django 框架,
5、 编写 nginx 配置文件:
在 /etc/nginx/conf.d/ 中 创建 xxxxx.conf nginx 配置文件
在 conf.d 这个目录中的以 .conf 结尾的配置文件, nginx 可以自动发现且加载
原因是 /etc/nginx/nginx.conf 中 有一句配置:
include /etc/nginx/conf.d/*.conf;
server { # 这个server标识我要配置了
listen 80; # 我要监听那个端口
server_name 192.168.2.105 ; # 你访问的路径前面的url名称
access_log /var/log/nginx/access.log; # Nginx日志配置
charset utf-8; # Nginx编码
gzip on; # 启用压缩,这个的作用就是给用户一个网页,比如3M压缩后1M这样传输速度就会提高很多
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持压缩的类型
error_page 404 /404.html; # 错误页面
error_page 500 502 503 504 /50x.html; # 错误页面
# 指定项目路径uwsgi
location / {
# 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
uwsgi_pass unix:/Project/AutoCmdb_SuoSuo04.0/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他
}
# 指定静态文件路径
location /static/ {
alias /Project/AutoCmdb_SuoSuo04.0/web/static/;
index index.html index.htm;
}
}
6、执行命令迁移nginx静态文件
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
python manage.py collectstatic
7、 START SERVER
注意: 启动 nginx 出错时, 根据提示 执行命令, 可能是 语法错误,
重启动 uwsgi 时, 先 删除上一次执行产生的 pid 和 sock 文件