🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余11个优惠名额) →

博客

Drupal 8:在 Docker 环境里运行

今天的任务是在本地创建一个可以运行在 Docker 上的 Drupal 8 项目。运行环境我已经做好了,用的就是 nest ,这个项目 Compose 了一个一般的 PHP 网站的运行环境,包含 NGINX,PHP,MariaDB,PHPMyAdmin 这些服务。Drupal 8 应该现在推荐用 PHP 的包管理工具 Composer 创建,安装 Drupal 可以用 Drupal Console 或 Drush。现在先介绍一下过程。

运行环境

先把我做的 nest 克隆到本地,放在 ninghao 这个目录的下面。如果你想更折腾一下,可以把 nest 仓库 fork 到自己的 github 帐号下面,然后克隆自己的 nest 远程,这样你可以修改项目,并且如果你觉得自己的修改对别人有帮助,可以对我的 nest 提交 pull request 。

下面我们直接克隆 ninghao 的 nest:

git clone https://github.com/ninghao/nest.git ninghao

用 Docker 搭建本地开发环境

使用 Docker 可以在本地为网站搭建一个开发环境,在本地开发时,通常我们会把网站的代码共享到容器里,这样可以直接编辑网站代码,然后立即看到运行结果。在生产环境下,我们需要把网站的代码 Build 到镜像里。在本地使用 Docker,需要用到 Docker for Windows 或 Docker for Mac 。它提供了很好的本地体验,但最大的问题是共享数据卷的性能非常差。注意这并不是 Docker 本身的问题。你在生产环境上用的 Docker 的共享数据卷不会有任何性能问题。

下面先介绍下原因,然后介绍一下我的解决方案。Docker for Windows 以下简称为 DFW,Docker for Mac 以下简称为 DFM。

原因

首先要知道 Docker 引擎只能在 Linux 核心的系统上运行,Windows 与 macOS 系统上是不能直接运行 Docker 引擎的。最开始的解决方案是在本地创建虚拟机,也就是 Docker Machine 提供的功能。创建一台 Linux 系统的虚拟机,并且上面已经安装好了 Docker 。 后来 Docker 公司为了让 Docker 在我们平时工作的电脑上有很好的本地化体验,推出了我们现在用的 Docker for Windows 与 Docker for Mac。

《CentOS》一种 Linux 服务器操作系统

你的网站最终是要运行在安装了 Linux 操作系统的服务器上,所以如果你打算运营一个网站,一定要了解一下 Linux 操作系统。Linux 的种类有挺多,这些不同类型的 Linux 被称为是 Linux 的发行版,其中 CentOS 就是一种常用的 Linux 服务器操作系统。

作为开发者与网站运营者,理解与掌握 Linux 操作系统是必备技能。我们可以先从 CentOS 开始,不同类型的 Linux 的操作会存在不同,但大部分东西也都是通用的。所以学会了其中的一种 Linux,再去使用其它类型的 Linux 也会很容易了。因为原理是一样的,只不是使用的工具的名字与方法可能会存在差异。

在线阅读

https://centos.ninghao.net/

连接小商业与自由职业者的 Lorem 融了 $110万

关于自由职业的商业我都比较感兴趣,我自认为也是自由职业生态里的一小部分。最近看到了 Lorem 融到了 $110万 种子资金。它提供的是把需要技术支持的小商业与自由职业者连接到了一块儿的服务。小商业需要技术支持,比如修复网站的 Bug,定制个小功能,集成个什么服务之类的。而自由职业需要通过出售自己的技术与时间得到相应的报酬。

Lorem 的模式当然是急切被需要的,我自己有亲身经历。前阵子,一位朋友找到我,说他收到阿里云通知,要升级一批老服务器,升级以后服务器会有变动,一是 IP 地址变了,二是磁盘挂载点变了。这让我朋友非常头痛,他是做动画的,团队里也没人懂技术。所以付费在网上找了些人帮忙,但他们也都不知道怎么操作。后来他找到我,聊天加解决问题也不过花了二十来分钟。

文档:学习路径

新创建了一个文档站点,添加了学习路径相关的文档。这个路径可以让您起步,成为一名 Web 开发者。我最擅长的就是让你起步,让你明白一个从来都没听过的东西是什么,基本怎么用。就像学开车,只有学会起步,你才能会开车。至于以后你是想开车拉着女朋友兜兜风,还是要自驾去西藏,还是想成为一名赛车手,这完全是你自己可以控制的了。但这些都是只有在你学会起步以后才有可能实现的事情。

路径有时会遇到分支,你可以选择其中的某个分支,这决定了你后面要走的路。比如学到后端语言,宁皓网为你准备了两个分支,PHP 与 Ruby,如果选择 PHP ,后面你可以选择用 Drupal,WordPress 或 Laravel 为基础去开发需要的 Web 应用。选择 Ruby 的话,后面需要用到 Rails 框架作为你的主要工具。

抽象

抽象,这是我有了女儿以后才注意到的一个词汇。女儿挺早就开始说话了,7个月大小的时候我听到了她第一次叫爸爸。后来开始用一些卡片教她认识一些东西,我记得有张卡片上面画着一着猫,她很早也就认识了卡片上的那只猫。有次我们去商场,女儿指着一件 T 恤上的图案说:“这是小猫咪”。我很吃惊,她是怎么知道的,之前她从来都没看见过类似图案的小猫,而且她的卡片上印的是只真实的小猫照片,但 T 恤上印的是一只线条非常简单的卡通小猫,这跟她之前认识的小猫照片完全不一样。

