用到的工具,xftp(文件互传),xshell(远程连接)

aliyun服务器防火墙开启的端口。80,22(ssh),3306(mysql),8000,9090

部署项目:

1,安装nginx

  1. 1>http://nginx.org/en/download.html
  2. 2>下载: wget http://nginx.org/download/nginx-1.17.0.tar.gz
  3. 3>解压压缩包 tar xf nginx-1.17.0.tar.gz
  4. 4>安装依赖 yum -y install pcre-devel zlib-devel
  5. 5>进入解压后的文件 安装nginx ./configure --prefix=/usr/local/nginx
  6. 6>make make install
  7. 7>启动nginx /usr/local/nginx/sbin/nginx 可通过浏览器访问服务器公网ip看到欢迎页面

2,安装mysql数据库

  1. 安装依赖:yum -y install ncurses-devel gcc-* bzip-* yum -y install gcc-*
  1. 安装cmake
  2.  
  3. wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4.tar.gz
  4. 解压cmake
  5. 进入cmake文件夹,运行configure命令 ./configure
  6. 没有error说明安装成功 然后cmake进行编译 make -j4 make install
  7. 查看cmake版本确认是否安装成功 cmake --version
  1. 安装boost 1.59版本
  2. 下载: https://www.boost.org/users/history/version_1_59_0.html
  3. 解压boost,因为boost是绿化版,直接解压就好了
  4. 剪切boost文件夹 mv boost_1_59_0 /usr/local/boost
  1. 安装mysql
  2. 从官网下载mysql5.7的社区版压缩包
  3. 解压并进入解压后的文件夹执行下面的命令:
  4.  
  5. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  6. -DMYSQL_DATADIR=/usr/local/mysql/data/ \
  7. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  8. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  9. -DWITH_MYISAM_STORAGE_ENGINE=1 \
  10. -DENABLED_LOCAL_INFILE=1 \
  11. -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
  12. -DWITH_DEBUG=0 \
  13. -DWITH_EMBEDDED_SERVER=1 \
  14. -DDOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost
  1. 代表的意义分别是:
  2. 指定安装路径
  3. 指定数据目录
  4. 指定sock文件路径
  5. 安装Innodb存储引擎
  6. 安装Myisam存储引擎
  7. 允许使用Load data 命令从本地导入数据
  8. 安装所有字符串,默认字符串utf8,校验字符
  9. 关闭debug
  10. 生成一个libmysqld.a的库,这个库同时集成了mysql服务和客户端API
  11. 允许boost下载boost库文件
  1. 没有报错的话进行编译 make -j4 make install
  1. 如果在编译时候出错,或者make install后出错,可以重新编译make -j4make install
  2. 因为可能网速问题,导致一些包没有下载下来,所以重新make -j4make install
  3. 就好了
  1. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  2. ll /usr/local/mysql/
  1. 添加mysql的用户,用户名为mysql,并利用 chown 将指定文件的拥有者改为指定的用户mysql用户
  1. useradd -s /sbin/nologin -r mysql
  2. chown mysql.mysql /usr/local/mysql/ -R
  3. ll /usr/local/mysql/
  1. 建立软连接
  1. ln -sf /usr/local/mysql/bin/* /usr/bin/
  2. ln -sf /usr/local/mysql/lib/* /usr/lib/
  3. ln -sf /usr/local/mysql/libexec/* /usr/local/libexec
  4. ln -sf /usr/local/mysql/share/man/man1/* /usr/share/man/man1
  5. ln -sf /usr/local/mysql/share/man/man8/* /usr/share/man/man8
  1. # 编辑配置文件
  2. vim /etc/my.cnf

  1. /usr/local/mysql//bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

Q8jZpqqlqG%H  这个是mysql密码,一定记得记录下来

启动mysql

  1. /etc/init.d/mysql start
  1. yum -y install lsof
  2. lsof -i :3306

设置mysql

  1. mysql_secure_installation

Ctr+d退出

这样才能用Navicat去连接数据库

3,部署python

  1. 下载python文件 wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
  2. 解压并进入python文件夹
  3. yum -y install gcc-* openssl-* libffi-devel sqlite-devel
  4. ./configure --enable-optimizations --with-openssl=/usr/bin/openssl
  5. make -j8 make install
  6. 默认安装路径:/usr/local/lib/python3.7
  7.  
  8. 升级pip pip3 install --upgrade pip
  9. 安装虚拟环境,因为有可能上线多个项目,每个项目所需工具不一样,所以创建虚拟环境,一个项目一个环境,互不影响:pip3 install virtualenv
  10. 创建一个虚拟环境 virtualenv -p python3 web
  11. 使得虚拟环境生效:source web/bin/activate
  12. 然后在web虚拟环境下安装Django: pip3 install django==2.1.8
  13. 创建一个django项目: django-admin.py startproject myweb
  14. django-admin.py
  15. 修改配置文件
  16. vim myweb/settings.py

  1. 指定端口,启动Django项目:python3 manage.py runserver 0.0.0.0:8000
  2. 通过浏览器访问服务器官网ip+端口号可查看页面信息 119.23.204.209:8000
  3. 服务器mysql版本:5.7 Django版本:2.1 python版本:3.7

4,发布网站

  1. 安装uwsgi : pip install uwsgi pip3 install uwsgi
  2. mkdir /etc/uwsgi
  3. vim /etc/uwsgi/uwsgi.ini 写入以下内容
  4. [uwsgi]
  5. uid=root //谁启动uwgi
  6. gid=root //组是谁
  7. socket = 127.0.0.1:9090 //监听的ip地址和端口是多少
  8. master = true //启动主进程
  9. vhost = true //多站模式,可以发布多个网站
  10. no-site = true //多站模式时不设置入口模块和文件
  11. workers = 2 //子进程数
  12. reload-mercy = 10 //平滑的重启
  13. vacuum = true //退出、重启时清理文件
  14. max-requests = 1000 //开启10000个进程后,启动respawn下
  15. limit-as = 512 //将进程的总内存量控制在512M
  16. buffer-size = 30000 //buffer的大小
  17. pidfile = /var/run/uwsgi9090.pid //pid文件,用于下面的脚本启动、停止该进程
  18. daemonize = /var/log/uwsgi9090.log
  19. pythonpath=/root/web/lib/python3.7/site-packages
  1. 启动uwsgiuwsgi --ini /etc/uwsgi/uwsgi.ini
  1. 查看启用端口信息: netstat -ntpl
  2. 关闭uwsgi
  3. cat /var/run/uwsgi9090.pid kill -9 11830
  4. vim /etc/init.d/uwsgi 写入以下内容
  5. #! /bin/sh
  6. DESC="uwsgi daemon"
  7. NAME=uwsgi
  8. DAEMON=/usr/local/bin/uwsgi
  9. CONFIGFILE=/etc/uwsgi/$NAME.ini
  10. PIDFILE=/var/run/${NAME}9090.pid
  11. SCRIPTNAME=/etc/init.d/$NAME
  12. FIFOFILE=/tmp/uwsgififo
  13. set -e
  14. [ -x "$DAEMON" ] || exit 0
  15.  
  16. do_start() {
  17. if [ ! -f $PIDFILE ];then
  18. $DAEMON $CONFIGFILE || echo -n "uwsgi running"
  19. else
  20. echo "The PID is exit..."
  21. fi
  22. }
  23.  
  24. do_stop() {
  25. if [ -f $PIDFILE ];then
  26. $DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
  27. rm -f $PIDFILE
  28. echo "$DAEMON STOPED."
  29. else
  30. echo "The $PIDFILE dosen't found"
  31. fi
  32. }
  33.  
  34. do_reload() {
  35. if [ -p $PIDFILE ];then
  36. echo w > $FIFOFILE
  37. else
  38. $DAEMON --touch--workers--reload $PIDFILE || echo -n "uwsgi can't reload"
  39. fi
  40. }
  41.  
  42. do_status() {
  43. ps aux|grep $DAEMON
  44. }
  45.  
  46. case "$1" in
  47. status)
  48. echo -en "Status $NAME: \n"
  49. do_status
  50. ;;
  51. start)
  52. echo -en "Starting $NAME: \n"
  53. do_start
  54. ;;
  55. stop)
  56. echo -en "Stopping $NAME: \n"
  57. do_stop
  58. ;;
  59. reload|graceful)
  60. echo -en "Reloading $NAME: \n"
  61. do_reload
  62. ;;
  63. *)
  64. echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
  65. exit 3
  66. ;;
  67. esac
  68. exit 0
  1. # 设置权限
  2. chmod 755 /etc/init.d/uwsgi
  3. 启动uwsgi /etc/init.d/uwsgi start
  4. vim /usr/local/nginx/conf/nginx.conf
  1. 写入以下内容:
  2. 注意:如果域名已经解析过了,server_name localhost;改为server_name www.terroristhouse.com;
  1. server {
  2. listen 80;
  3. server_name localhost;
  4.  
  5. location / {
  6. include uwsgi_params;
  7. uwsgi_pass 127.0.0.1:9090;
  8. uwsgi_param UWSGI_SCRIPT myweb.wsgi;
  9. uwsgi_param UWSGI_CHDIR /usr/local/nginx/html/myweb;
  10. index index.html index.htm;
  11. client_max_body_size 35m;
  12. #uwsgi_cache_valid 1m;
  13. #uwsgi_temp_file_write_size 64k;
  14. #uwsgi_busy_buffers_size 64k;
  15. #uwsgi_buffers 8 64k;
  16. #uwsgi_buffer_size 64k;
  17. #uwsgi_read_timeout 300;
  18. #uwsgi_send_timeout 300;
  19. #uwsgi_connect_timeout 300;
  20. }
  21. }
  1. #移动项目到指定文件夹
  2. mv myweb /usr/local/nginx/html/
  1. 静态文件配置
  2.  
  3. /usr/local/nginx/conf/nginx.conf文件中设置
  4. server {
  5. listen 80;
  6. server_name www.terroristhouse.com;
  7. location /static/ {
  8. #autoindex on;
  9. alias /usr/local/nginx/html/mysite7/static/;
  10. break;
  11. #alias /usr/local/nginx/html/collectedstatic;
  12. }
  13. location /media/ {
  14. alias /usr/local/nginx/html/mysite7/media/;
  15. break;
  16. #autoindex on;
  17. #alias /usr/local/nginx/html/collectedstatic;
  18. }
  1. 收集本地项目安装的库项目目录下
  2. 导出库:pip3 freeze > requirements.txt
  3.  
  4. 在服务器虚拟项目中安装库
  5. 导入库: pip3 install -r requirements.txt
  1. 重启 uwsginginx 用浏览器访问域名可查看页面
  2.  
  3. /etc/init.d/uwsgi stop 停止运行uwsgi
  4. /etc/init.d/uwsgi start 开启运行uwsgi
  5. killall -9 nginx 关闭nginx的进程
  6. /usr/local/nginx/sbin/nginx 启动和查看nginx服务

done。

centos7服务器部署django项目。的更多相关文章

  1. 腾讯云服务器部署 django项目整个流程

    CentOS7下部署Django项目详细操作步骤 前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本, 接下来我们来看整个配置项目流程. 部署是基于:ce ...

  2. 转载:CentOS7下部署Django项目详细操作步骤

    部署是基于:centos7+nginx+uwsgi+python3+django 之上做的 文章转自:Django中文网        https://www.django.cn/article/sh ...

  3. CentOS7下部署Django项目详细操作步骤

    严格按下面步骤 一.更新系统软件包 yum update -y 二.安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" ...

  4. linux上使用nginx、uwsgi部署django项目

    参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...

  5. 在裸机centos7系统中部署django项目的过程

    概要 本文用一台安装了centos7.5系统的裸奔Linux机器(当然是虚拟机)详细讲解从无到有部署django项目的过程. 安装必要的工具 配置yum源 至于什么是yum源大家请自行百度,本人用的是 ...

  6. 云服务器上利用Docker部署Django项目

    转载别人的,请看下面链接 云服务器上利用Docker部署Django项目

  7. nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!

    前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...

  8. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

  9. 宝塔面板成功部署Django项目流程

    宝塔面板部署Django项目完整流程 上线Django项目记录,超简单,避免无意义的踩坑! 第一步:安装python管理器 在宝塔在线面板安装“python项目管理器” 第二步:安装适配python版 ...

随机推荐

  1. 【技术博客】 Laravel 5.1单元测试(PHPUnit)入门

    目录 Laravel 5.1单元测试(PHPUnit)入门 简介 安装与配置 1. 安装 2. 配置 编写测试样例 1. 新建测试样例 2. 编写函数的测试 3. 编写Web功能测试 运行测试与查看结 ...

  2. 1-5docker私有镜像仓库

    1.简单操作 1.在 https://cloud.docker.com 免费注册一个 Docker 账号 2.登录 docker login #命令登录 Docker Hub. 3.注销 docker ...

  3. ReentrantLock 的公平锁源码分析

    ReentrantLock 源码分析   以公平锁源码解析为例: 1:数据结构: 维护Sync 对象的引用:   private final Sync sync; Sync对象继承 AQS,  Syn ...

  4. Hyper-V虚拟机安装Ubuntu,启动的时候会出现:Please remove the installation medium,then press ENTER

    Hyper-V虚拟机安装Ubuntu成功以后,重启的时候页面会一直卡在下面,并报Please remove the installation medium,then press ENTER,这是因为启 ...

  5. Java并发编程基础-Unsafe

    前言:Unsafe是Java中一个底层类,包含了很多基础的操作,比如数组操作.对象操作.内存操作.CAS操作.线程(park)操作.栅栏(Fence)操作,JUC包.一些三方框架都使用Unsafe类来 ...

  6. [翻译] InfluxDB 存储机制解析

    原文地址: https://medium.com/dataseries/analysis-of-the-storage-mechanism-in-influxdb-b84d686f3697 TODO

  7. MIME类型对应表:

    MIME类型对应表: 常用MIME类型: 扩展名 MIME类型 .iso ISO File .rar application/x-rar-compressed .zip application/zip ...

  8. SocketChannel简述

    前言 在前面的Channel概述的分类中提到过SocketChannel主要是用来基于TCP通信的通道.这篇文章详细介绍下SocketChannel SocketChannel是什么 SocketCh ...

  9. SAP销售订单需求类型的确定优秀级

    需求类型的确定优秀级:1.策略组里的需求类型:2.MRP组里的:3.SO行项目类别+MRP类型4.SO行项目类别 部分截图:

  10. typing类型注解库

    简介 动态语言的灵活性使其在做一些工具,脚本时非常方便,但是同时也给大型项目的开发带来了一些麻烦. 自python3.5开始,PEP484为python引入了类型注解(type hints),虽然在p ...