django项目、vue项目部署云服务器的详细过程

目录
  • 上线架构图
  • 服务器购买与远程连接
  • 安装git
  • 安装mysql
  • 安装redis(源码安装)
  • 安装python3.8(源码安装)
  • 安装uwsgi
  • 安装虚拟环境
  • 安装nginx(源码安装)
  • vue项目部署
  • django项目部署
    • 项目依赖安装
    • 数据库配置
    • 使用uwsgi启动django
    • 后端样式处理

上线架构图

服务器购买与远程连接

服务器可以在阿里云控制台首页 (aliyun.com)、登录 - 腾讯云 (tencent.com)购买。

这里我选择购买阿里云的云服务器ECS,购买时按自己需求,镜像这里选择CentOS 7.9

购买完成后,会拿到一个公网ip

选择远程连接工具,有很多种,Xshell、FinalShell等。

这里选择FinalShell,下载:FinalShell (hostbuf.com)

打开,连接。

连接的密码如果不知道或忘记了

安装git

安装git可以方便我们从直接从远程仓库拉取项目,当然,也可以不安装。

安装git

yum install git  -y

创建文件夹放项目

mkdir /home/projectcd /home/project

克隆

git clone https://gitee.com/....

安装mysql

包含了很多开发的工具

yum -y groupinstall "Development tools"

各种依赖

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

1.前往用户根目录

cd ~

2.下载mysql57

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3.安装mysql57

yum -y install mysql57-community-release-el7-10.noarch.rpm
yum install mysql-community-server --nogpgcheck

4.启动mysql57并查看启动状态

systemctl start mysqld.service
systemctl status mysqld.service

5.查看默认密码并登录

grep "password" /var/log/mysqld.log

mysql -uroot -p

6.修改密码(密码强度有要求,需要大小写字母、数字、符号)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qq332525..';

安装redis(源码安装)

1.前往用户根目录

cd ~

2.下载redis-5.0.5(源码包)

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

3.解压安装包

tar -xf redis-5.0.5.tar.gz

4.进入目标文件

cd redis-5.0.5

5.编译环境

make

6.复制环境到指定路径完成安装

cp -r /root/redis-5.0.5 /usr/local/redis

7.配置redis可以后台启动:修改下方内容

vim /usr/local/redis/redis.conf

添加:

daemonize yes

8.建立软连接(环境变量)

ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli

9.后台运行redis

cd /usr/local/redisredis-server ./redis.conf &

10.测试redis环境

redis-cli
# 退出exit

11.如果想要关闭redis服务

# 方式一
客户端连进去,敲  shutdown
# 方式二
pkill -f redis -9

安装python3.8(源码安装)

阿里云的centos默认装了python3.6和2.7,如果没有硬性要求,可以直接跳过安装python3.8。

各种依赖

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel  -y

1.前往用户根目录

cd ~

2.下载Python3.8.6

wget https://registry.npmmirror.com/-/binary/python/3.8.6/Python-3.8.6.tgz

3.解压安装包

tar -xf Python-3.8.6.tgz

4.进入目标文件

cd Python-3.8.6

5.把python3.8.6 编译安装到/usr/local/python38路径下

./configure --prefix=/usr/local/python38

6.编译并安装,如果报错,说明缺开头的哪些依赖

make &&  make install

7.建立软连接(环境变量)

ln -s /usr/local/python38/bin/python3 /usr/bin/python3.8
ln -s /usr/local/python38/bin/pip3 /usr/bin/pip3.8

目前云服务器各版本python环境

python      pip      2.7版本的命令
python3     pip3     3.6版本的命令
python3.8   pip3.8   3.8版本的命令

安装uwsgi

uwsgi是符合wsgi协议的web服务器,使用c写的性能高,上线要使用uwsgi。

安装uwsgi,注意用你后面要用的python版本安装

pip3.8 install uwsgi

建立软连接

ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi

安装虚拟环境

1.安装虚拟环境

pip3.8 install virtualenv

更新pip

python3.8 -m pip install --upgrade pip
python3.8 -m pip install --upgrade setuptools
pip3.8 install pbr
pip3.8 install virtualenvwrapper

2.建立虚拟环境软连接(环境变量)

ln -s /usr/local/python38/bin/virtualenv /usr/bin/virtualenv

3.配置虚拟环境:

vim ~/.bash_profile

填入下方内容,注意python版本用的是哪个

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.8
source /usr/local/python38/bin/virtualenvwrapper.sh

