2025 独立开发者训练营:AI Agent!查看介绍 / 立即报名 →

博客

简单说下 Drupal 开发的大概流程

问题

我们之前一直用比较原始的方法,就是在本地搭建好环境以后,开始开发 Drupal 网站,基本完成以后,就把网站打个包,传到服务器上,再恢复一下数据库。这样做的问题是,如果网站有了新的修改,如果你直接在本地改,完成以后,还需要重做一些迁移的动作,打包,上传,恢复 ... 如果你直接在服务器上改,又很麻烦,并且有太多不确定的东西,很可能会破坏掉网站,如果你没有备份就很复杂,你要自己判断到底是哪里出了问题。

方法

我找到了一个更好的方法,最近会做成视频。听起来这个方法有些复杂,要做的步骤可能会比之前多一些,不过我认为是更好的方法,而且熟悉之后,我们就不会觉得复杂了,我猜这也是大部分项目开发的流程。

版本控制

同样我们需要在本地开发,好处是速度快,并且,如果你的项目不是一个人,其它的团队成员同样可以在本地有一个项目的开发版本。然后你们都使用 Git 为项目做版本控制,也就是对项目的每次修改都会被保存成一个版本。为项目提供一个远程仓库,团队成员都可以把在本地对项目的修改推送到这个远程仓库上。如果这个网站只有您自己做,也需要使用 Git ,长远看,会带来很多好处。

使用负载均衡让网站可用性更高

在一台服务器上安装所有的服务,一旦这台服务器宕机,网站就完蛋了,你得马上去找到问题,解决以后,重新启动某些服务,才能恢复正常,这就是单点故障( Single point failure )。宁皓网一直用的是这种方法,遇到不少问题,最近在尝试解决这个问题。完成以后,可以为您提供一套完整的方案。

解决这个单点故障可以把单点变成多点,一个点完蛋,另一点还可以继续提供服务,这其实就是负载均衡。比如我们可以把 Web 服务器放到两台不同的服务器上,然后用均衡器对外提供服务,这个均衡器可以把用户分配到不同的服务器上,同时它还可以检查后端服务器的健康情况,如果出现问题,均衡器就不再把用户引到这台出问题的服务器上了。这样就削除了单点故障。

load-balancer_03

给我们在课程里要做的宁皓网项目起个名字:ninghao.tv

ninghao.tv 就是我们在课程里要做的东西,一个带视频播放,可以卖权限,用户角色,服务,数字产品,或许也可以加上点社交功能。主要还是视频播放,与电子商务这两大功能。另外还有基础设施的搭建。

视频播放

视频播放我想开始还是简单点吧,视频文件直接在自己的服务器上,不需要在线转码功能,因为假设视频都是您或您的团队自己制作的,可以直接在本地压缩好,再上传到服务器上,对于一般的录屏幕的视频,720p 的质量,每秒视频的尺寸也只有几十 KB ,可以接受。 或许以后我们可以考虑使用云存储,或者搭建自己的流媒体服务器。因为考虑到这需要额外的投入,所以暂时先放一下。待测试 ... 看看到底得花多少钱。

电子商务

电子商务部分,可以让你重复循环的向用户销售你的在线服务,比如在线看视频,帮助,一些数字产品,比如你拍的图片,做的主题。 大家都在寻找更好的商业模式,越来越重视可持续这个事,得到一个用户很不容易,我们不想那么快就让他离开,你的产品与服务是可以重复消费的,当然必须得好到让你的用户愿意再次付费。

基础设施

就是你要使用的服务器,我现在只用了一台服务器,这的确会遇到一些问题。不过对于起步的人来说,有一台服务器就可以了。也可以考虑下用两台服务器开始,这需要再去了解阿里云,或者其它云服务提供的负载平衡服务(SLB)。

跟做电商的朋友谈谈构建自己的电子商务系统

在以后我课程里,我们来解决点真正的问题,比如去构建一个能用的电商系统,不过我自己对于电商没啥经验,不知道您的需求。所以,能不能分享下,比如您为什么要做自己的电商系统,想解决的问题是什么,想要实现哪些功能 ...

也可以在社区里讨论一下:进入社区主题

开源宁皓网

最近打算做一个系统点的 Drupal 教程,做成一个系列,每个部分都能学到一个特定类型的功能。我想用一个真实点的项目去做,也就是做完这个系列课程以后,还能有个真正能用的东西,不错!想半天要做个什么项目,后来觉得宁皓网也是个不错的项目,有视频播放,有购物车功能。做好以后,开源,大家还可以用它挣点钱。这让我想起了 ...

四年前大概也是这个时间,我离开了跟朋友一块儿开的公司(黄了),跟小雪用电动三轮拉着一车办公用品回到了家,小雪也辞掉了整天让她不开心的工作,我们俩的银行里加一块也只有几千块,哦,我好像还得到了点散伙费。年底我们把做好的网站发布以后,根本也没谱能不能行,直到有一天,小雪惊讶地盯着屏幕跟我说,居然有人付款了,于是俩人抱在一起泪奔。

为啥开源

