linux单项目发布流程
1.安装python
#1.安装python3.7所需要的依赖包
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
#3下载python3.7的源码
3 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
#4解压编译安装python3.7
4 tar -xJvf Python-3.7.0.tar.xz
#5.cd 到Python-3.7.0文件夹
5 cd Python-3.7.0
# 6、用./方法执行configure,并指定安装到usr目录下
6 ./configure --prefix=/usr/local/python3 --enable-shared
#7.开始编译安装
7 make && make install
# 8、配置环境变量, 创建软链接
8 ln -s /usr/local/python3/bin/python3 /usr/bin/python3
9 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
#10将编译目录下的libpython3.7m.so.1.0文件复制到
10 cp /root/Python-3.7.0/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so.1.0
2.虚拟环境的安装和创建在虚拟环境下安装项目所需要的python库
#安装虚拟环境
11 pip3 install virtualenv
#创建软连接
12 ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
#创建项目和虚拟环境所需要的文件夹
13 mkdir -p /data/env
14 mkdir -p /data/wwwroot
#进入文件夹
15 cd /data/env
#创建虚拟环境
16 virtualenv --python=/usr/bin/python3 py3_dj2
#进入虚拟环境所在的目录
17 cd /data/env/py3_dj2/bin/
#启动虚拟环境
18 source activate
#安装项目所需要的python报
19 pip3 install django
20 pip3 install uwsgi
#创建软连接
21 ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
#退出虚拟环境
22 deactivate
#cd 到根目录
23 cd ~
3.安装nginx
#下载nginx的源码
24 wget http://nginx.org/download/nginx-1.13.7.tar.gz
#解压
25 tar -zxvf nginx-1.13.7.tar.gz
#进入nginx-1.13.7文件中
26 cd nginx-1.13.7
27 ./configure
28 make && make install
#nginx一般默认安装好的路径为/usr/local/nginx 在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
29 cd /usr/local/nginx/conf/
30 cp nginx.conf nginx.conf.bak
#进入到下面目录中修改nginx.conf中的配置,
31 cd /usr/local/nginx/conf/
把原有的内容全部删掉改成下面的:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name www.donghaiming.cn; #改为自己的域名,没域名修改为127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT library.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/library/; #项目路径
}
location /static/ {
alias /data/wwwroot/library/static/; #静态资源路径
}
}
}
#把自己的项目放到 cd /data/wwwroot/目录下
在目录中添加 和项目名字相同的 项目.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<uwsgi>
<socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
<chdir>/data/wwwroot/library/</chdir> <!-- 项目路径 -->
<module>library.wsgi</module> <!-- wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
4.启动项目
#进入虚拟环境所在的目录
34 cd /data/env/py3_dj2/bin/
#进入虚拟环境
35 source activate
#进入项目所在的目录
36 cd /data/wwwroot/library/
#uwsgi 解析项目中的配置文件
37 uwsgi -x library.xml
#进入nginx所在的目录
38 cd /usr/local/nginx/sbin/
#启动nginx,如果没有启动过 ./nginx就可以
39 ./nginx -s reload
#测试
40 curl 127.0.0.1:80
#迁移静态文件
41 cd /data/wwwroot/library/
42 python3 manage.py collectstatic
#查看操作步骤
43 history
linux单项目发布流程的更多相关文章
- Linux项目发布流程
Linux项目发布流程(一) 1.安装pyhton3.7 的依赖包 yum -y groupinstall "Development tools" yum -y install z ...
- 前端Node项目发布流程
最近在做前端的发布流程,发布流程的主要实现以下几个方面: 构建:包括JavaScript.css.html等的压缩,以及版本控制,利用md5生成版本号替换文件引用,实现长缓存策略. 发布:输出新版本的 ...
- linux 下安装 python ngix 项目发布流程
1.安装python #1.安装python3.7所需要的依赖包yum -y groupinstall "Development tools"yum -y install zlib ...
- k8s:py项目发布完整流程
k8s:py项目发布流程 1. 编写Dockerfile # cat Dockerfile FROM python:3.6-slim USER root RUN apt-get update & ...
- java项目发布到linux服务器,tomcat正常启动但没加载项目
问题描述: java项目发布到linux服务器,一切操作正确,linux命令启动tomcat后,查看日志启动tomcat正常,上传的war包已经解压成功,但是tomcat没加载项目. 解决方法: 1. ...
- 关于Linux开源项目基础组件make编译流程
关于Linux开源项目基础组件make编译流程 非常多Linux开源项目都会用到编译出可运行文件的make.这个是有一套流程的. 首先,GNU构建系统:https://en.wikipedia. ...
- 关于.net Core项目发布在Linux上的填坑
本文主要记录.net Core项目发布在Linux服务器上面所遇到的问题,防止遗忘是 1.在发布文件中执行 dotnet xxxxxx.dll的时候提示如下错误: An assembly specif ...
- .Net Core 项目发布到Linux - CentOS 7(一)
由于项目的需求,需要发布到Linux服务器上,在这里记录一下我发布的过程. 安装Linux 安装liunx系统很简单,网上也有很多教程,我是直接使用阿里云的CentOS 7.7 64位 部署环境 Li ...
- 自学linux——16.LAMP项目上线流程
LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ① 下载nginx 网页下载https://nginx.org/en/downlo ...
随机推荐
- vscode + electron 提示:无法连接到legacy请采用inspector解决办法
首先,你的程序是可以直接运行的,在命令行中可以运行,只是在vsCode中,运行一段时间就被这个提示弹出. 解决方法: 先在launch.json 中加上"protocol":&qu ...
- laravel整合workerman做消息推送系统
官方建议分离 workerman和mvc框架的结合,我去,这不是有点脑缺氧吗? 大量的业务逻辑,去独立增加方法和类库在写一次,实际业务中是不现实和不实际的 gateway增加一些这方面的工作,但是我看 ...
- 报文分析6、ARP报头结构
ARP报头结构 硬件类型 协议类型 硬件地址长度 协议长度 操作类型 发送方的硬件地址(0-3字节) 源物理地址(4-5字节) 源IP地址(0-1字节) 源IP地址(2-3字节) 目标硬件地址(0 ...
- 理解es6 中 arrow function的this
箭头函数相当于定义时候,普通函数.bind(this)箭头函数根本没有自己的this,导致内部的this就是定义时候的外层代码块中的this.外层代码块中的this,则取决于执行时候环境上下文cont ...
- nginx匹配规则说明以及匹配的优先级
location 匹配规则语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义location = /uri = 表示精确匹配,只有完全匹配上才能生效lo ...
- Spring cloud 之Ribbon(一)基本使用
简介 Spring cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Riboon实现的.Ribbon是客户端负载均衡器,这有别语例如Nginx服务端负载 ...
- 更改oracle数据库密码(因为密码过期)
更改system的密码,然后用此用户登录数据库,在数据库里修改指定用户密码 alter user username identified by newpassword; --修改忘记密码用户的密码 让 ...
- es6下 vue实例属性template不能使用
esm模式下 不能使用template,需要引入非esm的vue.js,查看vue源码的包的dist目录下 文件标有esm是支持ems,没有标记,就是不支持(这个知识,怎么说了,应该属于webpack ...
- 添加新网络模型后运行报错:未定义的参数:ps_roipooling param
现象描述:在新增了具有自定义的data层或者loss层的网路之后,工程运行会报错: 疑惑:并没有这样的参数新增,并且前向的deploy文件已经将自定义的loss以及data等都去掉了: 可能的原因:虽 ...
- CST2017 安装问题
1.需要修改破解文件license 中的电脑名称 2.若lincense 中有时间限制 需要把时间都修改 比如 到期为 1-jan-2018 则修改为1-jan-2019 所有的都需 ...