详解centos7+django+python3+mysql+阿里云部署项目全流程
作者:罗小辉 发布时间:2024-01-24 15:10:54
(PS:本文假设你已经在本地联调好django和客户端,只是需要将django部署到外网)
购买阿里云服务器
到[阿里云官网],选择轻量应用服务器, 步骤如图所示:
地域随便选择哪一个,镜像的话,对比了CentOS,Debian,Ubuntu,我最终选择了CentOS,因为流行嘛~配置的话,看项目本身了,我这里选择的是1G内存,20G硬盘最小配置,也够用了。
配置python环境
进入服务器
选择好服务器并付费之后,点击阿里云的控制台-云计算基础服务-轻量应用服务器:
点击CentOS服务器,进入后,点击右上角的远程连接,如图所示:
安装python3并与python2共存
CentOS 7.3 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。当我们在命令行里输入
python -V
就可以看到版本为2.7.5。
安装python3
因为我们要安装python3版本,所以python要指向python3才行,目前还没有安装python3,先备份,备份之前先安装相关包,用于下载编译python3
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
这几个包必须得安装,否则安装python3时可能会出现各种错误.
运行下面两个命令,进行备份
cd /usr/bin
mv python python.bak
安装
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
解压
tar -xvJf Python-3.6.3.tar.xz
切换进入
cd Python-3.6.3
编译安装
./configure prefix=/usr/local/python3
make && make install
安装完毕,/usr/local/目录下就会有python3了
实现python3和python2的共存
添加python3的软链
rm /usr/bin/python
ln -s /usr/local/python3/bin/python3 /usr/bin/python
这时候在执行命令python -v和python2 -V,应该就能看到python3和python2的版本了。
因为执行yum需要python2版本,所以我们还要修改yum的配置,执行:
vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2
同理
vi /usr/libexec/urlgrabber-ext-down
文件里面的#! /usr/bin/python 也要修改为#! /usr/bin/python2
安装django项目中需要的python相关包
安装python相关包需要用到python中的pip命令,比如我项目中需要的包有:
pip install Django
pip install PyMySQL
pip install Scrapy
pip install beautifulsoup4
pip install bs4
pip install lxml
pip install numpy
pip install requests
pip install simplejson
pip install urllib3
注意:在执行命令pip install mysqlclient时会报错,这里需要特别强调下,不然在后面运行需要连mysql的django项目时,会报do you install mysqlclient?
解决方法如下:
sudo python -m pip install mysqlclient
此时python所有需要的包,都已经安装好
安装mysql
下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install mysql-devel
安装MySQL
yum install mysql-community-server
启动MySQL服务
systemctl start mysqld
查看MySQL的启动状态
systemctl status mysqld
开机启动
systemctl enable mysqld
修改root本地登录密码
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
set password for 'root'@'localhost'=password('!2Qw32sd');
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误
配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
导入django和mysql数据库
导入django项目
由于我项目放在码云上面,然后CentOS又自带git,我的数据库文件也比较小,所以也放在django项目中了,用git下载下来:
sudo su root
mkdir project
cd project
git clone https://gitee.com/dafeige/django-restframework-demo.git
此时,我的数据库文件路径是:project/django-restframework-demo/tutorial/test_python.sql,由于需要将此sql文件导入到mysql数据中,需要给此文件加权限:
chmod 777 project/django-restframework-demo/tutorial/test_python.sql
导入sql数据库文件
进入数据库
mysql -u root -p
导入sql文件
create database test_python;
use test_python;
source project/django-restframework-demo/tutorial/test_python.sql;
部署django工程
进入到工程中
sudo su root
cd project/django-restframework-demo/tutorial
python manage.py runserver 0.0.0.0:80 &
最后面的”&”,这符号表示在后台运行该进程。这里的IP地址如果用公网IP
会运行不了,而用0.0.0.0则外网和127.0.0.1都能够访问。
来源:https://blog.csdn.net/a394268045/article/details/79288718


猜你喜欢
- dplyr专注处理dataframe对象, 并提供更稳健的与其它数据库对象间的接口。一、5个关键的数据处理函数:select() 返回列的子
- 爬虫库使用简单的requests库,这是一个阻塞的库,速度比较慢。解析使用XPATH表达式总体采用类的形式多线程使用concurrent.f
- 1。下载mysql-noinstall-5.1.33-win32.zip,然后解压 2。复制my-huge配置文件为my.ini 在 [my
- 一 引入我们学习变量是为了让计算机能够像人一样去记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物的状态分成不同种类的(比如人
- 服务器重新启动的情况当mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效。被服务器立即应用的情况用GRANT、REVOKE或
- 如下所示:import pymysqlimport timeimport redef get_raw_label(rece): re1 =
- 本文介绍了详解TensorFlow在windows上安装与简单示例,分享给大家,具体如下:安装说明平台:目前可在Ubuntu、Mac OS、
- 内容摘要:MySQL易学易用,附带丰富的技术文档,这两个因素使之被广泛应用。然而,随着MySQL发展加快,即使一个MySQL老手有时也会为该
- 作者:做梦的人(小姐姐)出处:https://www.cnblogs.com/chongyou/1.所有元素都在PageElement下的.
- 本文实例主要实现的是python根据unicode判断语言类型,具体如下。实例代码:def is_chinese(uchar): "
- Python实现对变位词的判断,供大家参考,具体内容如下什么是变位词呢?即两个单词都是由相同的字母组成,而各自的字母顺序不同,譬如pytho
- 目录1、面向对象基本概念1.1 万物皆对象1.2 面向对象编程1.3 面向对象的特征2、Python面向对象的术语3、Python类的构建3
- 目录一、前言二、使用1.@Component2.compued、data、methods3.@props4.@watch5.@emit三 、
- Django是一种基于Python的Web开发框架一、在命令行中创建Django项目(Windows平台、python3.6)1、建立虚拟环
- BIT[(M)]位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。TINYINT[(M)] [UNSIGNED]
- 前言:如今,大多数计算机都带有多个内核,允许多个线程并行运行计算。即使处理器只有单核,也可以通过并发编程来提升程序的运行效率,比如在一个线程
- 不好意思,标题比较啰嗦,因为这次的流水账确实属于一个比较细节的小东西,下面详细讲:1需求最近在使用electron-vue 开发一个跨平台的
- 本文实例讲述了Python实现的基数排序算法。分享给大家供大家参考,具体如下:基数排序(radix sort)属于“分配式排序”(distr
- 本文实例讲述了php查询mysql数据库并将结果保存到数组的方法。分享给大家供大家参考。具体分析如下:这里主要用到了mysql_fetch_
- PyQt5多行文本框控件QTextEdit简介QTextEdit类是一个多行文本框控件,可以显示多行文本内容,当文本内容超出控件显示范围时,