GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Shortener URL Shlink dengan Nginx di Ubuntu 20.04

Shlink adalah penyingkat URL self-hosted sumber terbuka gratis yang ditulis dalam PHP yang menyediakan antarmuka REST dan CLI untuk berinteraksi dengannya guna menghasilkan dan mengelola URL pendek. Salah satu fitur utama dan penyingkatan URL adalah Anda dapat melacak semua kunjungan ke URL yang dihasilkan ini seperti lokasi, browser, perujuk, dan banyak lagi. Selain itu, klien web resmi Shlink menggunakan REST API Shlink dan memberi pengguna WebUI opsional.

Di akhir panduan, Anda akan mengetahui cara menginstal Shlink URL Shortner di server Ubuntu 20.04 LTS Focal Fossa menggunakan Nginx . Prinsip yang sama akan bekerja untuk server versi Ubuntu 21.04 (Hirsute Hippo) yang lebih baru.

Prasyarat

  • OS yang Disarankan: Ubuntu 20.04 – opsional (Ubuntu 21.04 dan Linux Mint 20).
  • Akun pengguna: Akun pengguna dengan sudo atau akses root.
  • Paket yang diperlukan: mariadb php7.4 atau php8.0 diinstal dan dikonfigurasi.
  • Paket tambahan: curl wget unzip.

Periksa dan tingkatkan sistem operasi Ubuntu Anda.

sudo apt update && sudo apt upgrade -y

Selanjutnya, instal paket yang diperlukan untuk panduan ini:

sudo apt install curl wget unzip

Unduh Arsip Shlink

Langkah pertama adalah mengunjungi halaman Shlink Github dan memeriksa versi stabil terbaru. Pada saat panduan ini dibuat, versi stabil saat ini adalah 2.7.1. Namun, ini akan berubah di masa depan. Shlink hadir dalam 3 versi untuk PHP 7.4, PHP 8.0 dan kode sumbernya.

Untuk mengunduh Shlink, 2.7.1, jalankan perintah berikut:

PHP 7.4:

wget https://github.com/shlinkio/shlink/releases/download/v2.7.1/shlink2.7.1_php7.4_dist.zip

PHP 8.0:

wget https://github.com/shlinkio/shlink/releases/download/v2.7.1/shlink2.7.1_php8.0_dist.zip

Kode Sumber:

wget https://github.com/shlinkio/shlink/archive/refs/tags/v2.7.1.zip

Untuk tujuan panduan, ini akan mengikuti contoh unduhan PHP 7.4. Langkah selanjutnya adalah menggunakan (unzip) perintah untuk mengekstrak arsip ke (/var/www/html) . Anda direktori.

sudo unzip shlink2.7.1_php7.4_dist.zip -d /var/www/html

Anda harus mengganti nama folder yang diekstrak agar lebih mudah dengan menjalankan perintah berikut:

sudo mv /var/www/html/shlink2.7.1_php7.4_dist/ /var/www/html/shlink

Sebelum melanjutkan, disarankan untuk mengatur izin direktori ke (www-data) pengguna karena saat ini disetel sebagai (root) . Untuk melakukannya, ketik dan masukkan (chown) berikut ini perintah:

sudo chown -R www-data:www-data /var/www/html/shlink/

Buat database dan pengguna MariaDB baru untuk Shlink

Langkah selanjutnya adalah membuat database baru dan pengguna baru yang berdedikasi dengan hanya izin untuk mengakses database ini. Tidak disarankan untuk menggunakan root atau akun pengguna yang sama di beberapa basis data jika ada yang disusupi.

Panduan menginstal MariaDB dan memahami terminologi di bawah ini.

Masuk ke konsol terminal MariaDB/MySQL dengan menjalankan perintah root:

sudo mysql -u root

Selanjutnya, buat database baru untuk Shlink menggunakan perintah terminal berikut:

CREATE DATABASE shlink;

Setelah membuat database, buat akun pengguna baru dan berikan akses ke database Shlink. Jika Anda menghosting Nginx, PHP, dan MariaDB di server yang sama, pertahankan (localhost) . Jika menggunakan server sekunder untuk menghosting MariaDB di internal atau eksternal, masukkan (alamat IP) di tempat (localhost) .

