Pagekit CMS 1.0 版本评测:轻量级博客引擎的潜力与不足
Pagekit CMS 最近发布了 1.0 版本,作为一名关注个人博客引擎的用户,我决定对其进行一番测试。虽然 Pagekit 的功能远不止博客,但将其作为测试平台已足够。
注意:我们将使用 Homestead Improved 作为测试环境。所有命令(如有)都将基于此环境列出。如有必要,请根据您自己的操作系统进行调整。
安装方法是下载并解压其存档文件,然后将 Web 服务器指向新创建的文件夹。Pagekit 将立即显示安装界面。
经过简短但极其流畅的安装过程后,我们将进入仪表板。
从仪表板,我们可以访问网站的其他所有部分,例如管理用户、配置新页面和路由、安装主题和扩展、处理小部件等等。
默认情况下,权限/角色子系统功能有限,仅支持已认证用户、管理员和访客,但这对于我们在此测试的博客来说已经足够了。如有需要,以后可以在“角色”屏幕中添加更多角色。
首先,让我们设置一个“关于”页面。如果我们进入“站点”,然后进入“页面”,就可以设置一个新页面。方便的是,Pagekit 原生支持 Markdown,因此我们可以用它来编写内容。
页面(以及指向它的链接)将立即出现在我们网站的首页:
然后,要设置博客,我们需要安装博客扩展。幸运的是,它已作为默认扩展存在,并可在主菜单中访问。其中还有一个示例帖子:“Hello Pagekit”。
作为开发者,我需要编写大量代码片段,因此查看这些代码片段在帖子中的显示方式至关重要。让我们修改示例帖子,加入一些技术内容和一两张图片。我将使用之前发表在 SitePoint 上的一篇帖子。
看起来不错——比默认主题的预期效果要好得多——但只有内联代码似乎被高亮显示了。其余部分是纯文本。让我们看看如何解决这个问题。
Pagekit 配备了一个很棒的市场,虽然目前还比较空,但扩展/主题的安装/下载过程非常完善。它简单易用,而且相对容易开发,不会将开发的包变成一团糟的意大利面条代码。
方便的是,市场中已经有一个 Highlight 扩展,显然是为开发者从第一天就开始准备的。
安装很简单,而且让每个 PHP 开发者都高兴的是,它是通过 Composer 完成的。
只需刷新博客帖子的渲染,即可看到它的作用——它会自动启用!
好多了!
不过,默认主题有点太标准了。它很漂亮,但是随着越来越多的人使用 Pagekit,网站开始看起来很相似,变得有点太容易识别了——就像“Bootstrap 瘟疫”一样。让我们安装另一个主题。最小化主题看起来很棒,所以让我们使用它。
不到一分钟,整个过程就完成了——主题已安装并激活,刷新网站即可看到效果。
当然,它远不如演示版漂亮,但是当内容差异如此之大的时候,人们很难期待这一点。一些小的修改就能解决这个问题。
在未激活重写模块的 Apache 服务器和 Nginx 上,Pagekit 网址默认为包含 index.php 的丑陋网址。要在 Apache 上获得漂亮的网址,需要启用该模块——请参阅您的服务器设置文档。在 Nginx 中,Homestead Improved 的默认设置将支持漂亮的网址(即它们将工作),但是 Pagekit 默认情况下不会在内部启用它们,因为它无法检测到它们已启用。为了欺骗它,我们可以向服务器配置中添加一个自定义值:
<code>fastcgi_param HTTP_MOD_REWRITE On;</code>
一旦我们使用 sudo service nginx restart 重启服务器,这将使 Pagekit 认为 Apache 的重写模块已启用,这反过来又会在整个系统中激活漂亮的网址。下面是一个完整的示例服务器配置:
<code>server { listen 80; listen 443 ssl; server_name pagekit.app; root "/home/vagrant/Code/pagekit"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log off; error_log /var/log/nginx/pagekit.app-error.log error; sendfile off; client_max_body_size 100m; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTP_MOD_REWRITE On; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; } location ~ /\.ht { deny all; } }</code>
奇怪的是,Pagekit 违背了最佳实践,将应用程序的入口点 (index.php) 放入根文件夹而不是公共子文件夹中。在 Nginx(以及不读取本地 .htaccess 文件的 Apache)上,这具有严重的安全隐患,因为它允许任何人通过 URL 栏访问关键文件(例如 pagekit.db——网站的整个数据库),只需键入 mypagekit.com/pagekit.db 即可。
为了解决这个问题,我们需要使用几乎逐字从它们的 .htaccess 文件中提取的一行非常原始的代码进一步修改服务器脚本。在 location ~ .php$ { 之上添加以下内容:
<code>location ~ /(composer.lock|pagekit.db|installed.json|composer.json|package.json|bower.json|CHANGELOG.md|README.md|gulpfile.js|webpack.config.js|pagekit) { deny all; }</code>
这是一个极其原始和老式的解决方案,但它有效。我们只能希望 Pagekit 团队在不久的将来能够摆脱这种文件夹结构。
鉴于 Pagekit 默认使用 SQLite 作为数据库,并且数据库文件保存在同一文件夹中,因此部署 Pagekit 网站就像上传静态网站一样简单。可以使用 Laravel Forge 和原始 DigitalOcean Github 方法在此处找到完整的操作指南,您可以选择其中一种!
乍一看,Pagekit 似乎是其他 CMS 的一个不错的替代品。用户界面很棒,其开发者生态系统非常友好,其插件系统构建良好,并且经久耐用。它包含一些很不错的默认功能,例如帖子复制、Markdown、UI 中的 VueJS、网站和博客/评论方面的足够默认设置,以及当前设置中缺少的所有内容都可以轻松地使用扩展添加。
但是,它也并非没有缺点。
首先,其安全性依赖于用户对服务器的设置情况,这意味着如果没有进行大量的修改,它就不像应该的那样具有跨平台性——我们都知道 Nginx 和 Apache 配置文件并不是最直观的编辑文件。此外,内置的 PHP 服务器实际上不能用于正确测试它,这限制了某些机器上的“试用”因素,并且在开发生产就绪的 PHP 原生服务器方面肯定削弱了应用程序的功能,如果它真的被开发出来的话。Pagekit 团队绝对应该加入一些 PHP 端安全检查,并避免尝试使用 .htaccess 文件。
其次,目前无法从数据库导出数据。这使得在用户对 SQLite 感到厌倦后将应用程序移植到 MySQL 变得不切实际,并且限制了内容的可移植性——想象一下,在 SQLite 中本地设置所有内容并编写帖子,然后将数据上传到使用 MySQL 的实时应用程序中。
最后,我们还可以列出无法设置完全自定义存储(目前仅在本地保存静态文件——但这可以通过扩展来完成)和较短的会话生命周期(这可以通过简单的 keepalive ping 来解决),但这确实是很小的抱怨。
市场仍然相当空,但我毫不怀疑,一旦事情开始发展,它就会迅速发展——我们即将推出的教程一定会对此有所帮助——但它是一个“WordPress 杀手”吗?还不是。它肯定比 Ghost 等竞争者更有潜力,但它需要专注于完善 MVP,而不是为了取悦大众而从 MVP 中删除 M。我们需要一个功能更少、易于扩展但默认状态下运行完美的 CMS。
您尝试过 Pagekit 吗?您对它有什么看法?请在评论中告诉我们!
Pagekit CMS 因其简洁性、可扩展性和速度而脱颖而出。它使用 Vue.js 和 Symfony 组件等现代技术构建,这使其成为开发人员的强大工具。它还具有简洁直观的界面,使非技术用户也能轻松管理其内容。此外,Pagekit 是开源的,这意味着它会不断得到开发人员社区的改进。
安装 Pagekit CMS 非常简单。您可以从官方网站或 GitHub 存储库下载它。下载后,将文件解压到您的 Web 服务器目录。然后,导航到您的网站 URL,安装向导将引导您完成设置过程。您需要提供您的数据库详细信息并创建一个管理员帐户。
是的,您可以将 Pagekit CMS 用于电子商务。虽然它没有内置的电子商务功能,但您可以将其与 Snipcart(一个强大的电子商务解决方案)集成。使用 Snipcart,您可以向您的 Pagekit 网站添加购物车,并管理您的产品、订单和客户。
Pagekit CMS 支持主题,允许您自定义网站的外观。您可以从 Pagekit 市场提供的各种免费和付费主题中进行选择。此外,如果您了解 HTML、CSS 和 JavaScript,则可以创建您自己的主题。
Pagekit CMS 功能多样,可用于构建各种网站,从博客和作品集到企业网站和在线商店。其可扩展性允许您通过模块向网站添加功能,其强大的内容管理功能使您可以轻松管理您的内容。
是的,Pagekit CMS 是安全的。它使用现代技术构建,并遵循最佳安全实践。它包括 CSRF 保护、密码哈希和安全 Cookie 等功能。但是,与任何其他 CMS 一样,务必保持更新并遵循良好的安全实践以保护您的网站。
您可以通过安装扩展来扩展 Pagekit 网站的功能。扩展就像插件一样,可以向您的网站添加新功能。您可以在 Pagekit 市场找到各种扩展,从 SEO 工具和社交媒体集成到联系表单和图库。
是的,Pagekit CMS 支持多语言网站。您可以创建多种语言的内容,并使用内置的多语言支持轻松管理它。您还可以安装语言包来翻译管理界面。
将现有网站迁移到 Pagekit CMS 可能是一个复杂的过程,具体取决于您当前使用的平台。没有内置的迁移工具,因此您需要手动移动您的内容并配置您的新 Pagekit 网站。但是,Pagekit 的简洁性和灵活性可能会使这项工作值得付出。
是的,有一个充满活力的开发人员和用户社区支持 Pagekit CMS。您可以在官方网站、GitHub 存储库和社区论坛上找到帮助和资源。在线还有许多教程和指南可以帮助您开始使用 Pagekit。
以上是首先查看PageKit CMS-清洁,可扩展,快速,但...的详细内容。更多信息请关注PHP中文网其他相关文章!