Shlink adalah penyingkat URL self-hosted open-source, yang memungkinkan Anda untuk mempersingkat URL dan menyajikannya di bawah domain pendek Anda sendiri. Menggunakan layanan penyingkat URL Anda sendiri alih-alih layanan pihak ketiga seperti bit.ly dapat meningkatkan kesadaran merek. Tutorial ini akan menunjukkan cara menginstal Shlink di Ubuntu 18.04 dengan server web Apache atau Nginx.
Fitur Shlink
- Statistik kunjungan :Lacak semua kunjungan ke URL singkat Anda, termasuk statistik seperti lokasi, browser, atau perujuk.
- Pelacakan email :Menghasilkan gambar transparan 1 piksel yang dapat digunakan untuk melacak email.
- Integrasi pihak ketiga :Mudah membuat alat pihak ketiga menggunakan shlink untuk mempersingkat URL dengan menggunakan titik akhir API permintaan tunggal.
- Siput Khusus :Jadikan URL singkat Anda menggunakan siput khusus untuk mengidentifikasi kampanye dengan mudah.
- Kode QR :Buat kode QR dengan cepat yang menunjuk ke URL pendek Anda
- Pratinjau :Dapatkan pratinjau dalam format gambar untuk URL pendek apa pun
- Tag :Beri tag pada URL pendek Anda dan klasifikasikan untuk analisis selanjutnya
- Akses terbatas :Batasi akses ke URL pendek, menurut rentang tanggal dan/atau jumlah kunjungan maksimum.
- Impor pihak ketiga :Impor URL pendek Anda yang ada dari pihak ketiga seperti bit.ly.
- Baris perintah dan antarmuka web.
Prasyarat menginstal Shlink di Server Ubuntu 18.04
Shlink ditulis dalam PHP dan bergantung pada server database MySQL/MariaDB atau PostgreSQL, jadi Anda perlu menyiapkan tumpukan LAMP atau tumpukan LEMP. Jika Anda lebih suka server web Apache, atur tumpukan LAMP.
- Cara Memasang LAMP Stack di Server/Desktop Ubuntu 18.04
Jika Anda lebih suka server web Nginx, maka siapkan tumpukan LEMP.
- Cara Memasang LEMP Stack (Nginx, MariaDB, PHP7.2) di Ubuntu 18.04 LTS
Anda juga memerlukan nama domain. Saya mendaftarkan nama domain saya dari NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois secara gratis. Dalam tutorial ini, saya menggunakan lnux.be my nama domain sebagai contoh. Tanpa basa-basi lagi, mari kita instal Shlink di server Ubuntu 18.04.
Langkah 1:Unduh Shlink ke Server Ubuntu 18.04 Anda
Buka halaman Shlink Github untuk melihat versi stabil terbaru. Anda dapat mengunduh versi stabil terbaru (2.6.2) dengan menjalankan perintah berikut di server Anda.
wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php8.0_dist.zip
Catatan :Jika versi baru keluar, cukup ganti 2.6.2 dengan nomor versi baru.
File akan disimpan sebagai shlink2.6.2_php8.0_dist.zip
. Gunakan unzip
perintah unzip ke /var/www/
direktori.
sudo apt install unzip sudo mkdir -p /var/www/ sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/
Sekarang file disimpan di bawah /var/www/shlink2.6.2_php8.0_dist/
, kami mengganti namanya untuk membuatnya lebih sederhana.
sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink
Kemudian buat pengguna server web (www-data
) sebagai pemilik direktori ini.
sudo chown -R www-data:www-data /var/www/shlink/
Langkah 2:Buat Database dan Pengguna MariaDB untuk Shlink
Sekarang kita perlu masuk ke konsol MariaDB dan membuat database dan pengguna untuk Shlink. Secara default, paket MariaDB di Ubuntu menggunakan unix_socket untuk mengautentikasi login pengguna, yang pada dasarnya berarti Anda dapat menggunakan nama pengguna dan kata sandi OS untuk masuk ke konsol MariaDB. Jadi Anda dapat menjalankan perintah berikut untuk login tanpa memberikan kata sandi root MariaDB.
sudo mysql -u root
Selanjutnya, buat database baru untuk Shlink menggunakan perintah berikut. Tutorial ini menamakannya shlink
, Anda dapat menggunakan nama apa pun yang Anda suka untuk database.
CREATE DATABASE shlink;
Perintah berikut akan membuat pengguna database dan kata sandi, dan pada saat yang sama memberikan semua izin database baru kepada pengguna baru sehingga nanti Shlink dapat menulis ke database. Ganti teks merah dengan nama database, nama pengguna, dan kata sandi pilihan Anda.
GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password';
Hapus tabel hak istimewa dan keluar dari konsol MariaDB.
FLUSH PRIVILEGES; EXIT;
Langkah 3:Instal PHP8.0 dan Beberapa Ekstensi
Karena kami mengunduh Shlink versi PHP 8, kami perlu menginstal PHP8. Repositori Ubuntu 18.04 termasuk PHP7.2. Untuk menginstal PHP8.0 di Ubuntu 18.04, kita perlu menambahkan PPA.
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php -y
Kemudian instal PHP8.0 dan ekstensi yang dibutuhkan oleh Shlink.
sudo apt install php-apcu php8.0 php8.0-fpm php8.0-mysql php8.0-gd php8.0-common php8.0-curl php8.0-intl php8.0-gmp php8.0-xml
Jika Anda menggunakan Apache server web, Anda perlu menjalankan perintah berikut untuk membuatnya menggunakan PHP8.0-FPM.
sudo a2dismod mpm_prefork sudo a2enmod mpm_event proxy_fcgi setenvif sudo a2enconf php8.0-fpm
Kemudian restart Apache.
sudo systemctl restart apache2
Langkah 4:Jalankan Skrip Instal Shlink
Buka /var/www/shlink/bin/
direktori.
cd /var/www/shlink/bin/
Ada script PHP bernama install
, kami menjalankan skrip sebagai www-data
pengguna.
sudo -u www-data php8.0 ./install
Kemudian wizard pengaturan akan meminta Anda untuk memasukkan detail database. Jadi saya memilih MariaDB sebagai tipe database, kemudian masukkan nama database, user dan password. Hostnya adalah localhost dan portnya adalah 3306 .
Selanjutnya, masukkan domain default untuk penyingkat URL Anda dan pilih jenis skema (https )
Kemudian konfigurasikan pengalihan. Ketika pengunjung menekan URL dasar Shlink saya (https://lnux.be), mereka akan diarahkan ke situs web saya. Anda juga dapat membuat URL khusus untuk halaman 404 tidak ditemukan. Dalam tutorial ini, saya cukup menekan Enter
untuk menerima default.
Terakhir, konfigurasikan aplikasi. Saya cukup tekan Enter
untuk menggunakan pengaturan default.
Langkah 5:Buat Apache Virtual Host atau File Konfigurasi Nginx untuk Shlink
Apache
Jika Anda menggunakan server web Apache, buat host virtual untuk Shlink.
sudo nano /etc/apache2/sites-available/shlink.conf
Masukkan teks berikut ke dalam file. Ganti lnux.be
dengan nama domain asli Anda dan jangan lupa untuk mengatur catatan DNS A untuk itu.
<VirtualHost *:80> ServerName lnux.be DocumentRoot /var/www/shlink/public ErrorLog ${APACHE_LOG_DIR}/shlink_error.log CustomLog ${APACHE_LOG_DIR}/shlink_access.log combined <Directory /var/www/shlink/public> Options FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Simpan dan tutup file. Kemudian aktifkan host virtual ini dengan:
sudo a2ensite shlink.conf
Muat ulang Apache agar perubahan diterapkan.
sudo systemctl reload apache2
Nginx
Jika Anda menggunakan server web Nginx, buat host virtual untuk Shlink.
sudo nano /etc/nginx/conf.d/shlink.conf
Masukkan teks berikut ke dalam file. Ganti lnux.be
dengan nama domain asli Anda dan jangan lupa untuk mengatur catatan DNS A untuk itu.
server { listen 80; listen [::]:80; server_name lnux.be; root /var/www/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; } }
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Langkah 6:Mengaktifkan HTTPS
Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu 18.04.
sudo apt install certbot
Jika Anda menggunakan Apache, instal plugin Certbot Apache.
sudo apt install python3-certbot-apache
Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be
Jika Anda menggunakan Nginx, maka Anda juga perlu menginstal plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be
Dimana
--nginx
:Gunakan plugin nginx.--apache
:Gunakan plugin Apache.--agree-tos
:Menyetujui persyaratan layanan.--redirect
:Memaksa HTTPS dengan pengalihan 301.--hsts
: Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.--staple-ocsp
: Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.
Langkah 7:Membuat Tautan Pendek
Pertama, Anda perlu membuat kunci API dengan perintah berikut.
sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate
Lalu buka https://app.shlink.io/ untuk menambahkan server Anda.
Setelah menambahkan server, Anda dapat membuat tautan pendek.
Perhatikan bahwa ini hanya klien web. URL pendek disimpan di server Anda sendiri.
Anda juga dapat membuat URL pendek dari baris perintah di server Anda.
sudo -u www-data /var/www/shlink/bin/cli short-url:generate
Cantumkan URL singkat.
sudo -u www-data /var/www/shlink/bin/cli short-url:list
Jalankan perintah berikut untuk melihat pesan bantuan.
sudo -u www-data php /var/www/shlink/bin/cli