继续虚拟环境部署,这次采用的方式是:部署环境中创建了虚拟环境,直接按照开发环境一样创建工程、添加相关app,之后再覆盖替换源码:
1、虚拟机快照恢复至相关软件安装完待配置项目的状态
2、一样创建虚拟环境PrescriptionPushSystem_env,解压缩项目包获取relies_packages,放至虚拟环境中
3、激活虚拟环境,安装项目所有依赖项:
(PrescriptionPushSystem_env) C:\djangoWebRoot\PrescriptionPushSystem_env\relies_
packages>pip install --no-index --find-links=packages -r deploy_requirements.txt
4、在部署目录 djangoWebRoot下创建项目PrescriptionPushSystem:
(PrescriptionPushSystem_env) C:\djangoWebRoot>django-admin startproject Prescrip
tionPushSystem
5、进入项目目录下,按照开发环境创建相关app:management、uploadTimer
6、以项目包下对应的文件替换新创建的文件夹:
7、安装mod_wsgi ,httpd.conf中配置项目
8、创建数据库并初始化、迁移sessions、setting.py 配置、收集静态资源
9、重启apache,验证:
完美呈现!
Summary:这种虚拟环境的部署方法相比上一篇的,操作清晰,项目结构也清晰明了,保持和开发环境一致
虽然本质上两种方式没区别,但是还是比较接受第二种, 如果部署环境是外网的话,可以使用pycharm的deployment 功能,在部署环境下创建虚拟环境并创建项目及app,通过pycharm将源码上传至部署对应目录进行覆盖替换:
在之前基础上创建新的虚拟环境project_env,激活虚拟环境安装mod_wsgi并配置conf
设置pip镜像源:
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
python -m pip install --upgrade pip 升级pip 至最新版本
虚拟环境安装项目依赖:
(project_env) C:\djangoWebRoot\project_env\relies_packages>pip install -r deploy
_requirements.txt
创建项目、添加app
接下来就是通过pycharm上传源码了:
首先,server 2008 上面搭建FTP服务器:
1、开启 server 2008 的FTP功能:
服务器管理器-->添加角色-->勾选“Web 服务器(IIS)”
下一步直到“选择角色服务” ,勾选“FTP服务器”
选择下一步安装完成结束
安装完才发现IIS管理工具没安装
右键选择添加角色服务
勾选管理工具,IIS管理控制台
完成安装
2、创建一个用户组与用户用来登录FTP
服务器管理器-->配置-->本地用户与用户组,在用户上右键选择新用户添加用户,设置相关信息,点击创建
3、配置FTP服务器
添加FTP站点
设置站点名称及物理路径 ,站点名称可以随便起,物理路径选择已经创建的项目根目录下,因为这个FTP是提供给pycharm上传项目文件的,所以两边要一致,都是项目根目录
4、pycharm配置连接测试:
首先配置连接
新建一个FTP类型的连接
配置相关连接信息,测试连接
配置服务器上的根目录,通过FTP的设置,就是项目的根目录
5、配置映射关系:本地项目与服务器的项目映射关系,
首先是本地的,就是本地项目根目录
远端服务器的:就是远端服务器上创建的项目根目录
6、配置完成就可以将本地项目文件上传至服务器了,从本地项目文件下选择需要上传的文件,再点击 Tools ---> Deployment--->Upload
比如:现在把本地项目中的lib包上传至服务器
先看看服务器上有没有,还是初始的,并没有lib包
pycharm执行上传
下方会显示相关上传进度等信息
再到服务器上查看是否上传成功
已经成功,接下来选择完整的项目文件上传
出现错误信息:
发现是原本在服务器上手动创建的项目和app相关的文件没有访问权限,被拒绝,当初创建的帐户是administrator,现在用户是deployer,肯定无权修改覆盖,将deployer添加进administrator用户组试试:
确定完,再次上传覆盖一次
,然而问题依旧
更改deployer用户的用户组时,除了新添加的Administrators外,默认的用户组是Users,看下权限
再看项目目录相关权限
看到这就有点不懂了:Users对 PrescriptionPushSystem文件夹只有读取执行、列出文件夹内容、读取的权限,并没有修改和写入的权限,但是在没对deployer添加Administrators用户组时一样上传上去了部分,只是特殊的那几个被拒绝。照自己的理解在添加Administrators用户组前应该完全上传不了啊!
直接把Users用户组删除试试!
没毛病!成功了!
剩下的就是数据库初始化、迁移sessions、httpd.conf对项目的配置、收集静态资源、settings.py的修改,这些就不再记录,最终配置完没问题
Summary:如果部署环境是外网环境,使用这种部署方式还是很方便的,依赖项的安装也可以直接访问国内镜像源安装,只需服务器安装了FTP,服务正常运行就可以方便的将本地的项目上传至服务器部署,那么可以看出这种方式对云部署应该很好用!
ok!记录了这么多windows 环境下的部署,下篇要记录Linux部署了,当然虽然windows这里罗里吧嗦这么多,但很多是共通的,到Linux篇就可以直接捡紧要的记录了!