Home > Backend Development > PHP Tutorial > First Look at Pagekit CMS - Clean, Extensible, Fast, But...

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

Jennifer Aniston
Release: 2025-02-15 11:54:13
Original
198 people have browsed it

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.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

Core Points

  • Pagekit CMS provides a simple, scalable and fast platform for personal blogs and more, with a user-friendly interface and a developer-friendly ecosystem.
  • The installation process is smooth, the platform natively supports Markdown, built-in blog extensions, and provides a market for extensions and themes.
  • Pagekit's security relies heavily on server settings and lacks built-in PHP side security checks, which may limit its cross-platform adaptability unless it is significantly modified.
  • Although Pagekit has many advantages, it still lacks data export functions, limiting the portability of content, and its market is still in its early stages of development.

Installation

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.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

After a brief but extremely smooth installation process, we will enter the dashboard.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

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.

Pagekit Blog Settings

Custom page

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.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

The

page (and links to it) will appear immediately on the homepage of our website:

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

Blog

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.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

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.

Extensions

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.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

Installation is simple, and to the delight of every PHP developer, it is done through Composer.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

Simply refresh the rendering of the blog post and you will see what it does-it will be automatically enabled!

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

It's much better!

Custom theme

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.

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

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.

Beautiful URL

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>
Copy after login
Once we restart the server using sudo service nginx restart, this will make Pagekit think that Apache's rewrite module is enabled, which in turn activates beautiful URLs throughout the system. Here is a complete example server configuration:

<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>
Copy after login
Safety

Strangely, Pagekit goes against best practices by putting the application's entry point (index.php) into the root folder instead of the public subfolder. On Nginx (and Apache that does not read local .htaccess files), this has a serious security risk because it allows anyone to access critical files through the URL bar (such as pagekit.db - the entire database of the website) just type Mypagekit.com/pagekit.db is enough.

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>
Copy after login

First Look at Pagekit CMS - Clean, Extensible, Fast, But...

This is an extremely original and old-fashioned solution, but it works. We can only hope that the Pagekit team will be able to get rid of this folder structure in the near future.

Deploy Pagekit website

Because Pagekit uses SQLite as the database by default and the database files are saved in the same folder, deploying a Pagekit website is as easy as uploading a static website. The complete guide can be found here using Laravel Forge and the original DigitalOcean Github method, and you can choose one of them!

Conclusion

At first glance, Pagekit seems to be a good alternative to other CMSs. The user interface is great, its developer ecosystem is very friendly, its plugin system is well built and durable. It contains some nice default features like post copying, Markdown, enough default settings for VueJS in the UI, website and blog/comments, and everything missing in the current settings can be easily added using the extension.

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 is Pagekit CMS different from other CMS platforms?

Pagekit CMS stands out for its simplicity, scalability and speed. It is built using modern technologies such as Vue.js and Symfony components, which makes it a powerful tool for developers. It also has a simple and intuitive interface, allowing non-technical users to easily manage their content. Additionally, Pagekit is open source, which means it will continue to be improved by the developer community.

How to install Pagekit CMS?

Installing Pagekit CMS is very simple. You can download it from the official website or from the GitHub repository. After downloading, extract the file to your web server directory. Then, navigate to your website URL and the installation wizard will walk you through the setup process. You need to provide your database details and create an administrator account.

Can I use Pagekit CMS for e-commerce?

Yes, you can use Pagekit CMS for e-commerce. While it doesn't have built-in e-commerce features, you can integrate it with Snicart, a powerful e-commerce solution. With Snicart, you can add shopping carts to your Pagekit website and manage your products, orders, and customers.

How to customize the appearance of my Pagekit website?

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.

What types of websites can I build using Pagekit CMS?

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.

Is Pagekit CMS safe?

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.

How to extend the functionality of my Pagekit 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.

Does Pagekit CMS support multilingual websites?

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.

Can I migrate my existing website to Pagekit CMS?

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.

Is there a community or support for Pagekit CMS?

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template