如何部署一个好的django项目到Centos服务器上面去了,下面来记录一下
1:将项目拷贝到Centos服务器上,不管是xftp,还是scp,还是lrzsz,看自己的爱好了,我这里用的是xftp
(xftp和xshell配合起来食用,效果更佳哦)
2:这里我们将开发的好的study项目压缩包上传到服务器的/op/test目录下面
3:解压缩,放到上一级目录,解压地址看自己爱好
unzip test.zip ../
4:新建一个虚拟环境,专门用来运行此项目,这里我们用ven3来做试验
[root@localhost opt]# virtualenv --python=python ven3
5:激活一下虚拟环境
[root@localhost opt]# source /opt/ven3/bin/activate
6:接下来就是解决study项目运行所需的模块依赖
在开发电脑上面执行如下命令
#将所需安装包导出到一个文件,服务器安装此文件就可以安装物理机所需的依赖啦
pip3 freeze > requirements.txt
上传至linux服务器
在Centos服务器的虚拟环境中,安装此文件即可
如果没有此模块依赖文件,那么就手动解决吧,。。。。
此时你要注意
python3 manage.py runserver 这个命令,并不是让你启动django项目的!!!
因为此命令,调用的是python 内置的wsgiref单机socket模块,性能低下,单进程单线程。。。
7:在Centos服务器上面执行
pip3 install -r ./requirements.txt
ps:如果不想用这个快捷办法安装所有依赖模块,那么就只能用老办法,启动项目然后看对应报错信息,然后再一个个安装依赖哦,不推荐
查看一下我的虚拟环境已经安装好的所以依赖包
8:启动项目,因为项目需要用到数据库mysql,但是我们还没有安装,所以会报错,安装一下
#缺少mysql,因此需要安装mariadb,且启动
(ven3) [root@ localhost study]# yum install mariadb-server mariadb -y
ps:mariadb-server 就是mysql的兼容版本,性能更好。。。
9:安装完了之后,由于没有对于的数据库和表,所以需要手动建立一下数据库和导入对应的表
#必须先登录数据库再建立
(ven3) [root@ localhost study]# mysql -u root -p
create database study;
show databases;
use study;
show tables;
10:手动建好数据库后,就需要导入数据表了
我的是window10,所以执行如下操作就可以了生成
mac电脑可以执行如下命令
#将本地所有数据库导入到一个alldb.sql,可以根据需要只导出自己需要的数据库
mysqldump -uroot -p --all-databases > alldb.sql
#-d 参数是只导出表结构,不要表中的数据
mysqldump -uroot -p123 -d study > study .sql #用它
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql #实例代码
11:上传到Centos服务器,执行此命令
如果导入报错,可能是数据库服务没有启动,启动mariadb数据库
(ven3) [root@ study]# systemctl start mariadb
12:发送此alldb.sql文件,给Centos机器,再进行数据导入
就是将SQL文件,通过lrzsz、scp、xftp等方式,发送此文件,给Centos服务器
#导入数据库表结构
mysql -uroot -p study < /opt/study.sql #指定数据库导入,否则会报错找不到数据库
我的导入完毕,查询一下,生成了对应的很多张表
13:启动项目进行测试
python3 study/study/manage.py runserver 0.0.0.0:8888
ps:注意检查修改settings.py中的allowed_host字段设置和数据库连接设置密码哦,否则会启动失败报错
发现报错了
用python3连接MySQL数据库出现问题“AttributeError: ‘str‘ object has no attribute ‘decode‘“解决办法
修改mysql源码,原因是python3不支持python2的编码格式导致的
将145,146代码进行注释就可以了
再次启动,最后效果图
大功告成~~~~~