当前位置: 首页 > news >正文

网站建设与管理方案的总结ui培训基地

网站建设与管理方案的总结,ui培训基地,自己如何建设企业网站,cms网站模板套用教程文章目录1.本地安装 Fabric2.部署过程回顾3.完善项目配置4.修改 BASE_DIR 配置项5.设置 Supervisor 环境变量6.编写 Fabric 脚本7.执行 Fabric 自动部署脚本1.本地安装 Fabric $ pipenv install fabric --dev 报错#xff1a; An error occurred while installing django-pure… 文章目录1.本地安装 Fabric2.部署过程回顾3.完善项目配置4.修改 BASE_DIR 配置项5.设置 Supervisor 环境变量6.编写 Fabric 脚本7.执行 Fabric 自动部署脚本1.本地安装 Fabric $ pipenv install fabric --dev 报错 An error occurred while installing django-pure-pagination0.3.0 --hashsha256:02b42561b8afb09f1fb6ac6dc81db13374f5f748640f31c8160a374274b54713! Will try again. 解决办法将django-pure-pagenation删除后重新执行pipenv run python manage.py runserver重新安装。 2.部署过程回顾 在写 Fabric 脚本之前先来回顾一下当我们在本地开发环境下更新了代码后在服务器上的整个部署过程。 远程连接服务器。进入项目根目录从远程仓库拉取最新的代码。如果项目引入了新的依赖需要执行 pipenv install --deploy --ignore-pipfile 安装最新依赖。如果修改或新增了项目静态文件需要执行 pipenv run python manage.py collectstatic收集静态文件。如果数据库发生了变化需要执行 pipenv run python manage.py migrate 迁移数据库。重启 Nginx 和 Gunicorn 使改动生效。 整个过程就是这样把每一步操作翻译成 Fabric 对应的脚本代码这样一个自动化部署脚本就完成了。 3.完善项目配置 1为了安全线上环境我们将 debug 改为了 False但开发环境要改为 True改来改去将很麻烦。 2此外django 的 SECRET_KEY 是很私密的配置django 的很多安全机制都依赖它如果不慎泄露网站将面临巨大安全风险像我们现在这样直接写在配置文件中万一不小心公开了源代码SECRET_KEY 就会直接泄露好的实践是将这个值写入环境变量通过从环境变量取这个值。 3解决以上问题的一个方案就是拆分 settings.py 文件不同环境对应不同的 settings 文件django 在启动时会从环境变量中读取 DJANGO_SETTINGS_MODULE 的值以这个值指定的文件作为应用的最终配置。 4我们把 settings.py 拆分首先在 blogproject 目录下新建一个 Python 包名为 settings然后创建一个 common.py用于存放通用配置local.py 存放开发环境的配置production.py 存放线上环境的配置 5将 settings.py 文件中的内容全部复制到 common.py 里并将 SECRET_KEY、DEBUG、ALLOWED_HOSTS 这些配置移到 local.py 和 production.py 中common.py 中这些项可以删除。 6开发环境的配置 local.py 内容如下 from .common import *SECRET_KEY development-secret-key DEBUG True ALLOWED_HOSTS [*] 7线上环境的配置production.py内容如下 from .common import *SECRET_KEY os.environ[DJANGO_SECRET_KEY] DEBUG False ALLOWED_HOSTS [blog.fanxindong.com] 注意 这里我们在顶部使用 from .common import * 将全部配置从 common.py导入然后根据环境的不同在下面进行配置覆盖。线上环境和开发环境不同的是为了安全DEBUG 模式被关闭SECRET_KEY 从环境变量获取ALLOWED_HOSTS设置了允许的 HTTP HOSTS。以上操作完成后一定记得删除 settings.py。 8对于 manage.py通常在开发环境下执行因此将这里的 DJANGO_SETTINGS_MODULE 的值改为 blogproject.settings.local这样运行开发服务器时 django 会加载 blogproject/settings/local.py 这个配置文件。 9另外看到 wsgi.py 文件中这个文件中有一个 application是在线上环境时 Gunicorn 加载运行的将这里面的 DJANGO_SETTINGS_MODULE 改为 blogproject.settings.production 10这样在使用 manage.py 执行命令时加载的是 local.py 的设置而使用 gunicorn 运行项目时使用的是 production.py 的设置。 4.修改 BASE_DIR 配置项 还有需要注意的一点看到存放通用配置的 common.py 文件里面有一个配置项为 BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(file))) 这个 BASE_DIR 指向项目根目录其获取方式为根据所在的配置文件向上回溯找到项目根目录。因为此前的目录结构为 HelloDjango-blog-tutorial/blogproject/settings.py因此向上回溯 2 层就到达项目根目录。而现在目录结构变为 HelloDjango-blog-tutorial/blogproject/settings/common.py需向上回溯 3 层才到达项目根目录因此需将 BASE_DIR 进行一个简单修改修改如下 BASE_DIR os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(file)))) 即再在外面包一层 os.path.dirname再向上回退一层到达项目根目录。 5.设置 Supervisor 环境变量 由于线上环境配置中的 secret_key 从环境变量获取因此我们改一下 supervisor 的配置将环境变量导入打开 supervisor 的配置文件 ~/etc/supervisor/conf.d/HelloDjango-blog-tutorial.ini添加环境变量的配置语句 environmentDJANGO_SECRET_KEY2pe8eih8oah2_2z17f84bzme7^bwuto7yf(#rgd9ux9mp-3 因为此前可能将代码传过公开的代码仓库所以最好把线上使用的 SECRET_KEY换一下。这个网站可以自动生成 SECRET_KEYDjango Secret Key Generator 保存配置然后要执行 update 命令更新配置。 启动 supervisord -c ~/etc/supervisord.conf 更新 supervisorctl -c ~/etc/supervisord.conf update 6.编写 Fabric 脚本 Fabric 脚本通常位于 fabfile.py 文件里因此先在项目根目录下建一个 fabfile.py 文件。 文件位置HelloDjango-blog-tutorial-fxd\fabfile.py from fabric import task from invoke import Responder from _credentials import github_username, github_passworddef _get_github_auth_responders():返回 GitHub 用户名密码自动填充器username_responder Responder(patternUsername for https://github.com:,response{}\n.format(github_username))password_responder Responder(patternPassword for https://{}github.com:.format(github_username),response{}\n.format(github_password))return [username_responder, password_responder]task() def deploy(c):supervisor_conf_path ~/etc/supervisor_program_name HelloDjango-blog-tutorial-fxdproject_root_path ~/apps/HelloDjango-blog-tutorial-fxd/# 先停止应用with c.cd(supervisor_conf_path):cmd supervisorctl stop {}.format(supervisor_program_name)c.run(cmd)# 进入项目根目录从 Git 拉取最新代码with c.cd(project_root_path):cmd git pullresponders _get_github_auth_responders()c.run(cmd, watchersresponders)# 安装依赖迁移数据库收集静态文件with c.cd(project_root_path):c.run(pipenv install --deploy --ignore-pipfile)c.run(pipenv run python manage.py migrate)c.run(pipenv run python collectstatic --noinput)# 重新启动应用with c.cd(supervisor_conf_path):cmd supervisorctl start {}.format(supervisor_program_name)c.run(cmd)由于响应器从 _credentials.py 模块导入敏感信息因此在 fabfile.py 同级目录新建一个 _credentials.py文件写上 GitHub 的用户名和密码 文件位置HelloDjango-blog-tutorial-fxd_credentials.py github_username your-github-username github_password your-github-password当然这个文件包含账户密码等敏感信息所以一定记得将这个文件加入 .gitignore 文件将其排除在版本控制系统之外别一不小心提交了公开仓库导致个人 GitHub 账户泄露。 7.执行 Fabric 自动部署脚本 进入 fabfile.py 文件所在的目录用 fab 命令运行这个脚本文件将 server_ip 换为你线上服务器的 ip 地址 fab -H server_ip --prompt-for-login-password -p deploy 这时 Fabric 会自动检测到 fabfile.py 脚本中的 deploy 函数并运行输入服务器登录密码后回车然后你会看到命令行输出了一系列字符串最后看到部署完毕的消息。 如果脚本运行中出错检查一下命令行输出的错误信息修复问题后重新运行脚本即可。以后当你在本地开发完相关功能后只需要执行这一个脚本文件就可以自动把最新代码部署到服务器了。
http://www.pierceye.com/news/791541/

