Pagekit CMS 1.0 version review: The potential and shortcomings of lightweight blog engine
Pagekit CMS recently released version 1.0 and as a user who is following the personal blog engine, I decided to test it out. While Pagekit has much more than blogs, it's enough to use it as a test platform.
Note: We will use Homestead Improved as the test environment. All commands (if any) will be listed based on this environment. If necessary, please adjust it according to your own operating system.
The installation method is to download and unzip its archive file and point the web server to the newly created folder. Pagekit will immediately display the installation interface.
After a brief but extremely smooth installation process, we will enter the dashboard.
From the dashboard, we can access all other parts of the website, such as managing users, configuring new pages and routing, installing themes and extensions, handling widgets, and more.
By default, the permissions/role subsystem has limited functionality and only supports certified users, administrators, and visitors, but this is enough for the blog we tested here. If necessary, you can add more characters to the Roles screen later.
First, let's set up an "About" page. If we go to "site" and then go to "page", we can set up a new page. Conveniently, Pagekit supports Markdown natively, so we can use it to write content.
page (and links to it) will appear immediately on the homepage of our website:
Then, to set up a blog, we need to install the blog extension. Fortunately, it exists as the default extension and is accessible in the main menu. There is also an example post: "Hello Pagekit".
As a developer, I need to write a lot of snippets, so it is crucial to see how these snippets appear in posts. Let's modify the sample post, add some technical content and one or two images. I will use a post I posted on SitePoint earlier.
looks good—much better than expected from the default theme—but only the inline code seems to be highlighted. The rest is plain text. Let's see how to solve this problem.
Pagekit is equipped with a great market, and although it is relatively empty at the moment, the installation/download process of the extension/theme is very complete. It's simple and easy to use and relatively easy to develop, and doesn't turn the developed package into a mess of spaghetti code.
Conveniently, there is already a Highlight extension in the market, obviously for developers to start from day one.
Installation is simple, and to the delight of every PHP developer, it is done through Composer.
Simply refresh the rendering of the blog post and you will see what it does-it will be automatically enabled!
It's much better!
However, the default theme is a bit too standard. It's pretty, but as more people use Pagekit, the website starts to look similar and becomes a little too easy to recognize – like the "Bootstrap Plague". Let's install another theme. Minimizing the theme looks great, so let's use it.
The whole process is completed in less than a minute - the theme has been installed and activated, and you can refresh the website to see the effect.
Of course, it's far less beautiful than the demo, but when the contents vary so much, it's hard to expect this. A few small modifications can solve this problem.
On Apache servers and Nginx where the rewrite module is not activated, the Pagekit URL defaults to an ugly URL containing index.php. To get a nice URL on Apache, you need to enable the module – see your server setup documentation. In Nginx, Homestead Improved's default settings will support pretty URLs (i.e. they will work), but Pagekit won't enable them internally by default because it can't detect that they are enabled. To trick it, we can add a custom value to the server configuration:
<code>fastcgi_param HTTP_MOD_REWRITE On;</code>
<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>
To solve this problem, we need to further modify the server script using a very original line of code extracted from their .htaccess files almost verbatim. Add the following above 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>
Deploy Pagekit website
Conclusion
However, it is not without its shortcomings.
First of all, its security depends on the user's setup of the server, which means that without a lot of modifications, it is not as cross-platform as it should be - we all know that Nginx and Apache configuration files are not The most intuitive editing file. Additionally, the built-in PHP server isn't actually used to test it correctly, which limits the "trial" factor on some machines and certainly weakens the application's functionality in developing a production-ready PHP native server, if it does If developed. The Pagekit team should definitely add some PHP side security checks and avoid trying to use .htaccess files.
Secondly, it is currently impossible to export data from the database. This makes it impractical to port applications to MySQL when users get tired of SQLite and limits the portability of content – imagine setting everything locally in SQLite and writing posts, and then uploading data to Use MySQL in a real-time application.
Finally, we can also list the inability to set up a fully custom storage (currently only static files are saved locally - but this can be done with extensions) and shorter session lifecycles (this can be done with a simple keepalive ping fix), but this is indeed a small complaint.
The market is still pretty empty, but I have no doubt that once things start to develop, it will grow rapidly—our upcoming tutorials will certainly help—but is it a “WordPress killer”? Not yet. It certainly has more potential than competitors like Ghost, but it needs to focus on perfecting the MVP, rather than removing M from the MVP to please the masses. We need a CMS that is less functional, easy to scale but runs perfectly by default. Have you tried Pagekit? What do you think of it? Please let us know in the comments!
Frequently Asked Questions about Pagekit CMS
How to install Pagekit CMS?
Can I use Pagekit CMS for e-commerce?
Pagekit CMS supports themes, allowing you to customize the appearance of your website. You can choose from a variety of free and paid topics available in the Pagekit Marketplace. Additionally, if you know HTML, CSS, and JavaScript, you can create your own theme.
Pagekit CMS is varied and can be used to build a variety of websites, from blogs and portfolios to corporate websites and online stores. Its scalability allows you to add functionality to your website through modules, and its powerful content management capabilities allow you to manage your content easily.
Yes, Pagekit CMS is safe. It is built using modern technology and follows best security practices. It includes features such as CSRF protection, password hashing and secure cookies. However, like any other CMS, be sure to stay updated and follow good security practices to protect your website.
You can extend the functionality of the Pagekit website by installing the extension. Extensions are like plugins that add new features to your website. You can find various extensions in the Pagekit Marketplace, from SEO tools and social media integration to contact forms and galleries.
Yes, Pagekit CMS supports multilingual websites. You can create content in multiple languages and manage it easily with built-in multilingual support. You can also install language packs to translate the management interface.
Migrating an existing website to Pagekit CMS can be a complex process depending on the platform you are currently using. There is no built-in migration tool, so you need to manually move your content and configure your new Pagekit website. However, Pagekit's simplicity and flexibility may make this work worth the effort.
Yes, there is a dynamic developer and user community that supports Pagekit CMS. You can find help and resources on the official website, GitHub repository, and community forums. There are also many tutorials and guides online to help you get started with Pagekit.
The above is the detailed content of First Look at Pagekit CMS - Clean, Extensible, Fast, But.... For more information, please follow other related articles on the PHP Chinese website!