对于一般的上网者来说,浏览网页内容很简单。你打开一个浏览器,输入一个网址,瞧!页面显示。但另一方面,有一些软件正在努力为你服务。大量的服务器正在利用内容管理系统来创建和服务您喜爱的内容。
当你从CMS“打开”一个页面时会发生什么?让我们看看将内容带到屏幕的系统的不同部分。
上世纪90年代末,当网络开始兴起时,有许多组件使用户能够轻松访问他们喜爱的网络内容。事情已经从直接从托管服务器获取网页发展到更复杂的系统:
在此期间,浏览器变得免费,互联网服务提供商如美国在线(AOL)提供无限的拨号接入,用户从封闭的社区(如BBS系统)迁移到开放的、基于web的内容。但是,尽管对信息有需求,生态系统的一部分仍然受到影响。
创建所有这些早期网站的过程仍然以手工**HTML页面为中心。这通常会导致内联样式和大量非常定制的代码,特别是对于当今的“动态”网站(例如,用Perl等语言进行的电子商务)。此外,发布网站的过程仍然需要FTP传输和web托管方面的技术知识。
然后,更多用户生成的内容开始以“个人资料”网站的形式出现,如雅虎和MySpace。Blogger和LiveJournal这样的博客服务更进一步,而桌面“网页编辑器”使得创建一个(不好看的)网页而不知道任何标记成为可能。这些特性启发了当今的通用内容管理系统,它允许用户轻松地:
在下面的部分中,我们将详细介绍CMS如何使这些任务变得如此简单。
目前有许多CMS应用程序可用,但大多数都有以下共同点:
我们将在下面依次查看每一个。
不同cmse之间的主要区别之一是它们所支持的编程语言。编程语言用于使站点“动态”,也就是说执行计算或其他逻辑。这些操作可以简单到在页脚的版权中显示当前年份,也可以添加和显示数字报表。
所有主要的网络编程语言至少都有一个CMS,包括:
在这些语言(以及其他语言)中,PHP已经成为创建内容管理系统的领跑者,原因有两个。首先,它是开源的,一开始并不是所有语言都是开源的。因此,在许多小型网站的廉价托管计划中,它是一种免费的语言。此外,从大多数方面来看,它是一种简单的语言,允许新用户将自己的功能侵入自己的网站。最后,apacheweb服务器从很早就将PHP作为一个模块。因此,建立世界领先的网络服务器是快速和简单的。
尽管其他一些语言已经取得了与PHP相比的进步(例如,.NET现在是开源的),但它们要想从WordPress之类的公司获得可观的市场份额还需要一段时间。
给定CMS的编程语言还考虑了它所支持或完全需要的数据库。PHP对MySQL有很好的支持,尽管使用它的cmse通常也可以使用PostgreSQL或SQLite。同样,dnncms支持microsoftsqlserver,而Alfresco支持企业级和Java友好型数据库,如Oracle和db2。最后,您用于CMS的数据库也可能由您的托管环境提供的任何数据库驱动。你的博客的托管帐户几乎肯定会让你使用MySQL,而你的公司可能只使用Oracle。
除了应用程序的文件(页面模板、加载项等)、媒体(图像和视频)和某些配置之外,数据库存储了大多数CMSE的大部分内容。但是给定页面上的文本、媒体文件的路径以及它所在的URL通常存储在DB表中。
最后,CMS是一个web应用程序,因此需要一个web服务器。通过使用各种模块,Apache可以支持上述四种语言等等。越来越流行的较新的web服务器,如nginx和lighttpd,也通过附加组件支持不同的语言集。
web服务器将执行站点的文件。这些文件类型(.PHP、.JSP等)通常只是混合了编程语言代码的HTML标记。当web服务器处理页面时,它会在该语言的模块/插件的帮助下执行遇到的任何编程代码。当它处理完一个页面时,编程代码将被一些浏览器友好的内容所取代。
如果仔细观察上面的代码,您会发现代码实际上通过“获取”页眉和页面模板来帮助构建页面。为了使事情更复杂,一个文件可能会调用一个或多个其他文件以获得帮助。当我们在下面几节中查看对CMS的一些实际请求时,请记住,运行“PHP文件”实际上可能需要运行许多。
描述CMS最简单的方法是采取几个示例操作,并对每个操作的步骤进行遍历。与前面的示例一样,这些过程从对页面的请求开始,到web服务器将一些HTML(和CSS/Javascript)发送回浏览器结束。但是,假设一个基于PHP的CMS,我们将在下面探索其中的一些步骤。
与CMS最基本的交互是普通用户请求它的一个页面。例如,以这篇关于MakeUseOf的文章为例。它有一个URL,但在该位置的目录中没有实际的文件。当读者的浏览器请求一个URL时,web服务器运行CMS的一个PHP文件,例如索引.php文件。
PHP页面通过查询数据库中的CMS页面及其元数据中的匹配URL来处理请求(同样,URL的位置没有实际的文件)。然后,它将从数据库中读取页面的内容(普通文本和图形以及小部件)和元数据(标题、它使用的模板等),并返回页面的HTML供浏览器呈现。简而言之,它使用URL来选择数据库中要使用的页面记录。
同样,想要登录到该站点的用户(例如,要查看“仅限成员”页面)将需要提供凭据。当他们试图访问有问题的页面时,DB将包含指示该页面需要登录的权限。
在像这样的页面上输入用户名和密码登录.php,它将在数据库中查询所提供用户名的密码,进行比较以确保它们匹配,并根据需要将用户发送回其请求的页面。
在CMS中更新页面通常需要访问其管理屏幕,对页面内容进行更改,并重新保存/重新发布页面。例如,WordPress包含wp admin页面/邮政.php. 它将首先检查用户是否已登录,如果已登录,则检查用户是否是管理员。接下来,它将在数据库中查询表示用户要修改的页面的内容,填充编辑控件,例如文本区域和图像选择器。
用户可以与这些控件交互(例如更改文本或替换标题图像),完成后单击“保存”或“发布”按钮。此时,管理屏幕将获取新填写的值并在数据库中更新它们。
尽管在内部它们是复杂的应用程序,但表面上,像WordPress这样的cmse使非技术用户在web上的创作变得容易。有人谁想要发布一个简单的博客可以注册一个便宜的托管帐户,点击几个按钮,并有一个CMS准备在几分钟内去。多花几美元,托管公司甚至可以管理它的更新和维护。
你在某个特定的CMS上有网站或博客吗?拥有内容管理系统会让你的工作更轻松吗?或者你更喜欢像以前那样把HTML上传到你的主机帐户上?让我们知道在评论中,如果你是一个CMS爱好者或老式的HTML牧马人。
...一些软件正在努力为你服务。大量的服务器正在利用内容管理系统来创建和服务您喜爱的内容。 ...
...特定的容量限制;如果您没有足够的空间来存放数据,则需要删除内容或购买一个新驱动器。 ...
...总会发生。除非你愿意在一瞬间丢失所有的数据,否则你需要一个好的备份程序。同意,但还没解决?那你就到了正确的地方! ...
...部硬盘添加一些额外空间。在本文中,我们详细介绍了您需要了解的关于Xbox One外部硬盘的所有内容。 ...
...能记录应用程序的使用情况,所以如果你使用Android,你需要担心的不仅仅是WhatsApp。当然,这只是在你打开了网络和应用程序活动的情况下。 ...
... 这就是为什么您的业务或组织需要BookFusion。 ...
...面是如何使用这些报告来了解硬件的运行情况,以及可能需要修复的特定问题的一些提示和解决方法。你还有什么建议吗?在评论中与我们分享! ...
... 你甚至不需要输入任何东西。该网站将立即显示您的IP地址,以及它能够从中了解到的关于您的一切信息,包括您的地理位置。 ...
...你运行的是什么版本的Windows时,你是否僵住了?如果你需要技术支持,你能说出你已经安装了多少内存吗? ...
...知道你的系统有哪个版本的Linux和内核是至关重要的,你需要这些信息来知道安全补丁是否适用于你的系统。 有多种方法可以找到这些信息,其中一些方法可以在任何机器上使用。然而,其他的并不普遍。例如,hostnamectl只适用...