GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04サーバーにShlinkURLShortenerをインストールする方法

ShlinkはオープンソースのセルフホストURL短縮サービスであり、URLを短縮して、独自の短いドメインで提供することができます。 bit.lyのようなサードパーティのサービスの代わりに独自のURL短縮サービスを使用すると、ブランドの認知度を高めることができます。このチュートリアルでは、ApacheまたはNginxWebサーバーを使用してUbuntu20.04にShlinkをインストールする方法を示します。

Shlinkの機能

  • 統計にアクセス :場所、ブラウザ、リファラーなどの統計情報を含む、短いURLへのすべての訪問を追跡します。
  • メール追跡 :メールの追跡に使用できる1pxの透明な画像を生成します。
  • サードパーティの統合 :単一リクエストのAPIエンドポイントを使用して、サードパーティのツールにshlinkを使用してURLを短縮させるのは簡単です。
  • カスタムスラッグ :短縮URLでカスタムスラッグを使用して、キャンペーンを簡単に識別できるようにします。
  • QRコード :短いURLを指すQRコードをその場で生成します
  • プレビュー :短縮URLのプレビューを画像形式で取得する
  • タグ :短いURLにタグを付け、後で分析できるように分類します
  • アクセス制限 :日付範囲や最大訪問数によって、短いURLへのアクセスを制限します。
  • サードパーティのインポート :bit.lyなどのサードパーティから既存の短いURLをインポートします。
  • コマンドラインとWebインターフェイス。

Ubuntu20.04サーバーにShlinkをインストールするための前提条件

ShlinkはPHPで記述されており、MySQL / MariaDBまたはPostgreSQLデータベースサーバーに依存しているため、LAMPスタックまたはLEMPスタックを設定する必要があります。 Apache Webサーバーを使用する場合は、LAMPスタックを設定します。

  • Ubuntu20.04サーバー/デスクトップにLAMPスタックをインストールする方法

Nginx Webサーバーを使用する場合は、LEMPスタックを設定します。

  • Ubuntu 20.04 LTSにLEMPスタック(Nginx、MariaDB、PHP7.4)をインストールする方法

ドメイン名も必要です。私はNameCheapからドメイン名を登録しました。これは、価格が低く、whoisのプライバシー保護が一生無料になるためです。このチュートリアルでは、 lnux.beを使用します 例としてドメイン名。さらに面倒なことはせずに、Ubuntu20.04サーバーにShlinkをインストールしましょう。

ステップ1:ShlinkをUbuntu20.04サーバーにダウンロード

Shlink Githubページに移動して、最新の安定バージョンを確認してください。サーバーで次のコマンドを実行すると、最新の安定バージョン(2.6.2)をダウンロードできます。

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

:新しいバージョンがリリースされた場合は、2.6.2を新しいバージョン番号に置き換えるだけです。

ファイルはshlink2.6.2_php8.0_dist.zipとして保存されます 。 unzipを使用する /var/www/に解凍するコマンド ディレクトリ。

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/

これで、ファイルは/var/www/shlink2.6.2_php8.0_dist/に保存されます。 、わかりやすくするために名前を変更します。

sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink

次に、Webサーバーユーザーを作成します(www-data )このディレクトリの所有者として。

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

ステップ2:Shlink用のMariaDBデータベースとユーザーを作成する

次に、MariaDBコンソールにログインして、Shlinkのデータベースとユーザーを作成する必要があります。デフォルトでは、UbuntuのMariaDBパッケージは unix_socketを使用します ユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用してMariaDBコンソールにログインできることを意味します。したがって、次のコマンドを実行して、MariaDBのrootパスワードを指定せずにログインできます。

sudo mysql -u root

次に、次のコマンドを使用して、Shlinkの新しいデータベースを作成します。このチュートリアルでは、shlinkという名前を付けています。 、データベースには任意の名前を使用できます。

CREATE DATABASE shlink;

次のコマンドは、データベースユーザーとパスワードを作成すると同時に、新しいデータベースのすべての権限を新しいユーザーに付与して、後でShlinkがデータベースに書き込むことができるようにします。赤いテキストをお好みのデータベース名、ユーザー名、パスワードに置き換えます。

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

特権テーブルをフラッシュして、MariaDBコンソールを終了します。

FLUSH PRIVILEGES;

EXIT;

ステップ3:PHP8.0といくつかの拡張機能をインストールする

PHP 8バージョンのShlinkをダウンロードしたので、PHP8をインストールする必要があります。 Ubuntu20.04リポジトリにはPHP7.2が含まれています。 Ubuntu 20.04にPHP8.0をインストールするには、PPAを追加する必要があります。

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

次に、PHP8.0と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

Apacheを使用する場合 Webサーバーの場合、PHP8.0-FPMを使用するには、次のコマンドを実行する必要があります。

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event proxy_fcgi setenvif
sudo a2enconf php8.0-fpm

次に、Apacheを再起動します。

