首先,部署用到的技术:
ubuntu命令行语句
anaconda3 语句
python 命令行语句
mysql 命令行语句
pycharm 操作经验
navicate 操作经验
阿里云
购买阿里云:云服务器 ECS。尽量便宜弄到手,学生价/免费抢/折扣购买
买完后打开阿里云管理控制台,如下图,画圈的是叫你多留心一下~
接下来就是连接了,你可以下载Xshell or PuTTY,用来连接,或者使用上图的远程连接
注意:修改了云服务器root的密码了,记得要重启一次云服务器。
阿里云购买完成并且连接成功后,是下图的效果
我用的PuTTY,上图是连接成功的界面
接下来安装Python环境
你需要使用conda吗?如果需要的话,跳过这一步,下面有安装conda的教程哦~
在连接的终端输入:
sudo apt-get upgrade
sudo wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
(保存至当前目录, 推荐下载保存与安装的目录为/root)
下载完毕后,解压安装:
tar -zxvf Python-3.6.2.tgz
cd Python-3.6.2
sudo ./configure
sudo make
sudo make install
输入python3进入pyhton交互界面,说明安装成功了。
使用Pycharm上传项目
你也可以使用 linux与windows之间连接的软件传递你的项目到服务器,软件如: Xftp, WinSCP
你也可以先上传到github再在服务器上下载项目。
这里使用pycharm,首先是一个叫VcrTStore的项目,如下图:
然后点击pycharm上面的的Tools > Deployment > Configuration,
然后新增连接,让pycharm连接到你的服务器,连接的配置如下图:
然后选择项目存放的文件夹,建议在服务器端的 用户的文件夹内 mkdir(创建)一个文件夹,我是在root文件夹下创建了一个VcrTStore文件夹
选择的步骤如下图:
点击ok后,再次点击Tools > Deployment 你就会发现,有 Upload to VcrTStore 这个选项,
这个选项就是用来上传项目的,点击即上传项目,
上传过程中,pycharm会在底部有有一个上传进度条,我们只需要等待上传完成即可,
Deployment中还有一些好用的选项,如同步代码,下载代码等,可以实现边开发边提交的开发模式。
提示:
Upload to VcrTStore completed: *** files transferred 则表示上传成功。
小知识:
使用 Upload to VcrTStore 的时候,是右侧project管理器 点击了哪个文件/文件夹就上传哪个哟~
要上传整个项目,需点击项目最外层文件夹。
安装mysql
请看博客:ubuntu 安装 mysql
配置mysql
请看博客:ubuntu 配置 mysql
亲测有效,还有,关于mysql8的配置,变化不是很大。
打开阿里云访问端口
首先,在阿里云的云服务器控制台,就是图一那个界面,点击 更多 > 网络和安全组 > 安全组配置
然后点击配置规则,就会打开如下图一样的界面
上图三个是默认的,我们需要创建一些规则,点击 快速创建规则
如下图,是我创建的规则,0.0.0.0/0 是允许所有哦~注意下
有些端口,快速配置无法满足?比如像 django 的 8000,memcached 的 11211,
如何再添加一些端口呢,就是 点击 添加安全组规则 按钮。
8000/8003的意思是,允许 8000, 8001, 8002, 8003 端口,其实是表示范围,
说的是我的配置:
这些工作做好了,就完成了,emmmmm,1/3了吧。
远程连接mysql
我们即将在windows上远程连接我们在阿里云服务器里安装的mysql数据库,
我使用的是navicate,连接配置如下图:
连接成功后,就是创建一个数据库了,与你项目用的数据库同名,我的是vcrtstore。
同步数据到远程数据库
右键点击本地的vcrtstore数据库,然后选择 转储sql文件>结构和数据,
选择一个文件夹保存,保存为vcrtstore.sql,这样原数据和表就备份好了,
然后右键服务器的vcrtstore数据库,选择 运行sql文件, 运行 vcrtstore.sql文件
效果如下图:
这样,阿里云那边的mysql也就有了我们本地的数据了,是不是感觉本教程讲得很详细呢?mua~
新建虚拟环境 or 不需要虚拟环境
你可以选择建一个Pyhton的虚拟环境,也不可以不建,
如果你要建的 话 呢,自己去找教程吧!
不过我使用的是Anaconda,小conda 还是很好用的,可以使用多个python版本,比如python2.7啊,python3.7啊, python3.6.2啊!
下载Anaconda :
sudo wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
这里有个anaconda的安装教程 (ubuntu) >>
这里有一个知乎的关于Anaconda安装与使用的教程 (在图形界面上安装conda的教程,以命令行形式使用conda的教程)>>
小知识:
修改bashrc:sudo vim ~/.bashrc
迁移Python包到服务器上
在本地命令行中,执行一个命令:pip freeze > package.txt
这样django项目要用到的包的信息就打包好了,然后将这个package.txt 文件传到 服务器中,可以使用pycharm,也可以使用第三方软件~
然后,在服务器中,并且在Python虚拟环境下,执行命令:pip install -r package.txt
下载完成后,包就迁移成功了~
在本地访问一下服务器上的项目
首先,更改一下django中mysql的连接参数 'HOST': '39.107.96.126' (阿里云服务器的ip)
其次,更改 ALLOWED_HOSTS = ['*'] (允许任何ip访问项目)
我是在本地pycharm里改的,改完upload到了服务器里面。
然后,在服务器的命令行中使用 python manage.py runserver 0.0.0.0:8000 启动项目
最后,在本地浏览器里输入 http://39.107.96.126:8000
当当当当,本地浏览器就可以访问服务器上的项目啦~
如下图:
其实,到这里,稍微懂点的同仁已经知道如何去部署项目了
但是,如果不懂也没关系,因为我们还有教程呐~
Pycharm远程调试代码
这个,其实还是蛮重要的~
点击pycharm上方的 file > settings > Project:VcrTStore > project interpreter
效果如下图:
点击第5步的 Add ,
然后 Add remove,点击ssh credentials,
有的pycharm版本呢,没有Add remove,这些版本使用的是 ssh interpreter
add remove 与 ssh interpreter 的配置差别不是很大!
我嘛,使用的是ssh interpreter 的这种,如下图:
配置连接后,配置一些目录
interperter表示配置python的目录,我使用的是anaconda的虚拟环境
sync folders(也是Path Mapping)表示你要寻找到django项目的根目录
效果如下图:
配置好后,点击 apply, 点击 ok,然后等待调试环境加载完成。
然后,点击pycharm上方栏的 run > debug > edit configrations
配置一下 debug 的启动,如下图:
这样你的项目就 debug 启动啦~
你可以在本地pycharm打断点调试项目了啦~
啦啦啦~
前端是Vue项目,配置使用django作为代理启动
这里的是一个前后端分离的项目,前后端调试好了的,
如果不使用django作为代理启动or不是前后端分离的项目,这一步可以跳过!!!
首先,打包一下vue的静态文件,在vue项目的根目录开启一个命令行,
输入命令: npm run build
完成后会在根目录下生成 dist 文件夹,里面有 static、index.entry.js、index.html
其次,将index.html 拷贝,放入django的 template 文件夹中,
将index.entry.js 拷贝到django的 static 文件夹中,
将vue项目下的 static 文件夹内部的东西,拷贝到 django的 static 文件夹中
接着,将 STATIC_URL 、STATICFILES_DIRS 配置到settings.py中,
拷贝后的结果,如下图:
找不到django的 template or static 文件夹???说明你是一个新手,啦啦啦~
然后,记得将 index.html 里面引用script的src属性改一下哦
改成:
src="/static/index.entry.js"
切记切记,
最后,配一下 django 的 urls.py,
这是 urls.py 中的部分代码:
from django.views.generic import TemplateView
urlpatterns = [
url(r'^index/', TemplateView.as_view(template_name='index.html')),
]
如果你使用了pycharm远程代码调试,记得 Upload 一下更改哦~
emmmmmm,我们来访问一下,http://xx.xxx.xx.xxx:8000/index
报Template错误???报static错误???自行百度解决,over~
Niginx + Uwsgi 部署 Django项目
部署步骤的话,emmm,百度一下。
这里会有坑,如果用anaconda 创建的虚拟环境,安装 uwsgi 时,
会报错:uwsgi: error while loading shared libraries: libpcre.so.1: ..........
这里有个anaconda 安装 uwsgi 的教程: uwsgi + django(anaconda)服务器配置 lto 版本错误解决
部署django的话百度一下,帖子一大把!!!我这边的话呢!就省略了~
阿里云购买域名
接下来就是域名解析环节了,django部署了呢,应该监听端口 80,
然后去阿里买个域名
如下图:
我已经买了一个,9元的,
这里说一下哈,千万别注册掉我的域名vcrting.com/vcrting.cn/vcrting.site/vcrting.online等等,
各位大哥哥小哥哥大姐姐小妹妹们,千万千万千万别注册掉我的域名
域名也需实名认证,是学生或者个人的话千万别买.com/.cn结尾的域名,要去备案的!!!不嫌麻烦的话就随意喽。
点击 解析 按钮,进入这个页面:
这里没有域名的解析记录对吧,我们点击 右边 的 添加记录 按钮
如下图:
记录值是 你的云服务器的 ip ,不包括端口,所以我们django项目的监听端口应该设置为 80
设置完就是这样的:
所以呢,接下来就可以使用 www.vcrting.fun 来访问我的网站了 哈哈哈哈哈哈哈哈哈~
访问一下试试
md 怎么这样!???????!!!!
还是要备案,我们进入阿里的备案界面:
点击进入备案系统,
然后填写一下备案资料喽~
然后还要一个备案服务号:
点击 红的 文本框下面的获得备案号,去获得一个备案号
这里的话呢!其实我嘛,踩了一个坑,
为什么是坑,因为实例要买满3个月后,才能申请备案号!!!!!!!!!!!!
如图:
额,没关系,没关系,没关系啦,不就3个月嘛,掏个钱包的事儿,有什么关系呀。。。。。
提醒:
个人域名备案需要用到的东西:
身份证-正面图、
身份证-反面图、
户口本/临时居住证-正面图、
户口本/临时居住证-反面图、
网站真实性验核单。
我们还是可以通过 http://xxx.xxx.xxx.xxx/index 来访问的嘛!
如图:
写到这里呢,就差不多该结束了,哎,想想这一路收获也蛮多的,收获最大的应该就是“ 阿里云服务器要满3个月才能备案 ”这个知识点了,祝愿读这篇帖子的学者同仁们都能成功部署好自己的项目~