4.更新配置文件内容

source ~/.bash_profile

5.创建虚拟环境

mkvirtualenv -p python3.8 xx

退出

deactivate

安装nginx(源码安装)

1.前往用户根目录

cd ~

2.下载nginx1.13.7

wget http://nginx.org/download/nginx-1.13.7.tar.gz

3.解压安装包

tar -xf nginx-1.13.7.tar.gz

4.进入目标文件

cd nginx-1.13.7

5.配置安装路径:/usr/local/nginx

./configure --prefix=/usr/local/nginx

6.编译并安装

make && make install

7.建立软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

8.删除安装包与文件

cd ~
rm -rf nginx-1.13.7
rm -rf nginx-1.13.7.tar.xz

9.测试Nginx环境,服务器运行nginx,本地访问服务器ip

# 启动
nginx
# 停止
nginx -s stop

这个命令查看nginx是否在运行着

netstat -nlp | grep 80

然后访问

服务器公网ip:80

如果无法访问,说明云服务器安全组中没有添加80端口

vue项目部署

1.修改前端向后端发ajax请求的地址,以前都是向127.0.0.1发送请求,现在可以改成服务器地址了

2.编译vue项目成html,css,js

npm run build

3.项目根路径下会生成dist文件夹(编译过后的文件),本地压缩成zip(不要压成rar)

4.在服务器安装软件

yum install lrzsz

5.云服务器敲 rz,选择dist.zip上传

6.安装解压软件,解压文件

yum install unzip
unzip dist.zip

7.移动解压后的dist.zip,并重命名

mv ~/dist /home/html

8.去到Nginx配置目录

cd /usr/local/nginx/conf

9.备份Nginx配置文件

mv nginx.conf nginx.conf.bak

10.打开配置文件,添加内容

vim nginx.conf

内容

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1; # 可以改为自己的域名
        charset utf-8;
        location / {
            root /home/html; # html访问路径
            index index.html; # html文件名称
            try_files $uri $uri/ /index.html; # 解决单页面应用刷新404问题
        }
    }
} 

11.重新加载配置文件(重启nginx)

nginx -s reload

12.访问服务器ip地址(不写端口默认访问80端口)

xx.xx.xx.xx

django项目部署

项目依赖安装

1.修改django的某些关于ip地址的配置(数据库等ip地址不用改,因为就是本地的ip地址,当在服务器上运行时,连接的就是服务器的数据库)

2.django项目生成所需依赖

pip freeze > requirements.txt

3.把django项目上传到服务器上,通过rz命令,或者git命令

# 这里我把项目放到这个目录下
/home/project/

4.创建线上项目虚拟环境

mkvirtualenv project

5.虚拟环境下也要装uwsgi

pip install uwsgi

6.cd到项目根路径下

/home/project/

7.安装依赖

pip install -r ./requirements.txt

8.如果出现报错,比如安装mysqlclient模块容易报错,那么我可以打开requirements.txt,将mysqlclient模块那一行注释掉(#)

9.最后单独安装mysqlclient

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql-devel
yum install python-devel
pip install mysqlclient

数据库配置

1.进入数据库

2.创建项目需要的数据库

create database project default charset=utf8;

3.设置权限账号密码:账号密码要与项目中配置的一致

grant all privileges on project.* to 'username'@'%' identified by 'password';
grant all privileges on project.* to 'username'@'localhost' identified by 'password';
flush privileges;

4.退出数据库

quit;

5.回到虚拟环境,到项目目录中

数据库迁移命令

python manage_pro.py makemigrations
python manage_pro.py migrate

6.录入数据

使用uwsgi启动django

1.项目目录下,新建uwsgi的配置文件

vim ./project.xml

添加

<uwsgi>
   <socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
   <chdir>/home/project/</chdir> <!-- 项目路径 -->
   <module>project.wsgi</module>  <!-- project为wsgi.py所在目录名-->
   <processes>4</processes> <!-- 进程数 -->
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

2.启动uwsgi

uwsgi -x ./luffyapi.xml

3.查看uwsgi进程

ps aux |grep uwsgi

4.配置nginx,把8080端口的动态请求转发给uwsgi里配置的8000端口

vim /usr/local/nginx/conf/nginx.conf

内容:

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1; # 可以改为自己的域名
        charset utf-8;
        location / {
            root /home/html; # html访问路径
            index index.html; # html文件名称
            try_files $uri $uri/ /index.html; # 解决单页面应用刷新404问题
        }
    }
    # 新增的server
    server {
        listen 8080;
        server_name  127.0.0.1; # 可以改为自己的域名
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;  # 端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT project.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /home/project/; # 项目路径
        }
    }
}