后来我才知道,这就是人脑的抽象功能。我们不需要看过所有的小猫以后才能判断一个东西是否是一只猫,只要在我们脑子里形成抽象,以后不管你看到的是什么类型的用什么形式表示的小猫,你大概都会知道你面前的东西就是一只猫。回到技术学习这里,我想也是一个不断在脑子里形成各种抽象的过程,我们也不需要学习全部,因为我们自带抽象功能。

在学习技术的时候会遇到一些词汇,开始你会觉得它们对你来说没有意义,除非你从来都没听说过这个词,不然这个词对你来说一定是有意义的,只不过你需要换个语境去理解它,它对你来说才会有意义。因为很多技术类的词都源于生活,或者说它们就是我们平时用的词,但在技术这个语境下,你会认为这个词应该是个专业的计算机词汇。

六一我跟纪委同志吃了次饭

昨天收到微信,silence 说出差到济南,想晚上一起喝点东西聊聊天。我问他在哪里住,他说他在济南纪委大楼,这让我想起《人民的名义》。因为之前在网上聊过几次,有些印象,我们就约在了商场里的某家咖啡馆见面。下午吃过饭,就带着一家子去这家商场里溜达溜达,顺道也给女儿过个节。

游戏室

我跟家人到了商场,小雪准备了之前剩下的游戏币,我们走进一家游戏厅。我自己现在并不是太喜欢玩游戏,不过小时候也经常会站在玩游戏的人的街机旁边,挺眼馋。偶尔会拍对方马屁,“这小子打的真好”。不过当时在东北,这话可能有点挑衅的意思,有一次差点没跟人打起来。我在东北还真没挨过打,个子小,外加装可爱,同学可能把我当小动物看待。我也不是太喜欢冲突导致的肾上腺素飙升的感觉,也可能因为胆儿小,或者说比较理性,我觉得今天我把你打了,明天你把我打了,这太麻烦了。

回到现在,游戏机室里充满了小朋友跟大朋友,小朋友们六一应该是放假,成群结队,时而狂奔,时而装酷。游戏室的角落有台机器,像一个大桌子,一群中年男子围着座,都没有表情,地上堆着一堆烟头。小雪说他们可能在赌,每次来都会看到有这样一帮人在那里坐很久,地方堆着一堆烟头。

《Vagrant》管理虚拟机,后端开发必备

你的网站最终要在 Linux 操作系统的服务器上运行,所以学习后端开发之前,你得先去了解一下这种操作系统。学习 Linux 的最好方法就是在本地创建一台 Linux 系统的虚拟机,然后在上面做些练习。Vagrant 是一个非常好的管理在本地创建的虚拟机的工具,用它你只需要几行命令就能创建各种不同类型的 Linux 虚拟机。

跟着《Vagrant》这本书里的操作你能学会使用这个工具去创建与管理虚拟机。这就是这本书的主要目的,后面会有一本专门介绍 Linux 操作系统的书。在学习 Linux 系统之前,你得先有个学习环境,也就是在本地你能创建,管理与配置一台需要的 Linux 机器。

注意 Vagrant它本身并不是虚拟机软件,它只是一个管理虚拟机的工具,有点像是它提供了一套管理虚拟机的界面或者叫方法。Vagrant 可以管理用 Virtualbox 创建的虚拟机,也可以管理用 VMware 创建的虚拟机。Vagrant 是个命令行工具,几乎所有操作你都要在命令行界面下完成,所以你需要先熟悉一下《CLI》。Vagrantfile 这个是虚拟机的配置文件,在上面你可以描述虚拟机的一些特性,比如 IP 地址,共享目录等等。

在线阅读

https://vagrant.ninghao.net

《Git》版本控制,必备技能

Git 可以保存你每次对项目做的修改,给你一个清晰的开发历史记录。它可以让你以后去检查之前在任意时间点对项目做的修改,给你恢复,重做的机会。有了 Git 大家可以一起协作开发一个项目,有几种流程方法,在 《Git》里都介绍到了。

你已经想成为一名开发者了,不管是以后的日常工作,还是以开发者身份去应聘面试,会用 Git 都是非常加分的。即使你是一名开发爱好者,我也推荐了解一下 Git 。它是为项目做版本控制,一起协作开发的必备工具。

能把 Git 用在自己的开发流程里,你不需要读完一本 500 页的书。这本《Git》完全可以让你起步,它不是一本详细的操作手册,而是一本能练习的书。有些东西只有动手实际做一下,才能理解它到底是什么,我的一点经验不断地验证了这一点。

学会了 Git,我们可以一起做点东西。比如我们可以一起写这本书,这本书也可以作为一个一起开发的项目,你可以为书提交自己写的章节,可以修复书中的错误。

在线阅读

https://git.ninghao.net/

前置阅读

  1. CLI》熟悉命令行界面
  2. Workflow》准备开发前期的几样工具

《工作流》一开始你要准备的工具

工作流》里介绍了成为一名开始者,一开始你要知道的工具。之前我们已经介绍了《CLI》,现在你应该熟悉了在命令行界面下工具。现在你可以跟着《工作流》,去在电脑上准备一些工具。以后你还会遇到很多工具,不过要等到真正用到的时候再去准备与了解他们。先带上这些必备工具,就可以出发了,只有轻装上阵,你才可能走的更远。

微信好友

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

微信公众号

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

240746680

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

统计

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

社会化网络

关于

微信订阅号

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