Install Polr on Ubuntu 18.04
Introduction
Polr is a free and open-source link shortener written in PHP and Lumen. It allows you to quickly host your own URL shortener. It's significant features include a management dashboard, detailed link analytics, and an API. This tutorial will guide you through the process of installing Polr on Ubuntu 18.04 LTS.
Prerequisites
This tutorial requires a Vultr Cloud Compute instance with Ubuntu 18.04 LTS and root access, as well as a valid domain name pointing to your server.
Install Apache
Polr requires a web server, a MySQL database, and PHP. For this tutorial we will be using the Apache web server.
Update the repository list.
apt-get update
Install the Apache webserver.
apt-get install apache2 -y
Disable the default Apache site configuration and delete the default Apache index.html
file.
a2dissite 000-default.conf
rm /var/www/html/index.html
Create a new Apache configuration file for the Polr installation.
nano /etc/apache2/sites-available/polr.conf
Paste the following snippet into the newly created file, replacing example.com
with your own domain name.
<VirtualHost *:80>
ServerName example.com
ServerAlias example.com
DocumentRoot "/var/www/html/public"
<Directory "/var/www/html/public">
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable the configuration.
a2ensite polr.conf
Polr requires Apache's mod_rewrite
enabled. Enable the Apache rewrite module.
a2enmod rewrite
Restart the Apache service.
systemctl restart apache2.service
Install PHP
Polr requires PHP and a number of PHP modules.
apt-get install php php-pdo php-mysql php-mbstring php-tokenizer php-json php-curl -y
Install MySQL & Create a Database
Polr stores data in an SQL database. Install the MySQL server.
apt-get install mysql-server -y
Secure the MySQL installation by running the provided script.
mysql_secure_installation
When prompted for a root password, choose a safe password and proceed through the installation.
Would you like to setup VALIDATE PASSWORD plugin? [Y/N] N
New password: <Your Password>
Re-enter new password: <Your 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
Login to the MySQL console.
mysql -u root -p
When asked for a password, enter the root password created earlier. Once you are logged in to the console, create a new database for Polr.
mysql>CREATE DATABASE polr;
Create a new database user and grant it privileges to the created database. You can replace username
and password
with the username and password of your choice.
mysql>GRANT ALL PRIVILEGES on polr.* to 'username'@'localhost' identified by 'password';
mysql>FLUSH PRIVILEGES;
Exit the MySQL console.
mysql>exit
Install Polr
Clone the Polr repository from Github.
cd /var/www/html
git clone https://github.com/cydrobolt/polr.git --depth=1
Move the downloaded files to the root of the webserver.
mv ./polr/.[!.]* . && mv ./polr/* . && rm -rf polr
Composer is required to install dependencies. Download the Composr package and install the unzip
module used by it.
curl -sS https://getcomposer.org/installer | php
apt-get install unzip -y
Install the dependencies with Composer.
php composer.phar install --no-dev -o
Copy the provided configuration file to enable the web-based installer.
cp .env.setup .env
Set the appropriate file permissions.
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
Complete the installation
Navigate to example.com/setup
to launch the web-based Polr installer and enter the required information. Use the MySQL credentials created earlier for database configuration. Once you have submitted the setup form, the Polr installation will be completed.