CentOS 7.5 搭建 Django 踩坑实录


本文并不是一篇如何在 CentOS7 上搭建 Django 的教程,仅记录一些从搭建到成功访问遇到的一些问题以及相应的解决方案,希望能给遇到同样或类似问题的同僚提供一些帮助。

环境信息

服务器:腾讯云 CentOS 7.5

Django:3.0.6

firewalld 相关

使用 firewall-cmd 报错 from gi.repository import GObject ModuleNotFoundError: No module named 'gi'

原因:CentOS7 不再使用 iptables 而是使用 firewalld ,但是 firewalld 只支持 Python2 ,由于之前已经升级了Python3 并且更新了python命令软连接,所以无法正常运行。

解决方案:修改 /usr/bin/firewall-cmd/usr/sbin/firewalld 文件中 python环境的指向。修改后截图如下:

FirewallD is not running

原因:防火墙未开启

解决方案:systemctl start firewalld 开启防火墙,通过 systemctl status firewalld 可查看防火墙状态。

使用公网 ip 无法访问

无法访问时,检查以下配置:

  1. Django 项目中 setting.pyALLOWED_HOSTS 是否添加,如未添加,请加入自己服务器的公网 ip。
  2. 服务器防火墙是否开启,如 iptablesfirewalld 都关闭则可不用配置开放端口,我自己使用的是 firewalld ,所以需要开放端口。
  3. 腾讯云安全组中是否已添加开放端口的规则 。

如以上三点均检查无误且执行python manage.py runserver 0:xxxx (xxxx为开放的端口号),则可以使用浏览器通过公网 ip 访问已启动的Django服务。

注:建议不使用80端口作为开放端口,腾讯云中80端口需要备案才能访问,自己之前在这个地方坑了好几个小时,各种配置检查都没有问题,但就是访问不了,后来更换了其它端口瞬间访问成功,巨坑无比!!


文章作者: ASCII13
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ASCII13 !
  目录