整体参考该链接 http://zmrenwu.com/post/20/,但其实还是遇到了很多坑 主要这是第一次自己部署 遇到了很多问题 !虽说部署成功但是其实还不明白nginx django gunicorn之间 的关系 但是先记录下来把 万一那天再次部署又要重新来过!
(一)
1、首先肯定需要购买服务器,,自行百度阿里云服务器购买 ,我买的学生套餐。 学生套餐就一种配置。。。我使用ubuntu 64位
2、 购买域名 其实不买也行 用IP也可以访问 ,但我还是买了 买的是site结尾的 。。注意 别的结尾的 有的需要认证,这个要耗时,我们只是自己测试的就别瞎折腾了。 然后是
域名与主机解析绑定。
3、然后需要远程登录服务器 这时候需要设置一下服务器实例的密码,对了用户名是root 密码的话通过阿里云后台管理控制界面进行重置即可
(二) 我采用的是securCRT+secureFX 这个软件来进行服务器远程登录操作 ,那位博主是windows 他用XSHELL..
这个到官网下载 我下的64位的 需要注册申请 一会邮箱就能收到验证码可以下载了 https://www.vandyke.com/download/securecrt/download.html
注意:关于阿里云服务器域名 以及securSRT的问题自行百度。。。楼主部署成功后才申请备案(备案需要时间),因此这个教程都采用的IP访问。。。。
注意:登录securCTR时 需要输入远程登录的服务器的ip地址 以及用户名与密码 这个就是 你上面设置的用户名root与密码了 记下来!!!以后常常用到。
(三) 软件安装+nginx测试
本人使用的就是ubuntu系统 对了 部署前最好熟悉一下vim的用法 ,据说可以装逼 哈哈还要我使用的python2.7
这里接着跟着那位博主的 《安装软件》 那里就行 新建一个用户 设置密码 后面记住 每一次你都切换一下用户 从root切换到你的用户就行
虚拟环境安装以及你需要用到的软件都需要安装
需要安装的软件有:pip virtualenv django nginx gunicorn 对了 我用的是mysql数据库 因此也需要安装mysql数据库 然后还要安装MySQL-python mysql安装参考 http://www.tuicool.com/articles/ay6zMfV
对于全局安装与虚拟环境安装我目前还有些懵逼 因此关于安装这里 我不一定说的是对的。我都是缺啥软件就安装什么软件。
这里建议跟着那位博主的软件安装哪里执行即可。
(四) 软件安装完成+nginx可以启动后 ,紧接着是博主的项目部署前的代码配置。。。
在setting.py 中加入这四行 额 中间那行无视它 我懒得放到别的地方了
然后 额 我先不将debug改成false 因为我还要调试 等后期真的完全成功部署到服务器上线了 一定要记得 关掉调试模式。。
将允许访问的ip地址或者域名加入这个字段中
(五) 在本地虚拟环境项目根目录下 执行 pip freeze > requirements.txt 就可以将目前环境的依赖 写进requirements.txt文件中。这时项目根目录下就会生成这个问价 里面记录了环境下的所有依赖。然后你到服务器上的时候只要执行下这个问价就可以将你项目需要的依赖一次性安装了 不用麻烦的一个一个安装 。当然 他不会让你得逞的 有时候有的依赖包你是安装不了的 因此你自己单独安装那个安装失败的。经常遇到readtimeout错误 可能是网络问题 这种时候多试几次
(六)将代码上传到github中 恩 git 的用法自行百度 。
注意: 数据库文件与migrations目录我是不上传的 特别是那些用sqlite数据库的小伙伴们 你们的数据库文件会在项目目录下生成一个db.sqlite3文件 ,这个不要上传 (在项目根目录下 新建一个.gitignore文件 把不上传的文件写进这里就可以啦 到时候git push的时候只要在该文件下的文件都不会上传上去)
(七) 之前都是在本地上操作,现在该到服务器上了 这时候进入securCRT远程连接登录你的服务器
设置服务器目录结构 不说了 跟着博主做就行
然后进入目录中 执行 git clone 你的github网址 就可以将你的代码拉到服务器当前路径下
注意:因为我是python2.7环境 因此我创建虚拟环境啥的 直接python 而不需要python3 因为 默认的就是python2
(八) 激活虚拟环境 在服务器安装项目依赖(进入到requirements.txt所在目录) 执行pip install -r requirements.txt 这时候会遇到一些软件无法安装成功的 这时候你就自己单独安装就行。。
(九) 收集静态文件 虚拟环境下运行 python manage.py collectstatic 命令就会将你整个项目的静态文件都收集到setting.py的STATIC_ROOT路径下
注意:如果你之后在服务器上 新加了一些静态文件 之后必须重新执行以下这个命令
(十) 生成数据库 python manage.py migrate 即可
这里插播一下 因为本地数据库已经存在数据 这个时候我们部署代码到服务器上 又想要原来本地数据库的数据 这时候需要将本地的数据库进行备份 传到服务器上
关于mysql数据库备份参考我这篇博客 http://blog.csdn.net/panghaifei/article/details/71192062
注意(代码如果新加了数据库model 一定要记得重新运行python manage.py makemigrations 然后执行python manage.py migrate 迁移一下数据库)