宁皓网现在可以让我们一家子过上正常的生活,首先得感谢各位衣食父母的支持,还有就是要感谢阿里云跟 Drupal 。陆续会有些朋友想买宁皓网这个程序,我没好意思卖是因为,这个网站还是我几年前做的,所以后台一片混乱,主题也一样。即使送给您,大概也得学很久才能明白什么是什么。

所以我决定重新用 Drupal 再做一次,然后开源,整个过程会录成视频,宁皓网的 VIP 们也可以学到一些东西,可以使用类似的方法去创建自己需要的网站。

怎么做呢

还是基于 Drupal 7 ,主要实现的功能跟现在的宁皓网差不多,视频播放,在线支付,搜索,权限控制。基本的功能我想直接使用 Drupal 现成的模块就能实现,剩下的大部分工作,应该是怎么把这个网站做的更好用。

什么意思

嘿嘿,我的主要目的还是让您学会怎么样使用 Drupal 去做出自己想要的东西。这个项目最终能做成什么样子,我也不知道,不过我想应该比现在的宁皓网更好用一些。

崭新的宁皓社区

身边儿有人总是好的,感觉没那么孤单。一个干净,整洁,没那么多干扰,自己也经常想去的地方。遇到点事,就写几句,不期望能有多少人回复,但你知道,一定有人看到了。

这几天给宁皓网添加了一个社区论坛(http://talk.ninghao.net),在单独的阿里云实例上( 2G 内存,2M 带宽,1 核 CPU,在杭州节点 ),论坛是 rails + ember 的应用。

Ninghao Playbook:自动化配置本地的 Drupal 开发环境

Ninghao Playbook(宁皓剧本),是用 Ansible 写的一个自动化配置 Drupal 本地开发环境的剧本,它需要结合 Vagrant 使用。它可以自动配置虚拟机,安装好 Drupal 所需要的运行环境(nginx,php-fpm,mariadb ... ),还有 Drupal 本身,以及一些常用的模块(views,token,features,module_filter ... )。

playbook

自动化配置服务器 — 配置管理系统( Configuration Management System )

在计划 Drupal 从头到尾这个系列课程的时候,我觉得我们的问题是,不仅仅是要把东西做出来,怎么去做,用什么方法,这个流程对不对,能不能简化,自动化,团队化,这些也非常重要。首先我想的是,能不能找一种自动化的方法,去在本地配置一个开发 Drupal 的环境,并且直接就把 Drupal 安装好了,甚至可以自动去安装一些常用的模块。

我经常跟大伙说,您要在本地电脑上,用虚拟机手工去搭建一个开发环境,这个虚拟机用 Vagrant 去管理。按照 Web 开发环境这个学习手册,你应该可以做到手工去搭建这个环境。我推荐先亲自动手去搭建这个环境,是因为,您需要了解自己都做了什么,每一个步骤是什么意思,熟悉在命令行界面下工作。这些都了解了以后 ,我们就要用一种自动化的方式去做这些事了,重复的工作一点也不美。

课程预告:Drupal 从头到尾

关于 Drupal ,我们已经说了不少,不过还是留下了很多问题。比如 Drupal 开发的流程应该是什么样的,怎么样使用 Drupal 的 API 来创建自己需要的模块,如何用 Drupal 开发一个真正的产品。今年的一开始,我们主要先解决这三个问题。这是一个系统的课程,可能要持续挺长时间。我打算每个礼拜完成一小部分,然后发布视频,并且一起讨论遇到的问题。为了这个课程,我特意创建了一个论坛(创建中 ... ),这样可以更方便的一起讨论并解决遇到的问题。这个课程结束以后,你应该会对 Drupal 有一个更好的理解,更有自信使用 Drupal 去创建你想要的网站应用。

这开始之前,先留个作业,完成下面这几个学习手册:

  1. 学习手册:Web 开发环境与服务器生产环境
  2. 学习手册:前端开发工作流程
  3. 学习手册:PHP 脚本语言
  4. 学习手册:Drupal 内容管理系统

不需要全部理解,不过至少要知道自己遇到了什么问题,需要什么,才能解决。不用太担心 :)

简单总结下去年我们都做了些什么

去年,我们做了一些看起来零七八碎的东西,其实它们也是有关联的,大概分成几块:工作流程,前端开发,开发环境,还有后端技术。

工作流程

一个现代的工作流程,可以让我们从混乱中解脱,少做重复的动作,更有效率。这也是专业与业余的重要区别,我们都想努力变成专业的,因为我们在乎自己做的事情。

Git,是必备工作,它的主要功能就是版本控制,这里说的版本,就是你每次修改你的项目,都算是项目的一个版本,你可以把这个版本用 Git 保存一下,这样你就可以再用 Git 去控制它,比如把项目恢复到你保存的某个版本上。入门很简单,先熟悉在命令行界面下工作,然后再学几个 Git 常用的命令就行了。起步,您真的不需要一本 500 页的书,在宁皓网花 1个半小时看视频足够了。

Bower 是个小工具,可以管理前端项目用的资源,比如一些框架什么的,它用一个文件描述了项目需要用的东西,用一条命令就可以去自动下载这个文件上列出的资源,还有这些资源所依赖的其它的东西。用 20 分钟,看一下这个课程。

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点