sudo systemctl restart apache2

ステップ4:Shlinkインストールスクリプトを実行する

PHPインストールスクリプトをwww-dataとして実行します ユーザー。

sudo -u www-data php8.0 /var/www/shlink/bin/install

セットアップウィザードは、データベースの詳細を入力するように求めます。そこで、 MariaDBを選択します データベースタイプとして、データベース名、ユーザー、およびパスワードを入力します。ホストはlocalhost ポートは3306 。 Shlinkは、Unixソケットを介してデータベースサーバーに接続することもできます。 MariaDBを使用する場合、ソケットの場所は/var/run/mysqld/mysqld.sockです。 Ubuntuサーバー上。

次に、URL短縮サービスのデフォルトドメインを入力し、スキームタイプを選択します( https )。次に、いくつかの簡単な質問に答えます。

訪問者のジオロケーションを分析する場合は、無料の独自のGeoLite2ライセンスキーを使用する必要があります。ライセンスキーを取得するには、MaxMindでアカウントを作成します。 Maxmindからメールが届きます。メール内のリンクをクリックしてパスワードを設定し、MaxMindアカウントにログインします。次に、My License Keyを選択します 左側のバーにあります。

新しいライセンスキーの生成をクリックします ボタン。

ライセンスキーに名前を付けます。次に、Noを選択します 、geoipupdateを使用する必要がないため プログラム。次に、Confirmをクリックします ボタン。

ライセンスキーが作成されたら、ライセンスキーをコピーして、Shlinkセットアップウィザードに貼り付けます。次に、訪問者のIPアドレスを匿名化し、リダイレクトタイプ(302または301)を設定することを選択できます。

次に、異常な場合のリダイレクトを構成します。訪問者が私のShlinkのベースURL(https://lnux.be)にアクセスすると、訪問者は私のWebサイトにリダイレクトされます。 404notfoundページのカスタムURLを作成することもできます。

最後に、アプリケーションを構成します。 Enterを押すだけです デフォルト設定を使用します。

ステップ5:Shlink用のApache仮想ホストまたはNginx構成ファイルを作成する

Apache

Apache Webサーバーを使用する場合は、Shlinkの仮想ホストを作成します。

sudo nano /etc/apache2/sites-available/shlink.conf

次のテキストをファイルに入れます。 lnux.beを置き換えます 実際のドメイン名を使用して、DNSAレコードを設定することを忘れないでください。

<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>

Include /etc/apache2/conf-available/php8.0-fpm.conf

</VirtualHost>

ファイルを保存して閉じます。次に、次のコマンドでこの仮想ホストを有効にします。

sudo a2ensite shlink.conf

変更を有効にするためにApacheをリロードします。

sudo systemctl reload apache2

Nginx

Nginx Webサーバーを使用する場合は、Shlinkの仮想ホストを作成します。

sudo nano /etc/nginx/conf.d/shlink.conf

次のテキストをファイルに入れます。 lnux.beを置き換えます 実際のドメイン名を使用して、DNSAレコードを設定することを忘れないでください。

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;
   }

}

ファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

ステップ6:HTTPSを有効にする

HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。

sudo apt install certbot

Apacheを使用する場合 、CertbotApacheプラグインをインストールします。

sudo apt install python3-certbot-apache

そして、このコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

Nginxを使用する場合 、次に、CertbotNginxプラグインもインストールする必要があります。

sudo apt install python3-certbot-nginx

次に、次のコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

どこ

  • --nginx :nginxプラグインを使用してください。
  • --apache :Apacheプラグインを使用してください。
  • --agree-tos :利用規約に同意します。
  • --redirect :301リダイレクトでHTTPSを強制します。
  • --hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。
  • --staple-ocsp :OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。

これで、証明書が取得され、自動的にインストールされます。

ステップ7:短いリンクを作成する

まず、次のコマンドを使用してAPIキーを作成する必要があります。

sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate

次に、https://app.shlink.io/にアクセスしてサーバーを追加します。

サーバーを追加したら、短いリンクを作成できます。

これは単なるWebクライアントであることに注意してください。短いURLは独自のサーバーに保存されます。

サーバーのコマンドラインから短いURLを生成することもできます。

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

短いURLをリストします。

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

次のコマンドを実行して、ヘルプメッセージを表示します。

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

Ubuntu
  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu14.04サーバーにZimbra8.6をインストールする方法

  3. Ubuntu20.04にNginxを使用してShlinkURLShortenerをインストールする方法

  1. Ubuntu18.04にMinecraftサーバーをインストールする方法

  2. Ubuntu20.04にNginxをインストールする方法

  3. Ubuntu20.04にMariaDBをインストールする方法

  1. Ubuntu14.04にVNCサーバーをインストールする方法

  2. Ubuntu20.04にPolrURL短縮サービスをインストールする方法

  3. Ubuntu15.04にOpenSIPSサーバーをインストールする方法