相关文章:

  • 织梦如何做网站网页设计公司背景
  • 购买域名网站程序员外包公司到底值不值得去
  • 网站出售商品建设广告公司主要做什么
  • 西安的电商网站设计大庆市城乡建设局网站
  • 服装网站建设需要什么内容中国建设银行总行官方网站
  • 免费下载设计素材网站wordpress metaslider
  • 如何建一个自己的网站给网站做rss
  • 宜昌网站制作公司亿腾云优化seo
  • 网站icp备案信息是什么一号网站建设
  • 怎么样做网站徐州市中宇建设工程有限公司网站
  • 网站建站公司官网免费企业网站建设介绍
  • 知名网站建设托管河北建筑工程学院招生信息网
  • 服务器网站建设流程图十堰网站制作公司电话
  • 营销型网站seo开发一个app需要什么技能
  • 网站的欢迎页怎么做织梦网站名称修改
  • 树莓派做博客网站济南抖音推广公司
  • 网站短链接生成济宁网络
  • 组建 网站开发团队交互设计作品集网站
  • 宜春个人网站建设网站建设惠州
  • 医院网站开发兼职wordpress 域名跳转
  • 安监局网站建设wordpress 修改路径
  • 快速搭建网站wordpress成品网站货源入口
  • 信宜手机网站建设公司广州网站建设服务商
  • 网站备案注册3g免费网站制作
  • 做网站需要vps吗建设银行etc的网站是哪个好
  • 网站服务器 2核如何做网站联盟
  • 做空间的网站吗wordpress 视频管理 主题
  • 做外链选择那些网站建网站怎样往网站传视频
  • 网站主机多大车陂手机网站建设报价
  • 网站策划书内容wordpress 一键恢复