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脚 ...
随机推荐
- Java并发编程实战 第14章 构建自定义的同步工具
状态依赖性 定义:只有满足特定的状态才能继续执行某些操作(这些操作依赖于固定的状态,这些状态需要等待别的线程来满足). FutureTask,Semaphroe,BlockingQueue等,都是状态 ...
- zabbix命令之:zabbix_sender命令
zabbix server除了可以从客户端主动获取数据,客户端也可以主动将数据推送给服务端,客户端通过zabbix_sender指令来实现向服务端主动推送数据. 在zabbix客户端安装 配置yum源 ...
- jumpserver部署1.0版本
A. jumpserver概述 跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点:没有实现对运维人员操作行为的 ...
- mvn clean 后 mvn package失败
项目完全没有问题,就是mvn clean package 失败,或者打包成功后发布项目无法启动. 很可能的原因是,clean后一些需要编译生成的文件还没有生成,直接package会出错,或者packa ...
- SpringBoot + kaptcha 生成、校对 验证码
1.引入 kaptcha 的 Maven 依赖 <dependency> <groupId>com.github.penggle</groupId> <art ...
- spark2.1.0 自定义AccumulatorV2累加少值(线程不安全)?
一.踩坑经历 自定义的accumulator是线程不安全的,会造成累加结果不正确.自定找了很久没想到是线程不安全行成的. 二.解决方法 创建一个线程安全的集合变量(我用的是Java的Concurren ...
- python2---输出1--100之间的偶数
#!/usr/bin/env python方法1:num = 1while num <= 100: if num % 2 == 0: print(num) num += 1方法2: #!/usr ...
- HTML5测试(一)
HTML5测试一 1. 问题:HTML5 之前的 HTML 版本是什么? A.HTML 4.01 B.HTML 4 C.HTML 4.1 D.HTML 4.9 答案:A HTML5 是 HTML 最新 ...
- ef复杂模型添加
模型浏览器 函数导入-添加存储过程名称 添加复杂实体.复杂实体可以手动在xml里面创建.在complextype里面
- [BZOJ2839]:集合计数(组合数学+容斥)
题目传送门 题目描述 .(是质数喔~) 输入格式 一行两个整数N,K. 输出格式 一行为答案. 样例 样例输入: 3 2 样例输出: 样例说明 假设原集合为{A,B,C} 则满足条件的方案为:{AB, ...