您需要了解的有关内容管理系统的所有信息

对于一般的互联网冲浪者而言,查看网页内容非常简单。您打开浏览器,输入URL,然后瞧!页面出现。但另一方面,有些软件正在努力为您服务。大量的服务器正在利用内容管理系统来创建和提供您喜欢的内容。

从CMS“打开"页面时,实际上会发生什么?让我们看一下将内容带到屏幕上的系统的不同部分。

早期的Web

1990年代末期-当网络开始兴起时-有很多这些组件使用户能够轻松地访问。事情已经从直接从托管服务器获取网页到更复杂的系统发展起来:

  • 通过私有实体更轻松地访问域名系统注册,这使得我们现在称为域名的任意标签得以关联IP地址。这使用户可以轻松找到自己喜欢的站点。
  • 超文本传输​​协议(HTTP)提供了一种通过Internet发送信息的标准方法。这使得个人和组织值得以HTML形式提供其内容,因此任何人都可以使用兼容的浏览器进行阅读。
  • 出现了Web服务器,其目的是等待对网页的请求并发回这页纸。这使管理员可以轻松地扩展和保护其托管环境。
  • 在这段时间内免费提供浏览器,AOL之类的互联网服务提供商提供了无限制的拨号访问,并且用户已从封闭社区迁移(例如BBS系统)以打开基于Web的内容。但是尽管有信息需求,但生态系统的一部分仍然受到损害。

    创建所有这些早期网站的过程仍然集中在HTML的手工制作页面上。这通常会导致内联样式和大量非常自定义的编码,尤其是对于当今的``动态''网站(例如以Perl等语言进行的电子商务)。此外,发布网站的过程仍然需要具备FTP传输和网络托管的技术知识。

    然后,更多由用户生成的内容开始以“配置文件"的形式出现"网站,例如Yahoo和MySpace。诸如Blogger和LiveJournal之类的博客服务又向前迈进了一步,而桌面“网页编辑器"使创建(外观不佳)网页而无需任何标记成为可能。这些启发了当今的通用内容管理系统,该系统使用户可以轻松地:

  • 创建具有丰富格式的新页面。
  • 将页面排列成网站层次结构。
  • 允许其他用户与网站进行交互,直到并包括创作自己的页面。
  • 在以下各节中,我们将精确地看一下CMS如何使这些任务如此简单。

    CMS的组件

    当今有许多可用的CMS应用程序,但其中大多数具有以下共同点:

  • 它们以特定的编程/脚本语言构建。与只是标记的HTML相反,一种编程语言允许网页执行诸如确定谁在尝试使用它们或根据搜索来获取结果之类的操作。
  • 他们使用网络服务器。它将执行页面文件(及其编程),并将生成的HTML返回给访问者的浏览器。
  • 我们将在下面依次查看每个文件。

    其中之一不同CMS之间的主要区别是它们支持的编程语言。编程语言用于使站点“动态",即执行计算或其他逻辑。这些操作可以像在页脚的版权中显示当前年份一样简单,只需添加和显示数字报告即可。

    所有主要的网络编程语言都有至少一个CMS,包括:

  • ASP.NET: DotNetNuke(DNN CMS),Umbraco
  • Python: Django,Plone
  • Java :Alfresco,Magnolia
  • 在这些语言(和其他语言)中,PHP成为了最主要的语言-创建内容管理系统的跑步者有两个原因。首先,它是开源的,一开始并不能说所有语言。结果,在较小的站点所在的许多便宜的托管计划中,它是免费提供的一种语言。此外,在大多数情况下,它是一种易于使用的语言,可让新用户将自己的功能入侵自己的网站。最后,Apache Web服务器从一开始就将PHP作为模块包含在内。因此,设置世界领先的Web服务器既快捷又容易。

    尽管其他一些语言已经在对抗PHP的领先优势方面取得了进展(例如.NET现在是开源的),但要捕获它们还需要一段时间

    给定CMS的编程语言还考虑了它支持或完全需要的数据库。 PHP对MySQL也有出色的支持。同样,DNN CMS支持Microsoft SQL Server,而Alfresco支持企业和Java友好的数据库,例如Oracle和db2。归根结底,用于托管CMS的数据库也可能受托管环境提供的任何驱动。博客的托管帐户几乎可以肯定会向您提供MySQL,而您的公司可能只使用Oracle。

    数据库存储了大多数CMS的大部分内容,但应用程序文件除外(页面模板,附加组件等),媒体(图像和视频)和某些配置。但是给定页面上的文本以及媒体文件的路径及其所在的URL通常存储在DB表中。

    最后,CMS是一个Web应用程序,因此需要一个Web服务器。通过使用各种模块,Apache可以支持所有上述四种语言以及更多语言。越来越流行的新型Web服务器,例如 nginx lighttpd ,也通过附加组件支持不同的语言集。

    Web服务器将< strong>执行该网站的文件。这些文件类型(.PHP,.JSP等)通常只是混合了编程语言代码的HTML标记。当Web服务器处理页面时,它会在其模块/添加的帮助下执行遇到的任何编程代码。 -启用该语言。在处理完页面后,编程代码将被某种浏览器友好的内容取代。

    如果您仔细查看上方的内容,您会发现该代码实际上可以通过“获取"标题和页面模板。为了使事情变得更复杂,一个文件可以调用一个或多个其他文件来寻求帮助。当我们在以下各节中查看对CMS的一些实际请求时,请记住,运行“ PHP文件"实际上可能涉及运行许多内容。

    行动中的CMS

    描述CMS的最简单方法是执行几个示例操作并逐步完成每个步骤。就像前面的插图一样,这些过程以请求页面开始,以Web服务器将一些HTML(和CSS / Javascript)发送回浏览器结束。但是,在下面的步骤中,假设基于PHP的CMS,我们将在其中进行一些探索。

    与CMS的最基本交互是普通用户请求其页面之一。例如,在PCPC.me上阅读本文。它具有URL,但是该位置的目录中没有实际文件。当读者的浏览器请求URL时,Web服务器将运行CMS的PHP文件之一,例如 index.php 文件。

    PHP页面通过查询来处理请求CMS页面的数据库中元数据中具有匹配的URL(同样,URL的位置上没有实际文件)。然后,它将从数据库读取页面的内容(普通文本,图形以及小部件)和元数据(标题,使用的模板等),并返回页面的HTML供浏览器呈现。简而言之,它是使用URL选择要在数据库中使用哪个页面记录

    以同样的方式,想要登录该网站的用户(例如查看“仅会员"页面)将需要提供凭据。当他们尝试访问有问题的页面时,数据库将包含表明该页面需要登录的权限。

    在诸如 login.php 之类的页面上输入用户名和密码时。 ,它将在数据库中查询提供的用户名的密码,进行比较以确保它们匹配,然后根据需要将用户发送回其请求的页面。

    通常在CMS中更新页面需要访问其管理屏幕,更改页面的内容,然后重新保存/重新发布。例如,WordPress包含 wp-admin / post.php 页面。首先将检查用户是否已登录,如果已登录,则查看用户是否为管理员。接下来,它将在数据库中查询表示用户要修改的页面的内容,并填充诸如文本区域和图像选择器之类的编辑控件。

    用户可以与这些控件进行交互(例如,更改文本或替换标题图片),完成后单击“保存"或“发布"按钮。此时,管理屏幕将采用新的填充值并在数据库中更新它们。

    CMS使Web创作可访问

    尽管它们在内部是复杂的应用程序,但在诸如WordPress之类的表面CMS使非技术用户可以轻松地在Web上进行创作。想要发布简单博客的人可以注册一个便宜的托管帐户,单击一些按钮,并在几分钟之内准备好CMS。只需花几美元,托管公司甚至可以管理它的更新和维护。

    您是否在特定CMS上托管网站或博客?拥有内容管理系统会使您的工作更轻松吗?还是您更喜欢像过去那样将HTML上传到您的托管帐户?在评论中让我们知道您是CMS奉献者还是老式HTML争吵者。

    标签: 博客 内容管理系统 PHP编程 Wordpress