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)”
没有评论:
发表评论