How to Install ProcessWire CMS on Debian 11

ProcessWire is a PHP-based Open-Source CMS used to deploy content on the web. It is a powerful content management system that helps you to save time and make development fun at any scale. ProcessWire has an intuitive web interface where you can easily create and publish content on the internet. It offers useful features such as multi-language, powerful template system, hooks, headless, command line ready, fully modular plugin architecture, drag-and-drop file and image uploads, and more.

This tutorial will show you how to install the ProcessWire content management system on Debian 11.


  • A server running Debian 11.
  • A valid domain name is pointed to your server IP.
  • A root password is configured on the server.

Getting Started

Before starting, updating and upgrading all system packages to the latest version is always recommended. You can upgrade all of them with the following command.

apt update -y
apt upgrade -y

Once all the packages are updated, you can install the LAMP server.

Install Apache, PHP, and MariaDB Server

Next, we will install Apache, MariaDB, PHP, and other required dependencies to host ProcessWire CMS on the web. You can install all of them by running the following command:

apt install apache2 mariadb-server php libapache2-mod-php php-common php-mysql php-xml php-xmlrpc php-curl php-gd php-imagick php-cli php-dev php-imap php-mbstring php-opcache php-soap php-zip php-intl unzip wget curl -y

After installing all the packages, start the Apache and MariaDB service with the following command:

systemctl start apache2
systemctl start mariadb

Once you are done, you can proceed to create the database and user in the next step.

Create a Database for Processwire

By default, the MariaDB is not secured, and the root password is not set. You will need to do it first. You can do it using the mysql_secure_installation script:


Answer all the questions as shown below:

Enter current password for root (enter for none): Press ENTER
Set root password? [Y/n]: Y
New password: Set-your-new-password
Re-enter new password: Set-your-new-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

Once the MariaDB is secured, open the command line terminal interface and log into the MariaDB shell using the following command:

mysql -u root -p

Once you are logged in, create a database and user with the following command:

MariaDB [(none)]> CREATE USER 'processuser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> CREATE DATABASE processdb;

Next, grant all the privileges to the ProcessWire database with the following command:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON processdb.* TO 'processuser'@'localhost';

Next, flush the privileges and exit from the MariaDB shell with the following command:

MariaDB [(none)]> Exit;

Once the MariaDB is configured, you can proceed to download and configure ProcessWite in the next step.

Download ProcessWire CMS

Next, you must download the latest version of ProcessWire CMS from their website or Git repository. You can use the wget command to download the latest version of ProcessWire from the Git repository using the following command:


Once the download is completed, unzip the downloaded file with the following command:


Next, move the extracted directory to the Apache web root directory using the following command.

mv processwire-master/ /var/www/html/processwire

Next, change the ownership and permission of the ProcessWire directory:

chown www-data:www-data -R /var/www/html/processwire/
chmod -R 755 /var/www/html/processwire/

Once you are finished, you can proceed to configure the Apache for ProcessWire CMS in the next step.

Create Apache Virtual Host for ProcessWire

Next, you will need to create an Apache virtual host configuration file for ProcessWire. You can create it with the following command:

nano /etc/apache2/sites-available/processwire.conf

Add the following configuration:

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /var/www/html/processwire

<Directory /var/www/html/processwire/>

Options FollowSymLinks
AllowOverride All
Require all granted


ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined


Save and close the file when you are done. Then, activate the Apache virtual host and rewrite module using the following command:

a2ensite processwire.conf
a2enmod rewrite

Finally, restart the Apache service to apply the changes:

systemctl restart apache2

You can also verify the status of the Apache with the following command:

systemctl status apache2

You will get the following output:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-02-22 13:19:19 UTC; 7s ago
    Process: 25697 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 25703 (apache2)
      Tasks: 6 (limit: 4675)
     Memory: 16.3M
        CPU: 120ms
     CGroup: /system.slice/apache2.service
             ??25703 /usr/sbin/apache2 -k start
             ??25704 /usr/sbin/apache2 -k start
             ??25705 /usr/sbin/apache2 -k start
             ??25706 /usr/sbin/apache2 -k start
             ??25707 /usr/sbin/apache2 -k start
             ??25708 /usr/sbin/apache2 -k start

Feb 22 13:19:19 debian11 systemd[1]: Starting The Apache HTTP Server...

At this point, ProcessWire CMS is installed and configured. You can now proceed to the next step.

Perform ProcessWire Web Installation

Now, open your web browser and type the URL to access the ProcessWire web installation wizard. You will be redirected to the ProcessWire Welcome page:

ProcessWire Installer

Now, click on the Get Started button. You should see the profile selection page:

Site installation profile

Select Blank profile and then click on the Continue button. You should see the package validation screen.

Check of prerequisites

After validating all the requirements, click on the Continue To Next Step button. You should see the database configuration page:

Database configuration

Date and time settings


Provide your database details like hostname, database name, database username and password, and Timezone. Then, click on the Continue button. You should see the following page:

Testing the database configuration

Admin user settings

Cleanup after installation

Define your admin username, password, and other settings then click on the Continue button. Once the installation is finished, you should see the following screen.

ProcessWire installation complete

Now, click on the Login To Admin button. You should see the following page:

administrator login

Provide your admin username and password. Then, click on the Login button. You should see the ProcessWire default dashboard on the following page:

ProcessWire Dashboard


This guide taught you how to install ProcessWire CMS with Apache on a Debian 11 server. You can now use ProcessWire to publish the content on the web. You can visit the ProcessWire documentation page. For more information. Feel free to ask me if you have any questions.

Share this page:

0 Comment(s)

Add comment

Please register in our forum first to comment.