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

Introduction
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

2. Connect to the MariaDB shell and create a database for ProcessWire
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
Enter the MySQL password you configured in the mysql_secure_installation script
3. Download ProcessWire and create an Apache virtual host
Move the resultant processwire-master directory to the /var/www/html/vh_processwire directory and delete the master.zip file
Create the Apache Virtual Host
Copy and paste the virtual host configuration in to the processwire.conf file


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 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