GRANT ALL ON shlink.* TO 'shlinkuser'@'localhost' IDENTIFIED BY 'password';

Untuk membuat perubahan langsung, Anda perlu menghapus hak istimewa:

FLUSH PRIVILEGES;

Untuk keluar dari terminal MariaDB, jalankan perintah berikut:

EXIT;

Instal PHP 7.4 Versi &Ekstensi Terbaru

Sebagai bagian dari persyaratan, PHP 7.4 atau 8.0 diperlukan. Shlink membutuhkan ekstensi tertentu agar perangkat lunak dapat beroperasi menggunakan PHP. Ini ideal untuk memastikan PHP mutakhir. PPA khusus oleh Ondrej, pengelola dan PHP untuk Debian, sangat direkomendasikan.

Di bawah ini, panduan akan menambahkan repositori dan menginstal ekstensi PHP yang diperlukan untuk PHP 7.4. Jika Anda ingin menginstal PHP 8.0, ubah 7.4 menjadi 8.0 atau kunjungi Tutorial Cara menginstal PHP 8.0 di Ubuntu 20.04 resmi kami .

Instal PPA PHP khusus oleh ondrey:

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Setelah menambahkan repositori, jalankan perintah berikut untuk memperbarui atau menginstal perangkat lunak PHP 7.4 terbaru:

sudo apt install php7.4-apcu php7.4-fpm php7.4-mysql php7.4-gd php7.4-common php7.4-curl php7.4-intl php7.4-gmp php7.4-xml php7.4-json -y

Untuk memastikan PHP 7.4 berjalan dengan benar setelah penginstalan atau pembaruan, masukkan berikut ini:

sudo systemctl status php7.4-fpm

Contoh keluaran:

Menginstal Shlink

Sekarang Anda dapat melanjutkan dengan menginstal skrip instalasi PHP Shlink sebagai (www-user) dengan menjalankan perintah PHP berikut di terminal Ubuntu Anda:

sudo -u www-data php7.4 /var/www/html/shlink/bin/install

Segera, Anda akan menemukan diri Anda melihat layar baru yang akan meminta Anda untuk memasukkan rincian database.

Basis Data

Dalam panduan, Anda akan memilih MariaDB; namun, jika Anda lebih suka kembali dan menyiapkan perangkat lunak basis data opsional lainnya, Anda pasti dapat melakukannya.

Seperti di bawah ini, contoh membuat pengaturan Shlink menggunakan MariaDB:

Opsi yang dimasukkan dalam ringkasan:

  • Pilih jenis basis data: 1 (MariaDB)
  • Nama basis data: slink
  • Port basis data: 3306
  • Nama pengguna basis data: pengguna shlink
  • Kata sandi basis data:
  • Soket Unix:

Penyingkat URL

Di layar berikutnya, Anda akan menemukan halaman opsi lain. Di sini, Anda akan menemukan HTTP atau HTTPS tertentu, nama domain, dan beberapa opsi URL Shlink. Contoh pengaturan di bawah ini:

