2017年3月26日星期日

djangosetting


Untitled Document.md

Django部署

本次Django部署,需求为python3.5+django1.10+mysql5.7+uwsgi+nginx

首先要说明的是,平时我采用的是Python+Apache,数据库用官方自带的SQLite。这种部署方式最为简洁,只需要在服务器端部署Apache虚拟机,将接口转到相关域名。具体操作可按照自强学堂的部署来。新手也只需要一两个小时就能完成配置,并且官方推荐数据库实现自动管理。

但是这次需求改了。而且Nginx确实是一种主流的配置方法。

以下为配置流程:

首先安装python3.5发现失败。发现是系统环境下只有3.4安装包。于是更新系统到Ubuntu16.04.

于是安装了Python3.5,pip3.5,然后用pip安装了虚拟环境virtualenv和virtualenvwrapper。创建了新的一个环境。

接着按照Google的推荐,结合了Linux15.04上的部署Linux14.04上的部署,开始实现MySQL,Nginx。

然而实现过程中发现较多的问题。

具体包括:


  • 问题:

      virtualenvwrapper.sh:Therewas a problem running the initialization hooks.
    
      IfPythoncouldnotimportthe module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/pythonandthat PATHis set properly.
    

  • 解决:

    在~/.bashrc文件的最下方加入下面语句:

     if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    
         export WORKON_HOME=$HOME/.virtualenvs
    
         export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    
         source /usr/local/bin/virtualenvwrapper.sh
    
     fi
    

  • 问题:

      mysql access denied for user'root'@'localhost'
    

  • 解决:

      没有使用密码。MySQL的使用为:mysql -u root -p ,然后输入password
    

  • 问题:

      *1 directory index of "/home/ubuntu/taiwanapp/" is forbidden,
    

  • 解决:

      当前文件夹不允许访问。所以可以在文件夹处放置一个index文件(修改文件夹的权限没有必要)
    

  • 问题:

      2017/03/26 15:27:26 [alert] 3730#3730: *37 open socket #17 left in connection 7
      2017/03/26 15:27:26 [alert] 3730#3730: *20 open socket #11 left in connection 8
      2017/03/26 15:27:26 [alert] 3730#3730: aborting
    

  • 解决:

      原因未明。Google了一下发现条目较少,且与我的现象不是很吻合。后期现象偶尔复现。但是认为对于实现来说不是很重要。
    

  • 问题:

      2017/03/26 15:45:45 [warn] 5373#5373: conflicting server name "127.0.0.1" on 0.0.0.0:8100, ignored
    

  • 解决:

      端口被重复指定。换了一个端口。(可以解除端口占用)
    

  • 问题:

      /var/log/nginx/access.log 502 584 
    

  • 解决:

    未解决。参考博客

最后放出有意义的参考文献:

Setting up Django and your web server with uWSGI and nginx

Ubuntu下MySQL的“ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)”

Getting “Error loading MySQLdb module: No module named MySQLdb” - have tried previously posted solutions

按照这个流程能配置到只出现一个502错误

Nginx的配置


没有评论:

发表评论