最近,有读者留言让我推荐开源 CMS。我本想直接回复 WordPress,但是转念一想我玩 WordPress 是 2010 年左右的事情了,都过去十年了,它会不会有些过时呢?有没有新的、更好玩的开源 CMS 呢?

开源项目这玩意儿,一想心就躁,看见手就痒。借着这股劲儿,今天我就给大家带来 7 款称得上殿堂级的开源 CMS,它们中有老当益壮的 WordPress(PHP)、国人开发的 Halo(Java)、玩法丰富的 Ghost(JavaScript)、企业级 CMS 的 Django CMS(Python)、星数最多的 strapi(JavaScript) 等等。

下面,我会根据功能将项目分为:传统 CMS 和 无头 CMS 两大类进行介绍,然后从 CMS 概念到具体项目的安装步骤,最后特点会用 粗体 醒目的标记出来,就算之前不知道 CMS、不会编程的读者,也可以放心地阅读。相信你看完这篇文章就会知道:什么是 CMS、什么是无头 CMS、它们能用来做什么,甚至可以头头是道地向别人介绍几款,让人眼前一亮的开源 CMS 呢!

闲话少叙,让我们直接开始今天的分享。

1. 传统 CMS

CMS 是内容管理系统的英文简称,它是用来管理和发布包括文章、图片、商品等内容的系统。最常见的 CMS 就是博客系统,作者登录管理后台写文章,点击发布后读者就可以访问指定网址,看到作者发布的内容啦。

不管你是不是程序员,如果你想快速构建一个网站,那么下面这些开源 CMS 一定能助你一臂之力。

1.1 halo

Star 数:24.4k|编程语言:Java(99.5%)

一款由国人开发的现代化开源 CMS,采用 Spring Boot+Vue.js 编写而成,代码开源完全免费,截止到本文发表时已经迭代了 80 多个版本。国人开发的好处是可轻松接入国内的云存储服务,而且文档、社区和操作界面全部是中文的。

安装步骤,如下:

# 本地有 Java
1. 下载最新的 jar 包:https://dl.halo.run/release/halo-1.5.4.jar
2. 运行:java -jar halo-1.5.4.jar # Docker 运行
docker run -it -d --name halo-next -p 8090:8090 -v ~/halo-next:/root/halo-next --restart=unless-stopped halohub/halo-dev:2.0.0-beta.1

地址:https://github.com/halo-dev/halo

1.2 django-cms

Star 数:9k|编程语言:Python(59.7%)

由 Django 编写的企业级 CMS,它功能实用、安全可靠,支持拖拽上传图片、轮播图、Docker 部署等功能,可轻松进行二次开发,多用于构建企业官网,比如:国家地理等网站就是基于它开发而成。

安装步骤,如下:

$ git clone git@github.com:django-cms/django-cms-quickstart.git
$ cd django-cms-quickstart
$ docker compose build web && docker compose up -d database_default
$ docker compose run web python manage.py migrate && docker compose run web python manage.py createsuperuser
$ docker compose up -d
$ open http://127.0.0.1:8000

地址:https://github.com/django-cms/django-cms

1.3 WordPress

Star 数:16.8k|编程语言:PHP(62.5%)

作为全球最流行的 CMS,它的市场占有率一直处于独占鳌头那一档(64.2%)。我认为这些得益于它:傻瓜式的安装方式、丰富的主题和插件、十年如一日的更新迭代,以及优秀的商业模式。

有多少人的第一个博客是用它搞起来的?算我一个

地址:https://github.com/WordPress/WordPress

1.4 joomla-cms

Star 数:4.3k|编程语言:PHP(92.2%)

它是和 WordPress 同时期开源的 PHP CMS 项目,与 WordPress 不同的是Joomla! 更加灵活,但学习曲线也更陡峭。它具有较强的通用性,再加上丰富多元的扩展,可用来搭建商业网站、个人博客、信息管理系统、Web 服务等。作为开源至今已有 18 年历史的 CMS,肯定还是有点东西的。

地址:https://github.com/joomla/joomla-cms

