BILLYSOFTACADEMY

Step-by-Step Guide to Installing ProcessWire CMS on Ubuntu 22.04 LTS

Introduction

ProcessWire CMS is a powerful and user-friendly content management system that can be installed on Ubuntu 22.04 LTS. It is designed to make web development easier, faster and more secure. ProcessWire CMS comes with many features such as an intuitive interface, drag-and-drop page building, a built-in search engine, customizable modules and more. With ProcessWire CMS, you can easily create websites for any purpose including eCommerce stores, blogs, portfolios and more. It also provides you with the ability to customize the look of your website with themes or custom templates. Additionally, it offers advanced security features so that your website remains safe from malicious attacks or data breaches. Installing ProcessWire CMS on Ubuntu 22.04 LTS will provide you with an easy to use platform for creating and managing your website efficiently and securely.

Prerequisites for Installing ProcessWire CMS on Ubuntu 22.04 LTS

Installing ProcessWire CMS on Ubuntu 22.04 LTS can be a daunting task but with the right prerequisites, it can be done quickly and easily. In this article, we will discuss the prerequisites that need to be in place before installing ProcessWire CMS on Ubuntu 22.04 LTS. We will also explain how to set up each of these prerequisites so that you can get your ProcessWire installation up and running in no time!

1) A virtual machine or cloud VPS running Linux Ubuntu Server 22.04 LTS
2) The LAMP stack
3) The ProcessWire CMS web application files
4) An SSH client such as Putty or the macOS  Terminal app
5) A fully qualified domain name pointed to the Linux Ubuntu Server. If deploying on-premise consider setting up a CloudFlare Zero Trust tunnel so that you can access the CMS from the internet.

Overview

Below is a list that consists of the steps covered in this tutorial:
1) Download and install the LAMP stack
2) Connect to the MariaDB shell and create a database for ProcessWire
3) Download ProcessWire and create an Apache virtual host
4) Complete the ProcessWire installation wizard
5) Configure a Lets Encrypt SSL certificate.

1. Download and install the LAMP stack

Use your preferred SSH client to connect to the Linux Ubuntu server. Copy and run the commands below to update the software repository on the server and to install the LAMP stack
When the installation is complete, start the apache and MariaDB and set them to start at system boot
Test the Apache web server by opening a new browser window and entering the domain name pointing to your server. This will open the Apache default welcome page

2. Connect to the MariaDB shell and create a database for ProcessWire

We recommend that you secure the MariaDB by running the secure_installation script:

The script will ask you a series of questions. Below are the questions along with responses that you can enter:

Enter current password for root (enter for none): Press ENTER
Set root password? [Y/n]: Y
New password: enter-a-secure-not-easy-to-guess-password
Re-enter new password: enter-a-secure-not-easy-to-guess-password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

The next step is to create an empty database that will be used by the CMS to store user-generated data and information. Do not worry about setting up tables and columns in the DB, the ProcessWire installer will take care of that part.

Enter the MySQL password you configured in the mysql_secure_installation script

3. Download ProcessWire and create an Apache virtual host

This is an important step. Use the wget utility to download the latest version of ProcessWire form the official GitHub repository. Run the command below to start the download
When the download process is complete, install the unzip utility if you have not done so already and extract the master.zip file.

Move the resultant processwire-master directory to the /var/www/html/vh_processwire directory and delete the master.zip file

Change the owner of the directory to the www-data user and the www-data group. Also set the necessary folder and file permissions

Create the Apache Virtual Host

Proceed to create a virtual host configuration file for the ProcessWire CMS in the /etc/apache2/sites-available directory. Run the command below to create the config file:

Copy and paste the virtual host configuration in to the processwire.conf file

Ensure to enter the domain pointing to your processwire server on the ServerName parameter. Also set the correct email address on the ServerAdmin parameter and ensure that you config the correct virtual host path on the DocumentRoot parameter.
To save changes made to the processwire.conf file, press CTRL + 0, press Enter then press CTRL + O to exit the file. Run the commands below to enable the processwire virtual host and to enable the Apache ReWrite engine.
Restart the Apache2 service and check the service status. Ensure that it is set to Active (running)

4. Complete the ProcessWire installation wizard

You have successfully set up the LOMP stack, downloaded the ProcessWire web application files, and created the Apache virtual host. The next step is to complete the ProcessWire web-based installation wizard. Open a new browser window and browse to the domain pointing to the ProcessWire Server. This will open the ProcessWire Get Started page. Click the Get Started button, set the Installation Profile to blank and click Continue. 

The ProcessWire installer will execute a server compatibility check and display a page that shows if all the required packages are installed on the server. If there are no errors on this page, click the Continue to Next Step button to proceed. 

On the database setup page, enter the name, username and password for the MySQL database that was created in Step 2. Ensure that DB Host is set to localhost and DB Port is set to 3306. Scroll down and select a time zone. Ensure that the domains specified on the HTTP host field are accurate and click Continue.

On the Test database and test configuration page, enter an admin URL and specify a system administrator username, password, and email address. Click Continue to proceed to the next step. Click Login to Admin and enter your system administrator credentials on the login page. You have successfully installed the ProcessWire CMS. Before we conclude the tutorial we recommend configuring a Let’s Encrypt SSL certificate. Read the step below to learn how to configure it.

5. Configure a Let's Encrypt SSL certificate.

Traditionally to configure an SSL certificate you needed to purchase it from a certificate authority or your web hosting provider. It used to be a technology to freely / publicly available until the formation of the Let’s Encrypt non-profit. They made it possible for almost anyone to set up an SSL certificate on their site free of charge. Run the command below to install certbot and the python3 addon:

When the installation complete, execute the command below to request for an SSL certificate for domain configured on the ServerName parameter in the ProcessWire virtual host config file:

When the SSL certificate request process completes, you will see the message: Successfully deployed certificate for yourdomain.com to /etc/apache2/sites-available/processwire-ls-ssl.conf. Congratulations! you have successfully enabled HTTPS on https://yourdomain.com

Conclusion

You have successfully installed the ProcessWire CMS secured with a Let’s Encrypt SSL certificate on a Linux Ubuntu 22.04 LTS server. Visit our homepage for more helpful tutorials and guides. We hope that this tutorial has been informative and would like to thank you for reading it.