Django+Ngnix+Gunicorn+Mysql部署Centos的坑

文章目录

[隐藏]

  • 环境配置
  • python虚拟环境配置
  • Mysql配置
  • 中文乱码
  • Django数据配置
  • Mysql数据配置
  • gunicorn找不到 django.core.xxx
  • Django 静态文件404
  • Nginx无法正常启动
环境配置
  • Centos 7
  • Python 3.6.5
  • Virtualenvwrapper 4.8.2
  • Django 2.0.5
  • Mysql 5.7.22
  • Ngnix 1.12.2
  • Gunicorn 19.8.1

注:这并不是什么教程

python虚拟环境配置

Virtualenvwrapper安装失败

试试这条命令 :-p

sudo pip install virtualenvwrapper --upgrade --ignore-installed six  

简答解释就是包six版本有点低,详细解释点此

找不到virtualenvwrapper.sh文件

按照官方文档上说是安在 /usr/local/bin/virtualenvwrapper.sh,但是并没有,每个系统的情况不一样,使用如下命令

pip uninstall virtualenvwrapper  

不用担心,这并不会立刻移除virtualenvwrapper,会输出以下内容,再输入n取消安装

Uninstalling virtualenvwrapper-4.8.2:    /usr/bin/virtualenvwrapper.sh    /usr/bin/virtualenvwrapper_lazy.sh    /usr/lib/python2.7/site-packages/virtualenvwrapper-4.8.2-py2.7-nspkg.pth    /usr/lib/python2.7/site-packages/virtualenvwrapper-4.8.2.dist-info/DESCRIPTION.rst    /usr/lib/python2.7/site-packages/virtualenvwrapper-4.8.2.dist-info/INSTALLER    /usr/lib/python2.7/site-packages/virtualenvwrapper-4.8.2.dist-info/METADATA    ......    Proceed (y/n)?  

看第一行,这下知道在哪里的吧,对于我的centos7来说是在 /usr/bin/virtualenvwrapper.sh 下

具体见此https://stackoverflow.com/questions/12647266/where-is-virtualenvwrapper-sh-after-pip-install/41676706#41676706

Mysql配置

安装教程https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7 ,比较靠谱

中文乱码

问题可能出现在两个地方,一个是Django的配置文件中,还有一个就是Mysql的配置出问题

Django数据配置

找到project的settings.py,修改这两个地方,注意,对于较新版本的django,把zh-cn改成了zh-Hans

LANGUAGE_CODE = 'zh-Hans'    TIME_ZONE = 'Asia/Shanghai'  
Mysql数据配置

先登录到你的mysql中,执行如下命令

SHOW VARIABLES LIKE 'character_set_%';  

发现大多数行的值都不是utf-8,而是latin1

那么,找到mysql的配置文件my.cnf

对于 MySQL 5.7+,执行以下命令,别的情况见此

mysqladmin --help | grep 'Default options' -A 2  

输出的第二行就是文件的所在

Default options are read from the following files in the given order:  /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf  

打开此文件 /etc/my.cnf

添加如下内容如下,别的地方别修改

[mysqld]  collation-server = utf8_unicode_ci  init-connect='SET NAMES utf8'  character-set-server = utf8    ...    [mysql]  default-character-set=utf8  

改完之后记得重启mysql服务

sudo systemctl restart mysqld  
gunicorn找不到 django.core.xxx

找到gunicorn的所在地

which gunicorn  

应为是在python虚拟环境下安装的,所以一般在//.virtualenvs//bin/gunicorn,如果不是这样的话终极解决方案是把要输入 gunicorn 的地方全改成 //.virtualenvs//bin/gunicorn

Django 静态文件404

在production模式下Django并不支持静态文件的处理,这一切都要交给一个服务器处理,比如此处的Nginx,千万要记住!!!!!!

Nginx无法正常启动

(ps1:centos7安装Nginx的教程见此,比较靠谱)

(ps2:默认相关防火墙已开启)

在输入

sudo systemctl start nginx  sudo systemctl status nginx  

发现其启动失败,则多半是你配置文件写错的结果,输入一下命令排错

sudo nginx -t  

修改完之后记得刷新哦

sudo service nginx restart  #或者  sudo service nginx reload  

原文出处:csdn -> https://blog.csdn.net/nzyalj/article/details/80204287

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

微信扫一扫支付

微信logo微信扫一扫,打赏作者吧~

标签:CentOSDjangogunicornmysqlNgnix

相关推荐

  • centos7中lvm分区的创建与扩展
  • Centos7 cacti 使用笔记
  • 在CentOS上安装搭建PHP+Apache+Mysql的服务器环境方法
  • centOS7下使用yum安装jenkins以及运行jenkins
  • CentOS 7.6上部署Supervisor来监控和操作各类服务
  • CentOS/Debian/Ubuntu系统一键锐速+更换内核脚本
  • CentOS部署部署Edusoho
  • CentOS 7安装Deluge
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。