为WordPress 项目开发安装配置本地(docker)开发环境

WordPress 很流行,对于相当一部用户来说,WordPress还只是一个博客系统:在服务器安装好后,简单配置一下插件,选择一个适合和喜欢的主题,就可发布文章和内容了,不需要什么开发(development)和开发环境的概念。

首先,有一点技术背景的人都知道,WordPress早已不只是博客系统,而是发展成了一个==完善的CMS==(内容管理系统),甚至是==Web开发框架==。这话什么意思?意思是,WordPress 和 像PHP 其他MVC框架(Laravel Yii),Node 框架(Next Nuxt),Java MVC框架一样,可以用来开发大型Web应用,像开发社交,电商是完全可能的,当然是否合适(尤其是相对于其他PHP 框架),效率如何是另一个问题。

其次,即便不计划开发 Web 应用,WordPress 本身社区大量的自定义主题,==插件也是需要「开发的」==。所以从一开始,WordPress 开发者,和WordPress使用者(博客作者)是同时存在的。

当然,==WordPress 使用者==能通过 文章发布后台(dashbord)对 WordPress应用进行定制,有一定开发的性质,这是WordPress相对于其它 应用框架最大的一个特点。

WordPress 开发者

使用 WordPress,可以有以下一不完全系列的定制和开发使用情景:

  1. WP主题微调,开发博客,公司网站等营销网站
  2. 有较多自定义路由(主题页面),但性质还是 内容(营销)网站
  3. 对主题风格设计要求高,需高级主题框架做基础
  4. 有较多的plugin定制需求,但性质还是 内容(营销)网站为主,例如像 社交,论坛,电商(对 用户管理有需求)
  5. 需 要定制数据表,后端功能的支持,有app性质倾向

除了第一个简单的 WordPress 使用者,其它定制情景都需要一个 「本地开发环境」,从事WordPress 开发者工作。

WordPress与 PHP开发

WordPress 开发任务有很多种形式,除了安装(和配置)既有主题和插件,「主题和插件的定制」是主要的工作。

WordPress 是一个PHP框架,「主题和插件的定制」当然是一种PHP编程。只是,这是一种基于WP之上的特殊开发,使了WP提供的API和一些框架约定(例如基于Plink的路由机制)进行定制开发。

WP的开发环境及任务情景是:

  1. 第一,配置PHP,和WP(包括源文件,MYSQL,APACHE);
  2. 第二,工作WP某个目录之下;
  3. 第三,使用WP的概念模型(API和约定)进行编程,例如

docker 与 web应用部署计划

网上(包括WP官网)有大量的配置教程,本文再介绍一下最新的一种配置方案,docker。开始之前,先简单说说docker。

docker是什么?docker设计的主要目的是 「软件的灵活部署」。软件不但要开发,要测试,还要最终交付的,==交付和生产部署也是工程重要的任务==,需要设计和安排。

软件项目在开发之前先进行部署设计,这个和项目先进行功能计划,都是一种先见之明。想一想传统的开发和发布情景,本地和生产服务器有两套手动同步的运行环境,就知道docker的价值。当项目有新功能,新模块依赖,或者团队有新成员加入时,都要手工维护项目的开发和生产环境。

docker 主要原理

docker 主要思想是==微服务分发==,为软件依赖的功用和服务提供全平台技术,包括微服务的开发,定制,发布和运行服务。

任何应用软件,无论是开发它,还是运行它,都是需要在操作系统之上有一些系列服务支撑的,这些服务有并列,也有层次关系,连接它们要么靠管道,要么靠网络,这些共同点,不同点是说,每个应用软件需要支撑的服务有数量和版本的不同,这是造成软件(尤其是分布式软件应用)在多个环境分发困难的原因。

docker就是一种软件服务的定义,创建和制作的虚拟化技术,目标是==像分发「原生应用程序」那样方便自动的分发 「分布式应用」==。

docker 主要工具

docker 主要提供三层工具实现它的目标的:

  1. 第一,服务镜像的制作(Dockerfile);将某个想要的服务或软件成品打包成镜像方便分发和共享;
  2. 第二,服务镜像的容器实例运行(docker run);镜像是静态的,必须运行;docker支持运行参数,提供镜像制作的灵活性;
  3. 第三,容器实例的动态编程(docker compose);dc是简化运行多个容器的工具;

参考

https://developer.wordpress.org/themes/getting-started/setting-up-a-development-environment/

https://aschmelyun.com/blog/build-a-solid-wordpress-dev-environment-with-docker/

https://www.sitepoint.com/docker-php-development-environment/

https://make.wordpress.org/core/handbook/tutorials/installing-a-local-server/

裸男
Nakeman.cn 2023 Build by Gatsby and Tailwind, Deploy on Netlify.