5.重启nginx

nginx -s reload

6.这时候前端向服务器id:8080就等于向后端项目发送了请求。

后端样式处理

这时候访问后端的admin接口是没有样式的,还需要下列设置

1.编辑线上项目的配置文件

vim /home/project/../settings/pro.py

2.修改static配置,新增STATIC_ROOT、STATICFILES_DIRS

STATIC_URL = '/static/'
STATIC_ROOT = '/home/project/static'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "../static"),)

3.项目目录下没有 static 文件夹需要新建

mkdir /home/project/static

4.完成静态文件迁移

python /home/project/manage_pro.py collectstatic

5.修改nginx配置

vim /usr/local/nginx/conf/nginx.conf

内容

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1; # 可以改为自己的域名
        charset utf-8;
        location / {
            root /home/html; # html访问路径
            index index.html; # html文件名称
            try_files $uri $uri/ /index.html;
        }
    }
    server {
        listen 8080;
        server_name  127.0.0.1; # 可以改为自己的域名
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;  # 端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT project.wsgi;
           uwsgi_param UWSGI_CHDIR /home/project/;
        }
    }
    location /static {
        alias /home/project/static;
    }
} 

6.重启nginx

nginx -s reload

到此这篇关于django项目、vue项目部署云服务器的文章就介绍到这了,更多相关django vue项目部署云服务器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于腾讯云服务器部署微信小程序后台服务(Python+Django)

    一 前言 微信小程序,相信大家早已熟知,它是一种无需下载安装即可使用的轻型应用,具有跨平台和接近 Native App 性能体验的优势.从开发模式上说,它是前后端分离的,微信小程序负责实现前端应用,后端服务可以使用任何你说熟知的开发语言,如 PHP . NodeJs . Java . C# . Python 等,因而,微信小程序的开发文档主要是围绕 WXML . WXSS 等前端框架.组件或样式布局进行讲解,几乎看不到后端技术的身影.本文主要介绍如何在腾讯云服务器上部署 Python+Djang

  • 部署Django到阿里云服务器教程示例

    基于Ubuntu16.04 + Python3 + nginx + mysql + Django 接下来先安装这些必要的环境,这些操作都是在你已经购买了阿里云服务器.并且在本地你已经搭建好了Django博客.现在我们所做的就是把本地的环境在阿里云的服务器上重新搭一遍. 这里先简单的说一下阿里云服务器,我自己买的是云服务器ESC,需要配置一下安全组规则,就是端口,按下图配置即可,最重要的是22和88端口. 然后就是我们的服务器在实例里,我的是Ubuntu16.04,要部署到阿里云上点击远程连接,第

  • pycharm部署django项目到云服务器的详细流程

    目录 前言 1-下载python3.8压缩包 2-解压缩安装包 3-安装依赖工具 4-安装python3.8 6-修改yum配置文件 7-配置python 8-检验配置结果 9-上传并部署Django项目 前言 大家想一想,如果要在一台电脑上运行python程序需要些什么工具呢? 显而易见,我们需要在电脑上安装python应用,配置python环境等等.那么如果我们需要在云服务器上运行python程序的话要怎么做呢?相信大家已经想到了,就是照葫芦画瓢,在云服务器上做相同的工作就好了. 1-下载p

  • django项目、vue项目部署云服务器的详细过程

    目录 上线架构图 服务器购买与远程连接 安装git 安装mysql 安装redis(源码安装) 安装python3.8(源码安装) 安装uwsgi 安装虚拟环境 安装nginx(源码安装) vue项目部署 django项目部署 项目依赖安装 数据库配置 使用uwsgi启动django 后端样式处理 上线架构图 服务器购买与远程连接 服务器可以在阿里云控制台首页 (aliyun.com).登录 - 腾讯云 (tencent.com)购买. 这里我选择购买阿里云的云服务器ECS,购买时按自己需求,镜

  • Vue项目打包并部署nginx服务器的详细步骤

    目录 使用场景: 一.打包 二.部署(nginx) 总结 使用场景: 我们常使用前后端分离项目时,会需要将前端vue打包然后部署. 一.打包 vue项目其实可以直接通过一下语句进行打包: npm run build 默认打包情况如下: 当我们需要将打包名称以及静态资源位置进行修改时便需要进行相应的配置: 1.首先在项目根目录下创建vue.config.js文件 配置内容如下所示(附带跨域问题解决): module.exports = { //打包 publicPath: './', output

  • vue项目打包后部署到服务器的详细步骤

    耽误了几天, 终于开始写第二篇博客了, 这篇会讲怎么将vue项目打包部署到服务器, 其实和上一篇的uni-app步骤一样的, 就是最后多了一步修改nginx配置, 好 , 上操作 一 ,打包项目 vscode下载链接: 链接: https://pan.baidu.com/s/1PD-Sts-e2V17wSs5FvrLmg 提取码: 2jbf 1 , vscode打开你的vue项目 -- > 点终端- > 新终端- >输入npm run build 按回车 , 显示正在打包..稍等一会 2

  • Vue.js项目部署到服务器的详细步骤

    前言 最近做完了一个项目,Vue.js 2.0 + vuex + axios,还是有点大的.想着做了这么久,放服务器给朋友们体验一下,帮忙找找BUG,于是就有了研究服务器这一篇文章了. 准备工作 服务器 既然是部署到服务器,肯定是需要一个云的.我这里找基友拿的一个,做测试的话,可以买阿里云的学生机,9.9 一个月,不过不是学生的话就比较麻烦,因为涉及敏感操作都需要验证码. 编译打包 将项目打包成 dist 文件,这里我需要跨域请求一些数据,还写了一个小型服务器, app.js 放到 dist 文

  • Vue项目webpack打包部署到服务器的实例详解

    Vue项目webpack打包部署到服务器 这篇博文主要说的就是我今天遇到的问题,而且在经过我的询问,好多人在打包部署的时候都遇到了一些问题,下面就来说下,如何将Vue项目放置在服务器上,这里以Tomcat为例. 必须要配置的就是/config/index.js 在vue-cli webpack的模板下的/config/index.js,我们可以看到assetsPublicPath这个键,并且这个东西还出现了两次,我第一次打包的时候,只是修改了最下面的assetsPublicPath,将它从'/'

  • Vue应用部署到服务器的正确方式

    本文介绍了Vue应用部署到服务器,分享给大家,希望此文章对各位有所帮助. 很多时候我们发现辛辛苦苦写的VueJs应用经过打包后在自己本地搭建的服务器上测试没有什么问题,但真正放在服务器上后,会发现或多或少的问题,比如:页面出现空白现象,获取资源路径不对等,我相信以VueJs为技术栈来进行前端开发的小伙伴或多或少都会遇到这样的问题,我也遇到过,那现在我们就来一一解决这样的问题. 如何打包 基于Vue-Cli,通过npm run build来进行打包的操作 如何部署 将打包出来的资源,基于Vue-C

  • 阿里云服务器购买搭建过程的方法步骤

    1.购买服务器 在示例中购买的为阿里云服务器,在校大学生可以购买阿里云的学生认证特权服务器 (云翼计划)网址:https://promotion.aliyun.com/ntms/act/campus2018.html 购买云服务器ECS 价钱比较便宜,一年的费用也就一百多块钱,这款服务器需要进行学生学信网认证,按照要求认证就行(此服务器比较抢手,会有一些服务器贩子天天抢,你不一定能抢上). 注意: 1.购买服务器的预装环境选择你自己电脑对应的系统 2.地域选择你相对应的地区 比如: 2.阿里云配

  • 使用Gitee自动化部署python脚本的详细过程

    一.前期准备 1.1 安装环境 1.安装python3 2.打开命令行安装selenium pip install selenium 二.python代码 2.1 源码 #!/usr/bin/python # -*- coding: utf-8 -*- import time from selenium import webdriver from selenium.webdriver.common.alert import Alert # 模拟浏览器打开到gitee登录界面 driver = w

  • 使用vmware测试PXE批量安装服务器的详细过程

    目录 一.准备阶段 1.准备环境 2.安装方式 3.网卡配置 二.安装阶段 1.安装httpd 2.安装tftp-server 3.复制pxe文件 4.安装dhcp服务 三.安装kickstart自动安装工具 四.在客户主机上测试 五.相关服务 一.准备阶段 1.准备环境 Vmware workstation Centos7一台做pxe-server 地址:192.168.138.5 子网掩码:255.255.255.0 网关:192.168.138.2 关闭selinux和防火墙 2.安装方式

随机推荐