How to install Polr on CentOS 8


In this tutorial we will show you how to install Polr on CentOS 8. For those of you who did not know, Polr is a fast, modern and open source link. It allows you to host your own URL shortener, tag your URLs and gain control over your data. Polr helps you promote your online brand as it is more convenient to share short links and gain better insights by tracking clicks to each individual link.

This article assumes that you have at least basic knowledge of Linux, know how to use the shell and most importantly, that you host your website on your own VPS. The installation is quite simple and requires you to run in the root account, otherwise you may need to add ‘sudoto the commands for root privileges. I will show you step by step installation of Polr URL shortener on a CentOS 8.

Install Polr on CentOS 8

Step 1. First of all, make sure that all packages are up to date.

sudo dnf update

Step 2. Install LAMP Stack.

If you do not already have a LAMP stack installed on your server, you can follow our guide here.

Step 3. Install the composer.

Download and run the Composer installer:

curl -sS | php

Step 4. Install Polr on CentOS 8.

Run the following command to clone the Polr archive from Github:

cd /var/www/html
git clone –depth=1

Then move downloaded files to the root of the web server:

mv ./polr/.[!.]* . && mv ./polr/* . && rm -rf polr

Then install dependencies with Composer:

php composer.phar install --no-dev -o
cp .env.setup .env

We need to change some folder permissions:

chown -R apache:apache /var/www/html/
chmod -R 755 /var/www/html/
chcon -R -t httpd_sys_rw_content_t storage .env

Step 5. Configure MariaDB for Polr.

By default, MariaDB is not hardened. You can secure MariaDB using mysql_secure_installation script. you should read and below each step carefully, which will set a root password, delete anonymous users, reject remote root login and delete the test database and access to secure MariaDB:


Configure it like this:

- Set root password? [Y/n] y
- 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

Then we have to log in to the MariaDB console and create a database for Polr. Run the following command:

mysql -u root -p

This will ask you for a password, so enter your MariaDB root password and press Enter. Once logged in to your database server, you will need to create a Polr installation database:

MariaDB [(none)]> CREATE DATABASE polrdb;
MariaDB [(none)]> GRANT ALL ON polrdb.* TO 'polr' IDENTIFIED BY 'strong-my-password';
MariaDB [(none)]> EXIT;

Step 6. Configure Apache for Polr.

We are now creating a new Apache configuration file for the Polr installation:

nano /etc/httpd/conf.d/polr.conf

Add the following lines:

DocumentRoot "/var/www/html/public"
<Directory "/var/www/html/public">
    Require all granted
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    llow from all
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined

Restart the Apache Web Server for the following changes:

sudo systemctl restart httpd

Step 7. Configure firewall.

If the OS firewall is enabled on your server, then grant access to ports 80 and 443 for off-network access:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Step 8. Access the Polr web interface.

Polr will be available on HTTP port 80 by default. Open your favorite browser and navigate to and follow the on-screen instructions to complete the installation.

Install Polr on CentOS 8

Congratulations! You have installed Polr. Thank you for using this tutorial to install the modern Polr URL shortener on your CentOS 8 system. For further help or useful information, we recommend that you check the official Polr website.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More