Centos部署项目
nginx + virtualenv + uwsgi + django + mysql + supervisor 部署项目
一、安装Python3
二、安装MariaDB,并授权远程
grant all privileges on *.* to root@'%' identified by'mysql密码';
flush privileges;
三、导出数据库
mysqldump --databases -uroot -p crmproject > MyCRM.dump
四、使用xftp或者winSCP传入项目和数据库
五、导入数据库
mysql -uroot -p < /opt/MyCRM.dump
六、修改项目的settings.py文件
ALLOWED_HOSTS = ['*']
STATIC_ROOT = '/opt/static' 数据库的连接配置
七、在虚拟环境里安装安装uwsgi
pip3 install uwsgi
八、使用uwsgi启动项目
方式1:直接输入命令启动
uwsgi --http :8000 --module CRMProject.wsgi # --module 指定项目文件夹路径
方式2:使用ini配置文件启动
vim uwsgi.ini '''
配置文件如下 [uwsgi]
# Django-related settings # the base directory (full path)
# 项目的绝对路径
chdir = /opt/CRMProject # Django's wsgi file
# 项目中根据chdir找到wsgi.py文件
module = CRMProject.wsgi # the virtualenv (full path)
# 虚拟环境的绝对路径
home = /root/Envs/MyCRM # process-related settings
# master
# 主进程
master = true # maximum number of worker processes
# 子进程数
processes = 1 # the socket (use the full path to be safe
#使用nginx反向代理,填写socket连接
socket = 0.0.0.0:8000 # 直接使用uwsgi运行http服务,使用http连接
#http = 0.0.0.0:8000
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true # 热启动时间设置
py-autoreload=1 '''
# 将每1秒检查python模块更改并最终重新启动实例
uwsgi --ini uwsgi.ini
现阶段能通过IP:8000访问项目,但是目的是通过80端口访问
九、修改nginx配置
vim nginx/conf/nginx.conf '''配置如下'''
server {
listen 80;
server_name 192.168.11.59; location / {
include uwsgi_params;
uwsgi_pass 0.0.0.0:8000;
}
location /static {
alias /opt/static;
}
}
# 收集配置文件(在项目的虚拟环境下)
python3 manage.py collectstatic
重启nginx,此时启动nginx和通过uwsgi启动项目即能正常访问
十、使用supervisor管理
1.安装
### 使用python2环境安装
### 使用python2环境安装
### 使用python2环境安装 yum install python-setuptools
easy_install supervisor
2.通过命令生成supervisor的生成配置文件
echo_supervisord_conf > /etc/supervisor.conf
3.修改配置文件
# 在文件末尾添加 [program:crm]
command=/root/Envs/MyCRM/bin/uwsgi --ini /opt/CRMProject/uwsgi.ini
stopasgroup=true
killasgroup=true # program 指定项目名称
# command 启动程序的命令,一定要绝对路径
#stopasgroup=false 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
#killasgroup=false 默认为false,向进程组发送kill信号,包括子进程
4.启动supervisor
supervisord -c /etc/supervisor.conf
5.使用supervisor启动和管理项目
方式1:通过交互式启动
[root@localhost opt]# supervisorctl -c /etc/supervisor.conf
crm RUNNING pid 3752, uptime 0:40:52
supervisor> start/stop/restart/status 项目名
start/stop/restart/status all
方式2:通过参数直接启动
supervisorctl -c /etc/supervisor.conf start all
Centos部署项目的更多相关文章
- netcore项目在Centos部署:nohup和supervisor方式
Centos上部署netcore项目 1 准备工作 在Centos上部署netcore应用程序有两种常用方式:nohup和supervisord,这里简单演示一下这两种部署方式. 首先我们写一个简单的 ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- git管理和自动部署项目
当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...
- linux的tomcat服务器上部署项目的方法
在tomcat服务器上部署项目的前提,是我们已经准备好了tomcat服务器.在CentOs环境下部署JavaWeb环境,部署tomcat服务器在前面的文章中已经总结过了,可以参考以前文章. 一 to ...
- VMware虚拟机安装CentOS6.4、部署web项目全过程(设置固定IP、安装JDK、Tomcat、Redis、部署项目)
概述:该篇随笔介绍了在VMware上安装centOS.在centOS上安装JDK.安装Tomcat.安装Redis并部署项目的全过程,虽然参考了很多优秀的文章,但实践.整理.补充都很用心,若要复制粘贴 ...
- 超详细Pycharm部署项目视频教程
在实际的工作中,不管你是开发.测试还是运维人员,都应该掌握的一项技能就是部署项目,简单说就是把项目放到服务器中,使其正常运行.今天猪哥就以咱们的微信机器人项目为例子,带大家来部署一下项目.本文将会详细 ...
- 腾讯云linux系统部署项目无法通过外网访问
最近尝试使用了一下腾讯去的linux系统服务器,但是却遇到各种问题,下面记录的问题是项目部署完成后却无法通过外网访问. 服务器:腾讯云 系统 :CentOS 8.0 64位 处理思路:通过度娘百般摸索 ...
- Centos8部署jdk、mysql8、tomcat,并部署项目到tomcat中
目录 Linux系统的学习与使用(Centos8) Linux系统的介绍 为什么要选择Linux作为服务器运行的操作系统 目录结构 使Linux系统能够联网(登录root用户) 常用命令 cd命令(用 ...
- docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)
前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...
随机推荐
- SEO前端篇(一)页面布局
由于工作需要,在此对seo的一些相关知识做一个总结. 首先要了解必要的基础知识,什么是SEO以及搜索引擎的工作原理.这样才能继续下面的话题. 一.SEO定义 SEO全称:Search English ...
- Linux中搜索大于200M的文件
Linux中清理磁盘空间时,经常需要找出大于200M的文件. 这个命令可以实现这个功能: find / -size +200M -exec du -h {} \;
- 流程图软件Microsoft Visio
简介 Visio是一款能处理复杂信息.系统和流程进行可视化.分析和交流的软件,从“office 2003”以后,Visio作为一个单独软件发行,不再集成于office办公软件. 下载安装 官方下载最新 ...
- Kubernetes 基于 RBAC 的授权(十六)
目录 一.RBAC介绍 1.1.角色和集群角色 1.2.RoleBinding 和 ClusterRoleBinding 1.3.资源 1.4.主体 二.命令行工具 2.1.kubectl creat ...
- 【网络开发】详谈socket请求Web服务器过程
最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有"连接建立"的发生 ...
- POJ1191 棋盘分割
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: Accepted: 题目链接: http://poj.org/problem?id ...
- 11 Reponse对象+ServletContext对象
1.HTTP协议: (1)请求消息:客户端发送给服务器端的数据 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 (2)响应消息:服务器端发送给客户端的数据 * 数据格式: 1. ...
- 【转帖】漏洞数量242:15,英特尔和AMD CPU谁更安全?
漏洞数量242:15,英特尔和AMD CPU谁更安全? http://www.eetop.cn/cpu_soc/6946340.html 越来越多的用户开始怀疑哪种处理器可以最好地保护他们的计算机,数 ...
- 对于并发任务,应该使用 Task 替代 BackgroundWorker
背景 EF + Oracle,并发存储监控记录,使用 BackgroundWorker 时产生错误如下: public void MonitorLogging(DateTime DateStart, ...
- 在iis中部署网站出现的错误
第一次错误: 解决的方案:点击网站新建一个同名的应用池,选择网站的基本设置,选中同名的应用池 接下来可能会有第二个错误 错误摘要HTTP 错误 500.21 - Internal Server Err ...