在ubuntu18上部署django项目

最近几天一直在研究这个事情,最终还是成功部署了,在这分享一些使用的经历和遇到的一些坑,希望能够帮助有需要的人。

首先推荐一个软件:xftp,本人亲测非常好用,如果对git不是很熟悉,又想把windows本地上的文件上传到云服务器端的话,用它准没错,而且界面非常清晰,对后续的部署拥有很大的帮助。包括后文说的up主是用的git,我用的是xftp,亲测可以替代,也能够正常部署。

我用的云服务器是阿里云,系统是ubuntu18。本地是windows10,django的本地运行环境是python3.7,因为ubuntu18默认安装的是python3.6,所以还需要先更新python的版本,具体的方法可参考我的另外一篇文章Ubuntu18更新python3.7_XFIRR的博客-CSDN博客,更新完成之后,创建软链接,就可以开展部署了。如果对python3.7安装之后搭建虚拟环境有疑问,可以参考B站上up主(再敲一行代码)的django2.0教程37章,上面有详细的操作步骤。但是因为时间比较久,所以参考的时候要注意有一些命令已经不能使用,特别是关于更新python3.7的部分,一定要注意。

在搭建好python3.7的环境之后,就可以开始着手安装mysql数据库了,详细的教程可以参考部署Django到阿里云服务器教程_挽青的博客-CSDN博客_django部署到云服务器,但是文章中关于uwsgi和nginx的部分个人不建议参考,可能也是时间比较久了,容易出现问题。

在这里填mysql安装的一些坑,我的mysqlclient安装都是先激活了虚拟环境再安装的(命令是source bin/activate,记得提前cd到相应目录),安装这个库之前最好先按照上面的教程安装好mysql并确认已经可以正常开启mysql,就跟本地上一样。

首先是pip3 install mysqlclient这个命令,使用之前请执行这个命令:apt-get install libmysqlclient-dev,不然会提示无法安装,出现一大段的红字。

如果使用上面的命令之后,依旧出现以下报错,

    MySQLdb/_mysql.c:46:10: fatal error: Python.h: No such file or directory
    #include "Python.h"
    ^~~~~~~~~~
    compilation terminated.
    error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
    [end of output]

可以执行命令apt-get install python3.x-dev这个命令,我是在激活了虚拟环境之后使用的该命令,这个x代表的是你是使用的什么版本,比如说我是python3.7,那这个x就是7。

在安装好了mysql之后,就可以开始安装uwsgi和nginx了,这个地方的教程也可以参照刚刚上文b站up主的视频的第39个视频,按照up主的方法,就可以正常使用了。

最后填补一个django的坑:

我在部署成功之后想要上传文件到数据库,但是提示:

扫描二维码关注公众号,回复: 15863343 查看本文章

 这个问题出现的原因是用户没有写入的权限,在linux中修改文件权限的方式可以参考这篇文章:Ubuntu文件权限详解_AnneMOMO的博客-CSDN博客_ubuntu 文件夹权限

可以使用chmod -R 777 xx/来批量修改文件夹下文件的权限

我在使用了这篇文章的方法后,可以看到:

 之后再运行django程序就没有问题了。

如有问题欢迎大家指正。

猜你喜欢

转载自blog.csdn.net/XFIRR/article/details/124465669
今日推荐