> For the complete documentation index, see [llms.txt](https://docs.acecloud.ai/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.acecloud.ai/knowledge-base/tutorials/how-to-install-processwire-on-ubuntu-20.04.md).

# How to install ProcessWire on Ubuntu 20.04?

{% embed url="<https://youtu.be/DkDgvfpqN6g>" %}

### Overview <a href="#howtoinstallprocesswireonubuntu20.04-introduction" id="howtoinstallprocesswireonubuntu20.04-introduction"></a>

ProcessWire is an open-source CMS (content management system) built on PHP that has simple functionality for both programmers as well as end users.

This tutorial demonstrates how to install ProcessWire on Ubuntu 20.04.

### Prerequisites <a href="#howtoinstallprocesswireonubuntu20.04-prerequisites" id="howtoinstallprocesswireonubuntu20.04-prerequisites"></a>

There are certain prerequisites that need to be met before you begin.&#x20;

* A server running Ubuntu version 20.04.
* Non-root sudo user privileges.
* Updated Ubuntu 20.04 server.

### Get Started <a href="#howtoinstallprocesswireonubuntu20.04-step1-setupapache" id="howtoinstallprocesswireonubuntu20.04-step1-setupapache"></a>

#### Step 1: Set up Apache <a href="#howtoinstallprocesswireonubuntu20.04-step1-setupapache" id="howtoinstallprocesswireonubuntu20.04-step1-setupapache"></a>

* Use non-root user account with sudo access to log into your server.
* Use the a2enmod tool to enable module.&#x20;

```
sudo a2enmod rewrite
```

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1576_2023-05-25-11_08_00-How-to-Install-ProcessWire-on-Ubuntu-20.04---Information-Developer---Confluence-.png" alt="" height="43" width="1173">

* Now, restart Apache.

```
sudo systemctl restart apache2
```

* Modify the Apache host configuration's default settings.

```
sudo nano /etc/apache2/sites-enabled/000-default.conf
```

* Ensure that DocumentRoot directive redirects to the /var/www/html.
* Insert the following block of code just before the closing \</VirtualHost> statement.

```
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
</Directory>
```

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1577_2023-05-25-10_30_21-Created-by-Camtasia-2018-and-3-more-pages---Work---Microsoft-Edge.png" alt="" height="516" width="1062">

* Save the file by pressing CTRL+O, and then close it by CTRL+X.
* When the server restarts, use systemctl command to launch Apache automatically.

```
sudo systemctl enable apache2
```

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1578_2023-05-25-11_13_40-How-to-Install-ProcessWire-on-Ubuntu-20.04---Information-Developer---Confluence-.png" alt="" height="65" width="1174">

* Launch Apache web server.

```
sudo systemctl start apache2
```

#### Step 2: Make a ProcessWire database <a href="#howtoinstallprocesswireonubuntu20.04-step2-makeaprocesswiredatabase" id="howtoinstallprocesswireonubuntu20.04-step2-makeaprocesswiredatabase"></a>

* Access the MySQL database by logging in as the root user.

```
sudo mysql -u root -p
```

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1579_2023-05-25-11_16_03-How-to-Install-ProcessWire-on-Ubuntu-20.04---Information-Developer---Confluence-.png" alt="" height="254" width="1172">

* Create a user and database for ProcessWire. In the below example, substitute your\_secure\_password with your own actual password.

```
mysql> CREATE USER 'processwire_user'@'localhost' IDENTIFIED BY 'your_secure_password';
mysql> CREATE DATABASE processwire_db;
mysql> GRANT ALL PRIVILEGES ON processwire_db.* TO 'processwire_user'@'localhost';
mysql> FLUSH PRIVILEGES;
```

* Quit MySQL.

```
QUIT;
```

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1580_2023-05-25-11_18_00-How-to-Install-ProcessWire-on-Ubuntu-20.04---Information-Developer---Confluence-.png" alt="" height="48" width="1172">

#### Step 3: Installing ProcessWire <a href="#howtoinstallprocesswireonubuntu20.04-step3-installingprocesswire" id="howtoinstallprocesswireonubuntu20.04-step3-installingprocesswire"></a>

* Go to your web root directory:

```
cd /var/www/html
```

* Remove the file index.html.

```
sudo rm index.html
```

* Download the ProcessWire installation package.

```
sudo wget https://github.com/processwire/processwire/archive/master.zip
```

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1582_2023-05-25-11_21_57-How-to-Install-ProcessWire-on-Ubuntu-20.04---Information-Developer---Confluence-.png" alt="" height="168" width="1204">

* Install unzip in order to extract the installation package.

```
sudo apt install unzip -y
```

* Unpack ProcessWire installation package.

```
sudo unzip master.zip
```

* Transfer the files to root directory of the web and remove any temporary files.

```
sudo mv processwire-master/* /var/www/html
sudo rm -rf processwire-master/
sudo rm master.zip
```

* Modify ownership of the file to "www-data" user.

```
sudo chown -R www-data:www-data *.
```

* Relaunch Apache.

```
sudo systemctl restart apache2
```

* Open your preferred web browser and go to your server’s IP address as shown below:

```
http://your_server_IP
```

* Select **Get Started**.
* Choose an installation profile and proceed by clicking the **Continue** button.
* Ensure that all compatibility checks are successful, then proceed to the next step by clicking on the **Continue to Next Step** button.
* Provide the necessary MySQL database details as shown in the figure:

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1585_2023-05-25-11_30_16-Created-by-Camtasia-2018-and-6-more-pages---Work---Microsoft-Edge.png" alt="" height="481" width="1010">

* Select **Continue.**
* Enter your admin credentials.
* Press the **Login** button in order to start using ProcessWire.

<img src="https://customer.acecloudhosting.com/index.php?rp=/images/kb/1584_2023-05-25-11_28_42-How-to-Install-ProcessWire-on-Ubuntu-20.04---Information-Developer---Confluence-.png" alt="" height="451" width="881">

### Conclusion <a href="#howtoinstallprocesswireonubuntu20.04-conclusion" id="howtoinstallprocesswireonubuntu20.04-conclusion"></a>

We have successfully demonstrated how to install ProcessWire on Ubuntu 20.04.
