Linux 项目上线流程
命令行样式修改
1 打开配置文件
vim /etc/bashrc
2 添加配置信息
PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\[\e[32;1m\]\\$ \[\e[0m\]"
3 生效
source /etc/bashrc
配置终端
)编辑配置文件
>: vim ~/.bash_profile )将原来内容全部删除掉
>: ggdG )进入编辑状态:填入下方两行
>: i export PATH=$PATH:$HOME/bin
PS1='Path:\w\n>:' )退出编辑状态
>: esc )保存修改并退出
>: :wq )生效配置
>: source ~/.bash_profile
更新系统依赖包
>:yum update -y 安装软件管理包和可能使用的依赖 >: yum -y groupinstall "Development tools"
>: yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
必备软件
安装的git
>:yum install git 安装Python3. )前往用户根目录
>: cd ~ )下载 或 上传 Python3.6.7
>: wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
>: scp -r 本地Python-3.6..tar.xz ssh root@39.100.155.49:服务器路径
>: scp -r C:\source\Python-3.6..tar.xz ssh root@39.100.155.49:~ )解压安装包
>: tar -xf Python-3.6..tar.xz )进入目标文件
>: cd Python-3.6. )配置安装路径:/usr/local/python3
先安装依赖库
>:yum -y install gcc gcc-c++ autoconf automake
>:yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
再配置
>: ./configure --prefix=/usr/local/python3 )编译并安装
>: make && sudo make install
)建立软连接:终端命令 python3,pip3
>: ln -s /usr/local/python3/bin/python3 /usr/bin/python3
>: ln -s /usr/local/python3/bin/pip3. /usr/bin/pip3
)删除安装包与文件:
>: rm -rf Python-3.6.
>: rm -rf Python-3.6..tar.xz
安装虚拟环境:
默认工作路径 ~/.virtualenvs
)安装依赖
>: pip3 install virtualenv
>: pip3 install virtualenvwrapper )建立虚拟环境软连接
>: ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv )配置虚拟环境:填入下方内容
>: vim ~/.bash_profile VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/python3/bin/virtualenvwrapper.sh )退出编辑状态
>: esc )保存修改并退出
>: :wq )更新配置文件内容
>: source ~/.bash_profile 安装Mysql
)前往用户根目录
>: cd ~ )下载mysql57
>: wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm )安装mysql57
>: yum -y install mysql57-community-release-el7-.noarch.rpm
>: yum -y install mysql-community-server )启动mysql57并查看启动状态
>: systemctl start mysqld.service
>: systemctl status mysqld.service )查看默认密码并登录
>: grep "password" /var/log/mysqld.log
>: mysql -uroot -p )修改密码
>: ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; 7)创建项目数据库和独立用户(注意本地Django项目settings文件需要配置对应数据库名称和密码)
1 创建数据库
create database '数据库名' default charset=utf8;
2 创建用户并授予权限(注意密码必须包含字符、数字和特殊字符)
grant 权限(create, update) on 库.表 to '账号'@'host' identified by '密码'
grant all privileges on xxx.* to 'xxx'@'%' identified by 'xxx';
grant all privileges on xxx.* to 'xxx'@'localhost' identified by 'xxx';
3 刷新生效
flush privileges;
非root户查看数据库只能看到授权的数据库列表,而root可以看到全部
4 查看用户相关信息
select user,host,authentication_string from mysql.user;
安装Redis )前往用户根目录
>: cd ~ )下载redis-5.0.
>: wget http://download.redis.io/releases/redis-5.0.5.tar.gz )解压安装包
>: tar -xf redis-5.0..tar.gz )进入目标文件
>: cd redis-5.0. )编译环境
>: make )复制环境到指定路径完成安装
>: cp -r ~/redis-5.0. /usr/local/redis )配置redis可以后台启动:修改下方内容
>: vim /usr/local/redis/redis.conf daemonize yes )完成配置修改
>: esc
>: :wq )建立软连接
>: ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server
>: ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli )后台运行redis
>: redis-server &
ctrl + c )测试redis环境
>: redis-cli
ctrl + c )关闭redis服务
>: pkill -f redis - 安装uwsgi )在虚拟环境下安装,注意一定要在虚拟环境安装!!!! 当项目运行在虚拟环境时,用虚拟环境外的uwsgi无法正常启动项目!!! pip3 install uwsgi )建立软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 新建虚拟环境跑Django项目 )创建虚拟环境
>: mkvirtualenv test_venv )安装依赖
>: pip install django )前往目标目录,创建项目工作目录,再进入
>: cd /home
>: mkdir project
>: cd project )创建Django项目,并进入
>: django-admin startproject test_site
>: cd test_site )完成项目配置:修改下方几行内容
>: vim /home/project/test_site/test_site/settings.py ALLOWED_HOSTS = ['*'] )跑原生服务
>: python3 manage.py runserver 0.0.0.0: 安装Nginx )前往用户根目录
>: cd ~ )下载nginx1.13.7
>: wget http://nginx.org/download/nginx-1.13.7.tar.gz )解压安装包
>: tar -xf nginx-1.13..tar.gz )进入目标文件
>: cd nginx-1.13. )配置安装路径:/usr/local/nginx
>: ./configure --prefix=/usr/local/nginx 这里考虑安装https认证模块(上文未安装这个导致使用https协议保存):
>: ./configure --with-http_ssl_module )编译并安装 >: make && sudo make install )建立软连接:终端命令 nginx
>: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx )删除安装包与文件:
>: rm -rf nginx-1.13.
>: rm -rf nginx-1.13..tar.xz )测试Nginx环境,服务器运行nginx,本地访问服务器ip >: nginx >: 服务器绑定的域名 或 ip: Nginx命令 )启动 >: nginx )关闭nginx >: nginx -s stop )重启nginx >: nginx -s reload )查看端口,强行关闭
>: ps -aux|grep nginx
>: kill <pid:进程编号> 查看8000端口占用 netstat -tunlp|grep Nginx & uwsgi 运行项目 )在项目的虚拟环境安装uwsgi
>: workon test_venv
>: pip install uwsgi )项目根目录配置uwsgi:填入下方内容
>: vim /home/project/test_site/test_site.xml <uwsgi>
<socket>127.0.0.1:</socket> <!-- 内部端口,自定义 -->
<pythonpath>/root/project/test_site/</pythonpath> <!-- 项目路径 -->
<module>manage.py</module> <!-- home为wsgi.py所在目录名-->
<callable>manage:manager</callable> <!-- 启动文件名:管理的执行app,如果是flask项目app.run(),这里写app就好 -->
<master/>
<memory-report/>
<processes></processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi> Django项目需要配置
完成项目配置:修改下方几行内容
>: vim /home/project/test_site/test_site/settings.py DEBUG = False
ALLOWED_HOSTS = ['*'] )去向Nginx配置目录,备份配置,完全更新配置:填入下方内容
>: cd /usr/local/nginx/conf
>: cp nginx.conf nginx.conf.bak
>: vim nginx.conf
>: ggdG
>: i events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen ;
server_name 127.0.0.1; # 改为自己的域名,没域名修改为127.0.0.
charset utf-;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; # 端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT test_site.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /home/project/test_site/; # 项目路径
}
}
} )启动uwsgi
>: uwsgi -x /home/project/test_site/test_site.xml
测试uwsgi --socket 0.0.0.0: --protocol=http -p -w manage(启动文件名):app(app) ps:uwsgi -x /root/project/FlaskProject/FlaskProject.xml )启动nginx
>: nginx )浏览器测试:http://39.100.155.49/admin )关闭uwsgi所有进程
>: pkill -f uwsgi -
前台打包上线
)项目本地打包 1打包前先测试能否正常允许,修改部分参数,例如 vue.config中的配置信息,settings中的Host路由配置。
2 打包 npm run build
3 生成一个disk文件,将这个文件上线。
4 第二次打包会报错,重启电脑即可。 )上传
scp -r dist ssh root@47.92.32.216:~ )
mv -r dist /home/html events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen ;
server_name 127.0.0.1; # 改为自己的域名,没域名修改为127.0.0.:
charset utf-;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; # 端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT test_site.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /home/project/test_site/; # 项目路径
}
}
server {
listen ;
server_name 127.0.0.1; # 改为自己的域名,没域名修改为127.0.0.:
charset utf-;
location / {
root /home/html; #html访问路径
index index.html; #html文件名称
}
}
}
Linux 项目上线流程的更多相关文章
- 自学linux——16.LAMP项目上线流程
LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ① 下载nginx 网页下载https://nginx.org/en/downlo ...
- Linux项目发布流程
Linux项目发布流程(一) 1.安装pyhton3.7 的依赖包 yum -y groupinstall "Development tools" yum -y install z ...
- Linux 项目上线管理 MAVEN + expect 一台机器管理所有机器的应用程序
一.目的 在一台服务器上面管理所有机器的应用程序. 设想是通过一条命令能够知道所有应用程序是否running 如果not running 查看具体项目的log 跟踪具体原因,程序问题汇报相关负责人 二 ...
- 重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 场地和场景的重要性 射击
- iOS 项目上线流程
一.证书的导出 1.1 前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系统. 如果没有帐号可以在打开http://developer.apple.com/ ...
- lamp项目上线流程简述 (ubuntu16.04 )
1 新建一个sudo用户,而不是直接用root操作 ① 新建用户可参考 https://www.cnblogs.com/bushuwei/p/10880182.html ② 赋予sudo权限: ...
- java项目上线的流程(将web项目部署到公网)
本博文来源于网络,原文的地址在本篇博文最下方. 如何将java web项目上线/部署到公网 关于如何将Java Web上线,部署到公网,让全世界的人都可以访问的问题.小编将作出系列化,完整的流程介绍. ...
- Yum项目上线实战 (网站运维)-Linux从入门到精通第十一天(非原创)
文章大纲 一.编译安装与卸载Nginx二.关于LAMP三.LAMP环境部署四.学习资料下载五.参考文章 一.编译安装与卸载Nginx Nginx:是一款比较流行的web服务器软件,类似于Apach ...
- django项目上线环境部署
django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...
随机推荐
- python基础练习题4
题目:现有一个数据库记录文件(0005.txt)保证了学生课程签到的数据记录('2017-03-13 11:50:09',271,131),('2017-03-14 11:52:19',273,131 ...
- 详解WebService开发中四个常见问题(2)
详解WebService开发中四个常见问题(2) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
- 【Linux】CentOS6上redis安装
1.官网下载安装包 https://redis.io 2.解压 tar -zxvf xxxx.tar.gz 3.编译安装 进入解压后的目录后 make 出现以下内容表示make成功 Hint: It' ...
- org.springframework.web.servlet.view.ContentNegotiatingViewResolver
restful服务中一个重要的特性就是一种资源可以有多种表现形式,在springmvc中可以使用ContentNegotiatingViewResolver这个视图解析器来实现这种方式. 描述资源的三 ...
- OpenQA.Selenium.Chrome Action滑动操作
//[定位] //滑块元素 var wrapper = driver.FindElement(By.XPath("/html/body/div/div[1]/div[1]/div[2]&qu ...
- TypeScript作为前端开发你必须学习的技能二)
TypeScript 变量声明 变量是一种使用方便的占位符,用于引用计算机内存地址.我们可以把变量看做存储数据的容器. TypeScript 变量的命名规则:和javascript一样.除了下划线 _ ...
- luogu 4725 【模板】多项式对数函数(多项式 ln)
$G(x)=ln(A(x))$ $G'(x)=ln'(A(x))A'(x)=\frac{A'(x)}{A(x)}$ 由于求导和积分是互逆的,所以对 $G$ 求积分,即 $G(x)=\int\f ...
- sh_02_第一个while循环
sh_02_第一个while循环 # 打印 5 遍 Hello Python # 1. 定义一个整数变量,记录循环次数 i = 1 # 2. 开始循环 while i <= 3: # 1> ...
- [BZOJ3456]城市规划:DP+NTT+多项式求逆
写在前面的话 昨天听吕老板讲课,数数题感觉十分的神仙. 于是,ErkkiErkko这个小蒟蒻也要去学数数题了. 分析 Miskcoo orz 带标号无向连通图计数. \(f(x)\)表示\(x\)个点 ...
- excel里面匹配部分字符的问题
如上图所示,有两个表,前者存的是区号电话号连起来的电话号,后者存的是世界各地的区号,怎么把第一个表里分成两列,一列单独存区号,一列单独存电话号. ps:电话号码长度和区号长度都 ...