PyroCMS is, without the shadow of a doubt, our numero-uno choice of CMS for all web development related work, whether it be private or client related, and we've been looking forward to getting our hands on version 3 of the software.
Built from the ground up with Laravel the recent beta release of PyroCMS v3 gave us the opportunity to test out our favourite CMS solution.
First things first with any server side software: make sure your system requirements will support what you are intending to install and use.
The PyroCMS 3 beta has a number of requirements that must be satisfied in order for the package to be able to be downloaded/installed and used:
- PHP >= 5.5.9
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- Fileinfo PHP Extension
- GD Library (>=2.0) OR Imagick PHP extension (>=6.5.7)
As the installation process for PyroCMS 3 requires Composer (a dependency management tool for handling PHP packages) you'll need to ensure that this is installed on your system.
The easiest way to determine if this is the case is to type out the following in your Terminal:
And, if the software is installed, you will see something akin to the following returned in the Terminal window:
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.0-dev (c6cc6dd6070871f4b198ed39f76dd8047c116b02) 2015-07-21 13:46:38
Otherwise, if Composer isn't installed you can rectify this with the following Terminal command (assumes you are developing on a unix based system):
curl -sS https://getcomposer.org/installer | php
For further information about Composer including documentation guides and resources visit the official website.
Downloading the PyroCMS beta
Now that you've verified Composer is available on your system you'll need to navigate in your Terminal to the location where you want the PyroCMS beta to be installed. Once you've done this issue the following command to begin the download process for the software and all its related dependencies:
composer create-project pyrocms/pyrocms=3.0-beta1 --prefer-dist
During the download process we did notice errors, akin to the following, with Composer trying to install certain dependencies:
[ErrorException] copy(/Users/yournamehere/.composer/cache/files/psr/log/fe0936ee26643249e916849d48e3a51d5f5e278b.zip): failed to open stream: Permission denied
We overcame this by running the following Unix command on the .composer/cache directory:
chmod -R 775 /Users/yournamehere/.composer/cache
The next issue, albeit relatively minor, that we encountered with Composer requesting/installing dependencies was the following:
- Installing ptachoire/cssembed (v1.0.2) Downloading: Connecting... Could not fetch https://api.github.com/repos/krichprollsch/phpCssEmbed/zipball/406c6d5b846cafa9186f9944a6210d0e6fed154b, please create a GitHub OAuth token to go over the API rate limit Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+yournamehere.local+2015-08-14+0001 to retrieve a token. It will be stored in "/Users/yournamehere/.composer/auth.json" for future use by Composer.
This was easily resolved by visiting the github URL listed in the message:
Here we generated an oAuth token, to overcome the github API usage limit, which we then copied and pasted into the Terminal prompt to continue allowing Composer to install the required dependencies.
Towards the end of this process the following messages were printed out to the Terminal:
These look somewhat formidable but upon closer inspection they aren't too much to be concerned about.
Composer generates these messages to inform you of additional functionality that it recommends you install but you can, depending on what packages you are using (and what they might require), safely ignore these if you want to.
Bottom line here is - if you're concerned, simply Google it for further information.
As with most server-side installations you will need to ensure the correct permissions are assigned to the following directories:
Navigate to the root of where the PyroCMS 3 beta package has been installed and simply run the following unix commands:
chmod -R 775 pyrocms/public/assets chmod -R 775 pyrocms/storage chmod -R 775 pyrocms/bootstrap/cache
Now that the PyroCMS 3 beta installer has been downloaded, all the required PHP dependencies have been successfully integrated via Composer and the relevant directories have been granted the necessary permissions we can go through the actual process of installing PyroCMS via the browser.
The PyroCMS beta installer
If you're using MAMP (or similar) you can set-up a new hostname for the downloaded PyroCMS 3 beta software and, once completed, access that in the browser like so:
The first thing you will notice is the software License followed by the installer form fields for the database/administrator configuration, application information and language/timezone set-up.
One of the nice things about the beta version is that, unlike previous iterations of the software, the installer consists of only a single screen for configuring your website/application set-up. This hugely streamlines and simplifies the whole process and, in of itself, is a huge improvement on previous versions.
Once you save the data entered into the set-up form another improvement on previous versions of the installer becomes apparent: a nice progress bar informing you of how the actual installation process is proceeding.
This might seem quite minor but we think it's a really nice feature (and we haven't even completed the installation process and started using the CMS yet!)
Once completed you'll see the following screen, where you can choose to login to the admin area or view the default website theme:
The login screen demonstrates a minimal but aesthetically pleasing design, similar to the actual installer itself. It's clear that the PyroCMS team have made every effort to ensure the look and feel of the software is every bit as professional as the codebase it ships with.
The UI for the CMS admin area has also been overhauled with the navigation menu now accessible from the left hand side of the screen:
On first log-in you will be presented with a message warning you that the Installer module needs to be deleted.
To do this simply navigate to the root directory of your PyroCMS 3 beta installation, from your computer desktop or by command line, and remove the following directory :
And now that you have a fully functioning PyroCMS 3 beta installation start exploring the features and playing with the codebase!
There's some initial documentation available on the PyroCMS website (with the promise of more to follow) and, if you fancy getting your hands dirty in the codebase itself, it won't hurt to familiarise yourself with the official Laravel documentation either.
One word: Wow!
The PyroCMS team have really raised the bar on the latest (and still evolving) version of an already incredible CMS:
Improved UI - check
Intuitive installation process - check
Support for latest PHP standards and features - check
Laravel integration - check
Dependency management/Composer - check
Object oriented code/MVC - check
Theme support - check
Ease of use - check
Documentation - still in progress (but good enough to start with)
Congratulations to the team at PyroCMS for an amazing job of re-engineering an existing (and already solid) CMS product and massively improving upon both the codebase and the UI. It's a difficult challenge to make something both client and developer friendly but they've managed to do this in a way that makes the software work without feeling complicated or convoluted (unlike some CMS 'solutions' we could mention).
Not an easy task but they've pulled it off remarkably well.
Here's to Ryan Thompson and his team!