这里顺带提一嘴:Drupal 也同样是 PHP 写的以复杂著称的 CMS,如果你需要一个处理大量请求、高度自定义的网站,可以考虑它。

2. 无头 CMS

无头 CMS 就是指:仅包含内容管理的后台,没有现成的前台展示,前台需要自己实现。

好处是内容和展示完全分离,不依赖或不需要特定的前端框架,可以根据自己喜好选择前端框架、接入静态站点生成器或 APP,创建丰富的展示体验。

缺点是需要懂技术的开发人员,开发周期大概需要一周左右。

2.1 wagtail

Star 数:13.4k|编程语言:Python(79.3%)

基于 Python 知名 Web 框架 Django 实现的无头内容管理系统,拥有清爽的 UI 和简洁易用的编辑器。独特的 StreamField 技术,可以让内容排版灵活又不失结构,再加上强大的多语言系统,让它在众多开源 CMS 中脱颖而出。

安装步骤,如下:

pip install wagtail
wagtail start mysite
cd mysite
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

地址:https://github.com/wagtail/wagtail

2.2 ghost

Star 数:41.7k|编程语言:JavaScript(79.4%)

一款用 Node.js 编写,功能强大的无头 CMS。它的强大之处在于提供了丰富、免费、可自定义的主题,用户可以自由搭配轻松建站。专业的会员订阅和数据可视化功能,让内容创作者可以围绕内容,尝试发展商业化业务。除此之外,它还拥有先进的所见即所得编辑器。

安装步骤,如下:

npm install ghost-cli -g
ghost install local

地址:https://github.com/TryGhost/Ghost

2.3 strapi

Star 数:49.5k|编程语言:JavaScript(99.6%)

一款完全免费、基于 JavaScript 构建的无头内容管理系统,它拥有开箱即用的 API 和友好的管理面板,自带权限管理、默认安全、SEO 友好等特点。该项目做为 GitHub 上 Star 数最多的开源内容管理系统,目前已成为多家世界 500 公司的首选 CMS。

安装步骤,如下:

yarn create strapi-app my-project --quickstart
或者
npx create-strapi-app my-project --quickstart

地址:https://github.com/strapi/strapi

3. 最后

如果,你要挑一个开源 CMS:

  • 不会编程:首选 WordPress 因为它成熟简单,编程相关的东西都被藏在了背后。
  • 会 Python:django-cms 容易接受,wagtail 则更新、势头更猛。
  • 会前端:推荐 strapi 它背后有商业化公司支持,吃透了可以谋个远程全职。
  • 不会前端,但懂后端:推荐 Ghost,它玩法多、社区活跃、有免费主题。

以上就是本文的所有内容了,由于篇幅问题没有写静态网站生成器相关的开源项目,后面我会专门再做一期。

如果您觉得这期内容还不错:求赞、求收藏、求转发,您的支持就是对我最大的鼓励!️