Opsi yang dimasukkan dalam ringkasan:

  • Domain default untuk URL pendek yang dihasilkan:
  • Pilih skema untuk URL pendek yang dihasilkan: HTTPS (Gunakan HTTP jika tidak menggunakan SSL)
  • Apakah Anda ingin memvalidasi url panjang dengan 200 kode status HTTP saat ditanggapi? (ya/tidak): ya
  • Berapa panjang default yang Anda inginkan untuk membuat kode pendek? (Anda masih dapat mengganti ini di setiap URL pendek yang dibuat): 5
  • Apakah Anda ingin Shlink menyelesaikan judul URL pendek berdasarkan tag judul URL panjang (jika ada)? Jika tidak, itu akan tetap kosong kecuali disediakan secara eksplisit. (ya/tidak): ya
  • Berikan kunci lisensi GeoLite2. (Biarkan kosong untuk menggunakan yang default, tetapi sangat disarankan untuk mendapatkannya sendiri. Buka https://shlink.io/documentation/geolite-license-key untuk mengetahui cara mendapatkannya): kunci lisensi

Jika Anda ingin menggunakan GeoLite2, Anda harus membuat akun di MaxMind dan membuat kunci. Panduan untuk melakukan ini dapat ditemukan di dokumentasi MaxMind GeoLite2. Setelah selesai, ganti dan masukkan kunci Anda di pengaturan Shlink.

Selanjutnya, Anda akan memiliki opsi untuk mengatur 301 atau 302 re-direct. Anda harus menggunakan 301, atau SEO Anda, seperti yang disarankan oleh perangkat lunak, memang dapat merugikan dalam berbagai cara.

Pelacakan

Setelah menetapkan 301 sebagai pengalihan permanen Anda, halaman berikutnya yang akan Anda lihat adalah pelacakan. Sebagian besar pengaturan default baik-baik saja, dan jika Anda berada di UE atau memiliki pengunjung UE, Anda harus menganonimkan data Anda yang untungnya dapat dilakukan Shlink untuk Anda.

Contoh pengaturan di bawah ini:

Opsi yang dimasukkan dalam ringkasan:

  • Apakah Anda ingin melacak kunjungan anak yatim? (kunjungan ke URL dasar, URL pendek yang tidak valid, atau URL “tidak ditemukan” lainnya): ya
  • Berikan nama parameter yang dapat Anda gunakan untuk menonaktifkan pelacakan atas permintaan khusus ke URL singkat (biarkan kosong dan fitur ini tidak akan diaktifkan):
  • Apakah Anda ingin menonaktifkan pelacakan kunjungan sepenuhnya?: tidak
  • Apakah Anda ingin menonaktifkan pelacakan alamat IP pengunjung?: tidak
  • Apakah Anda ingin menonaktifkan pelacakan “Agen Pengguna” pengunjung?: ya
  • Apakah Anda ingin alamat IP jarak jauh pengunjung dianonimkan sebelum menyimpannya ke database?: ya
  • Apakah Anda ingin menonaktifkan pelacakan “Agen Pengguna” pengunjung? :tidak
  • Apakah Anda ingin menonaktifkan pelacakan “Perujuk” pengunjung? (ya/tidak) :tidak

Pengalihan

Redirect set-up cukup mudah. Pilihan terbaik adalah menautkan semuanya kembali ke beranda Anda untuk kesalahan 404 / tidak ditemukan yang mungkin terjadi di situs web Anda. Contoh di bawah ini:

Opsi yang dimasukkan dalam ringkasan:

  • URL ubahsuaian untuk dialihkan ketika pengguna menekan URL dasar Shlink (Jika tidak ada nilai yang diberikan, pengguna akan melihat laman default “404 tidak ditemukan”): https://www.example.com
  • URL ubahsuaian untuk dialihkan saat pengguna menekan URL pendek yang tidak valid (Jika tidak ada nilai yang diberikan, pengguna akan melihat laman default “404 tidak ditemukan”): https://www.example.com
  • URL ubahsuaian untuk dialihkan saat pengguna menekan URL yang tidak ditemukan selain URL pendek yang tidak valid (Jika tidak ada nilai yang diberikan, pengguna akan melihat laman default “404 tidak ditemukan”): https://www.example.com

Aplikasi

Dalam opsi aplikasi, Anda dapat mengaktifkan pemeriksaan keamanan, yang sekarang memungkinkan URL pendek dihapus setelah sejumlah kunjungan tertentu, bersama dengan pengaturan jalur dari mana Shlink akan dilayani jika bukan jalur root:

Opsi yang dimasukkan dalam ringkasan:

  • Apakah Anda ingin mengaktifkan pemeriksaan keamanan yang tidak mengizinkan URL pendek dihapus setelah menerima jumlah kunjungan tertentu?: ya
  • Berapa jumlah kunjungan yang tidak diizinkan sistem untuk menghapus URL pendek?: 15
  • Apa jalur dari mana shlink akan dilayani? (Biarkan kosong jika Anda berencana untuk melayani shlink dari root domain):

Perhatikan, Anda dapat mengubah 15 menjadi sesuatu yang lebih besar atau lebih kecil bergantung pada situs Anda, terutama seputar lalu lintas.

Intergrasi

Shlink hanya memiliki satu integrasi:Redis, yang dapat Anda konfigurasikan di bawah ini dalam satu instance atau cluster. Direkomendasikan untuk menggunakan satu server untuk Redis hingga Anda sangat memahami pengelompokan, sharding, dan replikasi Redis karena ini cukup mendalam, dan rata-rata situs web kecil hingga menengah tidak memerlukan ini kecuali menerima beban lalu lintas yang besar.

Dalam panduan, kami membiarkannya kosong, tetapi jika Anda ingin menggunakannya di localhost, ketik 127.0.1.1:6379.

Selamat, Anda telah menginstal Shlink di Ubuntu 20.04.

Contoh Blok Server Nginx

Untuk menggunakan Shlink dengan Nginx, Anda perlu mengonfigurasi blok server Anda. Anda dapat melakukan ini dengan menyalin dan menempelkan konfigurasi berikut dengan memodifikasinya sesuai dengan kebutuhan Anda dengan HTTPS atau tidak:

server {
   listen 80;
   listen [::]:80;
   server_name www.linuxcapable.com

   root /var/www/html/shlink/public;
   error_log /var/log/nginx/shlink.error;
   access_log /var/log/nginx/shlink.access;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   # redirect some entire folders
     rewrite ^/(vendor|translations|build)/.* /index.php break;

   location ~ \.php$ {
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
   }

}

Sebelum me-restart server Nginx Anda, lakukan dry run dengan memasukkan kode berikut:

sudo nginx -t

Anda akan menerima output berikut:

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

Jika semuanya baik-baik saja, restart server Nginx Anda seperti di bawah ini:

sudo systemctl restart nginx

Buat Tautan Pendek

Untuk membuat tautan pendek dengan Shlink, Anda harus terlebih dahulu membuat kunci API dengan menjalankan perintah PHP:

sudo -u www-data php7.4 /var/www/shlink/html/bin/cli api-key:generate

Setelah Anda memiliki kunci API, Anda perlu mengunjungi Shlink.io untuk mendaftarkan server Anda.

Masukkan nama server, URL server dan API key seperti contoh di bawah ini:

Sekarang Anda dapat menambahkan tautan pendek menggunakan WebUI Shlink jika Anda mau. Ingat ini disimpan di server Anda:

Opsi yang paling umum adalah menggunakan perintah terminal untuk menghasilkan URL pendek.

Untuk melakukannya, jalankan perintah berikut:

sudo -u www-data /var/www/html/shlink/bin/cli short-url:generate

Untuk membuat daftar URL pendek yang dihasilkan, gunakan perintah berikut:

sudo -u www-data /var/www/html/shlink/bin/cli short-url:list

Untuk mencari bantuan, jalankan perintah berikut:

sudo -u www-data php /var/www/html/shlink/bin/cli

Contoh keluaran:

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  help                Displays help for a command
  list                Lists commands
 api-key
  api-key:disable     Disables an API key.
  api-key:generate    Generates a new valid API key.
  api-key:list        Lists all the available API keys.
 db
  db:create           Creates the database needed for shlink to work. It will do nothing if the database already exists
  db:migrate          Runs database migrations, which will ensure the shlink database is up to date.
 short-url
  short-url:delete    Deletes a short URL
  short-url:generate  Generates a short URL for provided long URL and returns it
  short-url:list      List all short URLs
  short-url:parse     Returns the long URL behind a short code
  short-url:visits    Returns the detailed visits information for provided short code
 tag
  tag:create          Creates one or more tags.
  tag:delete          Deletes one or more tags.
  tag:list            Lists existing tags.
  tag:rename          Renames one existing tag.
 visit
  visit:locate        Resolves visits origin locations.

Ubuntu
  1. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  2. Cara Menginstal phpMyAdmin dengan Nginx di Ubuntu 18.04

  3. Cara Menginstal Shortener URL Shlink dengan Nginx di Ubuntu 20.04

  1. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal Grav CMS dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal SuiteCRM dengan Nginx di Ubuntu 16.04

  1. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  2. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10

  3. Cara Instal Redmine 3 dengan Nginx di Ubuntu 15.10