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脚 ...
随机推荐
- git 与gitlab
1.gitlab 创建project ,命名为test2 2.git push项目 git remote add ******* mkdir test1 cd test1 git init nano ...
- JS定时循环
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Swagger+SpringBoot整理
maven依赖 1 <dependency> 2 <groupId>io.springfox</groupId> 3 <artifactId>sprin ...
- POJ 3260 The Fewest Coins(完全背包+多重背包=混合背包)
题目代号:POJ 3260 题目链接:http://poj.org/problem?id=3260 The Fewest Coins Time Limit: 2000MS Memory Limit: ...
- shell实现统计浏览次数并将结果保存到文件中
日志文件是每日一个.统计日志文件中的关键字,获取每日浏览次数.将次数保存到txt文件中.. 将日期也一并保存到txt文件中. 输入开始日期和结束日期,就可以统计出每日的次数 代码如下: #!/bin/ ...
- Firefox_64.0 中selenium ide_3.4.4的使用教程(实操)
说明:旧版的selenium IDE有很多功能,在新版中都去除了,很多功能都做不了. 写于:2018.12.31 一.安装selenium IDE 下载和安装这里推荐参考文章:https://blo ...
- Long类源码浅析
1.Long类和Integer相类似,都是基本类型的包装类,类中的方法大部分都是类似的: 关于Integer类的浅析可以参看:Integer类源码浅析 2.这里主要介绍一下LongCache类,该缓存 ...
- DjangoRestFrameWork 版本控制
DRF的版本控制 为什么需要版本控制 API 版本控制允许我们在不同的客户端之间更改行为(同一个接口的不同版本会返回不同的数据). DRF提供了许多不同的版本控制方案. 可能会有一些客户端因为某些原因 ...
- python 不灭
进程与线程的区别? 1进程是CPU资源分配的最小单元,线程是CPU计算的最小单元. 2一个进程中可以有多个线程 3对于python来说,它的进程与线程与其它语言有差异,它是有GIL锁,保证同一进程中, ...
- "error" : "Content-Type header [application/x-www-form-urlencoded] is not supported"
https://blog.csdn.net/weixin_40161254/article/details/86000839 Es Head https://www.cnblogs.com/afeig ...