7 款殿堂级的开源 CMS(内容管理系统)的更多相关文章

  1. 30 个很棒的 PHP 开源 CMS 内容管理系统

    本文汇集了30个优秀的开源CMS建站系统,采用PHP开发.以下列表不分先后顺序. 1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳 ...

  2. 推荐八款.Net优秀的开源CMS 内容管理系统

    1,老牌内容管理系统SiteServer CMS  推荐指数:5 SiteServer CMS 是.NET平台的CMS系统,也是一款拥有十年历史与广泛知名度的CMS系统,2017年5月初迈出了自成立以 ...

  3. 贝云cms内容管理系统(thinkphp5.0开源cms管理系统)

    byCms包含文章,图片,下载,视频模型,基于thinkphp5.0.9,可无缝升级至thinkphp.1.0,是一套简单,易用的内容管理系统,旨在帮助开发者节约web应用后台开发时间和精力,以最快的 ...

  4. 基于thinkphp3.2.3开发的CMS内容管理系统 - ThinkPHP框架

    基于thinkphp3.2.3开发的CMS内容管理系统 thinkphp版本:3.2.3 功能: --分类栏目管理 --文章管理 --用户管理 --友情链接管理 --系统设置 目前占时这些功能,更多功 ...

  5. 基于thinkphp3.2.3开发的CMS内容管理系统(二)- Rbac用户权限

    基于thinkphp3.2.3开发的CMS内容管理系统 thinkphp版本:3.2.3 功能: --分类栏目管理 --文章管理 --商品管理 --用户管理 --角色管理 --权限管理 --友情链接管 ...

  6. 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台

    小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本.现在,大家期待已久的云开发 CMS 内容管理系统,终于上线啦!顺便提示,接下来还可以二次开发哦! 云开发 CMS ...

  7. 开源丨CloudBase CMS 内容管理系统!简单易用企业内容管理流

    背景 云开发CloudBase CMS 是云开发推出的一站式云端内容管理系统,助力企业的数据运营管理工作. 开发者可以直接在云开发扩展能力中一键安装 CloudBase CMS,免费使用 CloudB ...

  8. .Net Core 3.0开源可视化设计CMS内容管理系统建站系统

    简介 ZKEACMS,又名纸壳CMS,是可视化编辑设计的内容管理系统.基于.Net Core开发可跨平台运行,并拥有卓越的性能. 纸壳CMS基于插件式设计,功能丰富,易于扩展,可快速创建网站. 布局设 ...

  9. 八大CMS内容管理系统推荐

    cms系统哪个好 感谢 64320 的投递 时间:2015-03-05 来源:http://www.iisp.com/ztview/ID_16129.html?s=bios 耐思尼克 很多新手站长初次 ...

  10. 初次认识dedecms和帝国cms内容管理系统

    近乎完美的内容模块管理 强大的内容管理系统,细致入微 其原理都是 先建立一个 模板系统 然后动态生成静态页面 注意各个板块和栏目的设置  在迁移网站的时候 尤其需要注意的是 系统参数的 根目录 需要及 ...

随机推荐

  1. RabbitMQ 入门系列:10、扩展内容:延时队列:延时队列插件及其有限的适用场景(系列大结局)。

    系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...

  2. 写个续集,填坑来了!关于“Thread.sleep(0)这一行‘看似无用’的代码”里面留下的坑。

    "我报名参加金石计划1期挑战--瓜分10万奖池,这是我的第2篇文章,点击查看活动详情" 你好呀,我是居家十三天只出了一次小区门的歪歪. 这篇文章是来填坑的,我以前写文章的时候也会去 ...

  3. 采云链SRM SaaS供应商管理系统,发展型中小企业的福音

    采购业务的发展遵循一些规律:采购从一开始围绕"供应商"开展,逐渐发展成围绕"货物"进行,如今围绕"供应商协同"和"采购流程管理&q ...

  4. Python实验报告——第4章 序列的应用

    实验报告 [实验目的] 1.掌握python中序列及序列的常用操作. 2.根据实际需要选择使用合适的序列类型. [实验条件] 1.PC机或者远程编程环境. [实验内容] 1.完成第四章 序列的应用 实 ...

  5. Redis 监控指标

    监控指标 性能指标:Performance 内存指标: Memory 基本活动指标:Basic activity 持久性指标: Persistence 错误指标:Error 性能指标:Performa ...

  6. kvm命令管理虚拟机

    virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式: KVM 工具集合 libvirt:操作和管理KVM虚机的虚拟化 ...

  7. Kibana:如何让用户匿名访问 Kibana 中的 Dashboard

    文章转载自:https://elasticstack.blog.csdn.net/article/details/118152293 有一个很好的 Dashboard,我们想分析这个 Dashboar ...

  8. k8s控制器理解

    DaemonSet 一个DaemonSet对象能确保其创建的Pod在集群中的每一台(或指定)Node上都运行一个副本.如果集群中动态加入了新的Node,DaemonSet中的Pod也会被添加在新加入N ...

  9. Query String Query和Sumple Query String

  10. 驱动开发:内核CR3切换读写内存

    首先CR3是什么,CR3是一个寄存器,该寄存器内保存有页目录表物理地址(PDBR地址),其实CR3内部存放的就是页目录表的内存基地址,运用CR3切换可实现对特定进程内存地址的强制读写操作,此类读写属于 ...