详解centos7+django+python3+mysql+阿里云部署项目全流程
(PS:本文假设你已经在本地联调好django和客户端,只是需要将django部署到外网)
购买阿里云服务器
到[阿里云官网],选择轻量应用服务器,步骤如图所示:
地域随便选择哪一个,镜像的话,对比了CentOS,Debian,Ubuntu,我最终选择了CentOS,因为流行嘛~配置的话,看项目本身了,我这里选择的是1G内存,20G硬盘最小配置,也够用了。
配置python环境
进入服务器
选择好服务器并付费之后,点击阿里云的控制台-云计算基础服务-轻量应用服务器:
安装python3并与python2共存
CentOS7.3默认安装了python2.7.5因为一些命令要用它比如yum它使用的是python2.7.5。当我们在命令行里输入
python-V
就可以看到版本为2.7.5。
安装python3
因为我们要安装python3版本,所以python要指向python3才行,目前还没有安装python3,先备份,备份之前先安装相关包,用于下载编译python3
yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake
这几个包必须得安装,否则安装python3时可能会出现各种错误.
运行下面两个命令,进行备份
cd/usr/bin mvpythonpython.bak
安装
wgethttps://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
解压
tar-xvJfPython-3.6.3.tar.xz
切换进入
cdPython-3.6.3
编译安装
./configureprefix=/usr/local/python3 make&&makeinstall
安装完毕,/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命令,比如我项目中需要的包有:
pipinstallDjango pipinstallPyMySQL pipinstallScrapy pipinstallbeautifulsoup4 pipinstallbs4 pipinstalllxml pipinstallnumpy pipinstallrequests pipinstallsimplejson pipinstallurllib3
注意:在执行命令pipinstallmysqlclient时会报错,这里需要特别强调下,不然在后面运行需要连mysql的django项目时,会报doyouinstallmysqlclient?
解决方法如下:
sudopython-mpipinstallmysqlclient
此时python所有需要的包,都已经安装好
安装mysql
下载mysql源安装包
wgethttp://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
yumlocalinstallmysql57-community-release-el7-8.noarch.rpm yuminstallmysql-devel
安装MySQL
yuminstallmysql-community-server
启动MySQL服务
systemctlstartmysqld
查看MySQL的启动状态
systemctlstatusmysqld
开机启动
systemctlenablemysqld
修改root本地登录密码
grep'temporarypassword'/var/log/mysqld.log mysql-uroot-p setpasswordfor'root'@'localhost'=password('!2Qw32sd');
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR1819(HY000):Yourpassworddoesnotsatisfythecurrentpolicyrequirements错误
配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld] character_set_server=utf8 init_connect='SETNAMESutf8'
导入django和mysql数据库
导入django项目
由于我项目放在码云上面,然后CentOS又自带git,我的数据库文件也比较小,所以也放在django项目中了,用git下载下来:
sudosuroot mkdirproject cdproject gitclonehttps://gitee.com/dafeige/django-restframework-demo.git
此时,我的数据库文件路径是:project/django-restframework-demo/tutorial/test_python.sql,由于需要将此sql文件导入到mysql数据中,需要给此文件加权限:
chmod777project/django-restframework-demo/tutorial/test_python.sql
导入sql数据库文件
进入数据库
mysql-uroot-p
导入sql文件
createdatabasetest_python; usetest_python; sourceproject/django-restframework-demo/tutorial/test_python.sql;
部署django工程
进入到工程中
sudosuroot cdproject/django-restframework-demo/tutorial pythonmanage.pyrunserver0.0.0.0:80&
最后面的”&”,这符号表示在后台运行该进程。这里的IP地址如果用公网IP
会运行不了,而用0.0.0.0则外网和127.0.0.1都能够访问。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。