Django部署第一个Windows项目到阿里云服务器Ubuntu16.04

这是我的第一个Demo级别的Django项目,仅用到Python3.7.0+Django2.2.2+Mysql5.7

首先安装阿里云的环境

1.阿里云安装Python 3.7.0

1.1安装编译环境

sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev

1.2下载安装包

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

说不出话,学生机9.5/月网速慢,可以windows下载完直接传过去,但是上传也只有100k/s,不说了

1.3解压

tar -xvzf Python-3.7.0.tgz

1.4 配置安装位置

进入python3.7.0目录,执行./configure --prefix=/usr/bin/python3.7

1.5编译及安装

sudo make && sudo make install

1.6设置python3.7.0版本为默认python

sudo rm /usr/bin/python

 sudo ln -s /usr/bin/python3.7/bin/python3.7 /usr/bin/python

1.7验证  直接输入python

 

2.阿里云安装Django 

2.1升级pip3

进入到/usr/bin/python3.7/bin需要升级一下pip3方可使用,使用如下命令进行升级。

sudo /usr/bin/python3.7/bin/pip3 install –upgrade pip

上面这条可能会报错,执行这条命令:pip install --upgrade pip

 

现在需要更改pip3配置

vim pip3

改下面圈起来的2个地方

输入pip -V ,显示是安装在python3.7下,成功。

如下图,就成功:

 

2.2接下来安装Django

sudo /usr/bin/python3.7/bin/pip3 install Django

使用python3.7测试一下,发现也是安装Django成功了。

 

3.阿里云安装Mysql

刚收到短信,就10元买了阿里的RDS,也就是云Mysql。但是以后续费有点贵,还是自己在服务器上装个,省钱。

3.1安装mysql命令

sudo apt-get install mysql-server

sudo apt install mysql-client

sudo apt install libmysqlclient-dev

 

3.2.安装成功后可以通过下面的命令测试是否安装成功

sudo netstat -tap | grep mysql

 

3.3.现在已经启动mysql,进入mysql

mysql -uroot -p123456

出现以下错误

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

解决方案:

①找到mysql的安装目录,我的是在/etc/mysql/mysql.conf.d ,该文件夹下有个mysqld.cnf文件,使用管理员权限编辑:sudo vim mysqld.cnf,然后在文件最后一行加入:skip-grant-tables ,然后保存退出(大概就是跳过验证的意思吧)

root@dev:/etc/mysql/mysql.conf.d# vim mysqld.cnf

在文件最后一行加入:skip-grant-tables

 

②要重启mysql服务

Service mysql restart

接下来用空密码进入mysql管理命令行,切换到mysql库,直接命令:mysql  回车即可进入mysql命令模式,然后就是修改下root密码(其他用户也一样,只是权限不一样),修改密码语句如下:

root@dev:/etc/mysql/mysql.conf.d# mysql

mysql> update mysql.user set authentication_string=password('密码') where user='root' and Host ='localhost';

Query OK, 1 row affected, 1 warning

 

然后刷选配置,使之立即生效:

mysql> flush privileges;

接着退出mysql命令行模式;

mysql> quit;

Bye

 

④下一步便是把刚才我们改的mysqld.cnf文件,把刚才加入的那一行注释或者删除:skip-grant-tables ,保存退出。

⑤然后就可以用mysql -u root -p 登录了。

 

3.4Window Navicat连接liunx Mysql

①默认安装的mysql没有外部访问权限,所以需要开启访问权限

grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码']; "%" 表示所有    10.0.0.1这样格式的ip地址 10-0-0-1

root@dev:/etc/mysql/mysql.conf.d# mysql -uroot -proot

mysql>grant all on *.* to 'root'@'%' identified by '密码';

mysql> flush privileges;

 

②root@dev:/etc/mysql/mysql.conf.d# vim mysqld.cnf

将bind-address=127.0.0.1注释掉

特别注意:阿里云服务器开放3306端口! 通过添加安全组规则,开放3306端口

 

至此,环境搭建完毕。现在需要把windows的Django部署到linux。

4.部署

1.修改django项目一些配置setting.py

Debug改不改都可以,因为我们的项目是自己的,不怎么对外。

DEBUG是调试模式,开发推荐DEBUG=True,而项目上线必须DEBUG=Flase

 

ALLOWED_HOSTS=['*']必须改,*任何表示该机器的地址都可以访问当前项目

如果允许被其他机器访问的话,启动服务时,必须使用以下方式:

 python manage.py runserver 0.0.0.0:端口号

 

2.生成依赖包

pip -r freeze > requirements.txt

3.将windows项目上传到linux

 

4.进入项目文件夹,安装依赖包

pip install -r requirements.txt

5.将windows的数据库的表导入到linux对应的数据库表上

我这里采用了navicat

6.修改mysql的错误

运行的时候会出现以下错误

是因为Mysql5.7版本不兼容问题

 

解决方案:

进入/usr/bin/python3.7/lib/python3.7/site-packages/django/db/backends/mysql目录

将python安装路径下的base.py的 if version 注释掉:

vim base.py

将python安装路径下的operations.py的146行的decode改为encode

vim operations.py  

 

7.运行

进入项目中,

输入python  manage.py runserver 0.0.0.0:端口号

我这里是端口号给了80,直接输入ip地址就可以访问。

 

5.终于完成了,开心

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值