Polr Link Shortener installeren op Debian 10

Polr is een gratis en open-source URL verkorter waarmee je je eigen link shortener kunt hosten. Het is geschreven in PHP en Lumen, en gebruikt MariaDB om zijn gegevens op te slaan. Met Polr kun je nieuwe links maken of bestaande links opzoeken zonder je bestaande code te breken.

In deze handleiding laten we je zien hoe je de Polr Link Shortener software op een Debian 10 server kunt installeren.

Vereisten

  • Een server met Debian 10.
  • Een geldige domeinnaam gericht met het IP van je server. In deze handleiding gebruiken we het polr.example.com domein.
  • Een root wachtwoord is op je server ingesteld.

Aan de slag

Alvorens te beginnen is het een goed idee je systeem te updaten met de laatste versie. Je kunt je systeem bijwerken met het volgende commando:

apt-get update -y
apt-get upgrade -y

Na het bijwerken start je het systeem opnieuw op om de veranderingen door te voeren.

LAMP server installeren

Eerst moet je de Apache webserver, MariaDB server, PHP en andere pakketten in je systeem installeren. Je kunt ze allemaal installeren met het volgende commando:

apt-get install apache2 mariadb-server libapache2-mod-php php php-pdo php-mysql php-mbstring php-tokenizer php-json php-curl git wget unzip -y

Als alle pakketten geïnstalleerd zijn, start je de Apache en MariaDB service en schakel je ze in om te starten na een herstart van het systeem.

systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer de MariaDB Database

Standaard is het MariaDB root wachtwoord niet ingesteld in Debian 10. Je zult het dus eerst moeten instellen.

Log daarvoor in op de MariaDB shell met het volgende commando:

mysql

Eenmaal ingelogd stel je het MariaDB root wachtwoord in met het volgende commando:

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpassword");

Maak vervolgens een database en gebruiker voor Polr aan met het volgende commando:

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

Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer Composer

Vervolgens moet je Composer in je systeem installeren. Composer is een dependency manager voor PHP die gebruikt wordt om alle PHP afhankelijkheden voor je project te installeren.

Download eerst de Composer met het volgende commando:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Vervolgens moet je de gegevensintegriteit van het gedownloade script controleren door de SHA-384 hash van het script te vergelijken met de nieuwste hash.

Download daartoe de handtekening van de nieuwste Composer installer uit de Git repository en bewaar die in een variabele met de naam HASH:

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

Verifieer vervolgens het installatiescript met het volgende commando:

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Als de hashes overeenkomen, zie je de volgende uitvoer:

Installer verified

Installeer tenslotte de Composer met het volgende commando:

php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Als de installatie voltooid is, zou je de volgende uitvoer moeten zien:

All settings correct for using Composer
Downloading...
Composer (version 1.9.2) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer Polr

Download eerst de nieuwste versie van Polr uit de Git repository naar de Apache web root directory:

cd /var/www/html
git clone https://github.com/cydrobolt/polr.git --depth=1

Eenmaal gedownload, verander je de directory in polr en installeer je alle vereiste afhankelijkheden met het volgende commando:

cd polr
composer install --no-dev -o

Schakel vervolgens het webgebaseerde installatieprogramma in door het volgende bestand te hernoemen:

mv .env.setup .env

Geef vervolgens de juiste permissies aan de polr directory zoals hieronder:

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

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Apache voor Polr

Vervolgens moet je een Apache virtual host configuratiebestand voor Polr maken. Je kunt het maken met het volgende commando:

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

Voeg de volgende regels toe:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/polr/public
     ServerName polr.example.com

     <Directory /var/www/html/polr/public/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/polr_error.log
     CustomLog ${APACHE_LOG_DIR}/polr_access.log combined

</VirtualHost>

Sla het bestand op en sluit het als je klaar bent. Schakel dan het Apache virtuele host bestand en de herschrijfmodule in met het volgende commando:

a2ensite polr.conf
a2enmod rewrite

Herstart tenslotte de Apache dienst om de veranderingen door te voeren:

systemctl restart apache2

Op dit punt is Polr geïnstalleerd en geconfigureerd. Je kunt nu verder gaan met de volgende stap.

Toegang tot de Polr Web Interface

Open nu je web browser en typ de URL http://polr.example.com. Je wordt doorverwezen naar de Polr setup wizard zoals hieronder getoond:

Polr Database configuratie

Toepassingsinstellingen

Admin account

reCaptcha Instellingen

Geef je database informatie, applicatie instellingen, admin account instellingen op en klik op de Install knop. Als de installatie voltooid is, zou je de volgende pagina moeten zien:

Polr Setup Voltooid

Klik op de login knop. Je wordt doorgestuurd naar de Polr login pagina:

Polr Inloggen

Geef je admin gebruikersnaam en wachtwoord op en klik op de LOGIN knop. Je zou de volgende pagina moeten zien:

Polr link verkorter

Shorten links

Klik nu op ADMIN => DASHBOARD in de rechter bovenhoek. Je zou het Polr dashboard op de volgende pagina moeten zien:

Admin Dashboard

Beveilig Polr met Let’s Encrypt Free SSL

Eerst moet je het Certbot Let’s Encrypt programma installeren om het SSL certificaat voor je domein te downloaden en te installeren.

Je kunt het installeren met het volgende commando:

apt-get install python-certbot-apache -y

Eenmaal geïnstalleerd kun je het volgende commando uitvoeren om het Let’s Encrypt certificaat voor je domein polr.example.com te installeren.

certbot --apache -d polr.example.com

Tijdens de installatie wordt je gevraagd je e-mail adres op te geven en de servicevoorwaarden te accepteren, zoals hieronder:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for polr.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/polr-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/polr-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/polr-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Typ vervolgens 2 en druk op Enter om een gratis SSL certificaat voor je domein te downloaden en te installeren. Als de installatie met succes voltooid is. Je zou de volgende uitvoer moeten krijgen:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/polr.conf to ssl vhost in /etc/apache2/sites-available/
polr-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://polr.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=polr.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Je Polr website is nu beveiligd met Let’s Encrypt gratis SSL. Je kunt er toegang toe krijgen via de URL https://polr.example.com.

Conclusie

Gefeliciteerd! Je hebt met succes Polr op de Debian 10 server geïnstalleerd en hem beveiligd met Let’s Encrypt SSL. Je kunt nu je eigen link shortener hosten met de Polr webinterface. Voel je vrij me te vragen als je vragen hebt.