短縮URL生成スクリプトを利用しよう~YOURLSを設置する~

はじめに

最近、URLが長くなりがちなことが多いです。

例えば、URLにquery( http://hogehoge.jp/test.php?name=hoge&path=hogehoge の色がついている部分のことを言います)がついていることが多く、cookieを使わない流れになってきたのでセッションを保持するためにURLに書いちゃうことが多くなってきているのが原因だと思います。

また、URLの階層構造が深くなったり、URLに文字列(例えばディレクトリ名)をそのまま記したりすることで文字数が激増しています。

ここで問題なのが、Share PointやOne Driveを使ってリンクを使用すると、255文字までしか認識をしてくれないので、長いURLへのリンクが貼ることができないわけです。

なので。

短縮URLを使えば、解決するわけです。

短縮URLというのは、例えば

https://www.google.com/search?q=%E7%9F%AD%E7%B8%AEURL&client=firefox-b-d&sca_esv=341f1253e963a8d4&sxsrf=ADLYWILW9-Z654Yg3I5HqzKjV_AD8JNwiw%3A1734483391207&ei=vx1iZ4yiDKWQvr0PwvTpmAM&ved=0ahUKEwjM_ZqTjrCKAxUliK8BHUJ6GjMQ4dUDCBA&uact=5&oq=%E7%9F%AD%E7%B8%AEURL&gs_lp=Egxnd3Mtd2l6LXNlcnAiCeefree4rlVSTDIEECMYJzIEECMYJzIQEAAYgAQYsQMYQxiDARiKBTIFEAAYgAQyBRAAGIAEMgUQABiABDIKEAAYgAQYQxiKBTIFEAAYgAQyBRAAGIAEMgUQABiABEjrKlCkBFizG3ACeAGQAQCYAccBoAGDDqoBBDAuMTO4AQPIAQD4AQGYAgygAtIKwgIKEAAYsAMY1gQYR8ICBxAAGIAEGATCAg0QABiABBixAxiDARgEwgIQEAAYgAQYsQMYgwEYBBiKBcICChAAGIAEGLEDGATCAgYQABgFGB7CAgUQABjvBcICCBAAGIAEGKIEmAMAiAYBkAYKkgcEMi4xMKAH2Ek&sclient=gws-wiz-serp

という長ったらしいURLがあったとしましょう。(googleでfirefoxを使って「短縮URL」を調べた結果です)これを短縮URL生成サービスを使って表すと、次の通りになります。

https://x.gd/c4Yxx

なんと、653文字のURLがたったの18文字に。圧縮率に換算すると、たったの2.76%。
なぜこんなことができるかというのは、ここでの解説は伏せておきますが、便利なことに間違いはありません。

ただ、海外の短縮URL生成サービスに抵抗があったり、例えば職場内のOneDriveにリンクを作成するために必要だったりする場合は、自前で短縮URLの生成スクリプトを用意する方が安心ですね。ということで、この短縮URLを生成することができるスクリプトがあるので、それを設置したいと思います。

使うスクリプトは「 YOURLS 」というものです。(Your Own URL Shortenerから名前を取っています)

設置は簡単ですので、やってみましょう。

必要なもの

・レンタルサーバー(次の要件が必要です)
  ○PHP7.4以降を推奨
  ○MySQL 5以降が必要
  ○mod_rewrite が有効
・独自ドメイン(なくてもいいですが、ある方がよい)

短縮URLの生成スクリプト

手順

⓪前提条件

・レンタルサーバー → さくらインターネット「さくらのレンタルサーバ(スタンダード)」
・独自ドメイン → hogehoge.jp (と、仮にします)

①データベースを用意する

①まず、必要なMySQLのデータベースを用意します。さくらのレンタルサーバの「コントロールパネル」を開きます。

②画面中ほどの「ショートカット」の中から、「データベース」をクリックします。

③「新規追加」をクリックし、新規作成画面で必要事項を入力します。

[1]データベースバージョンはそのままで大丈夫です。
[2]データベース名は、「 yourls 」と入力。実際のデータベース名には、さくらのサブドメイン名がつきます。(大文字は受け付けません)
[3]データベース接続用パスワードを入力します。
[4]データベース文字コードは「UTF-8(utf8mb4)」のままでかまいません。

④最後に、「同意する」にチェックを入れて、「作成する」をクリックして下さい。

⑤データベースには、今作成したデータベースが表示されていると思います。そのデータベース名の横にある「設定」→「接続先/削除」をクリックしてください。

⑥接続情報が表示されますので、ホスト名やデータベース名を控えておいてください。

②YOURLSをダウンロードする

続いて、YOURLSをダウンロードします。

YOURLS GitHubを開く

②右側サイドバーエリアの「 Release 」から、Latest のついたバージョンを選択する。

③ページ下部の「 Assets 」から、「 Source code(zip) 」を選択し、ダウンロードする。

④ダウンロードしたzipを解凍して、適当なフォルダに、フォルダ構造をそのまま置いてください。

⑤user/config-sample.php を config.php にリネームします。

⑥リネームしたconfig.phpを開きます(メモ帳等)

⑦必要な設定を書き換えていきます。データベースユーザーとデータベース名のhogehogeは、適当に直してください。

14行目 元 define( 'YOURLS_DB_USER', 'your db user name' );
    新 define( 'YOURLS_DB_USER', 'hogehoge_yourls' );

17行目 元 define( 'YOURLS_DB_PASS', 'your db password' );
    新 define( 'YOURLS_DB_PASS', '*********' );

21行目 元 define( 'YOURLS_DB_NAME', 'yourls' );
    新 define( 'YOURLS_DB_NAME', 'hogehoge_yourls' );

25行目 元 define( 'YOURLS_DB_HOST', 'localhost' );
    新 define( 'YOURLS_DB_HOST', 'mysql*****.db.sakura.ne.jp' );

40行目 元 define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );
    新 define( 'YOURLS_SITE', 'http://hogehoge.jp' );

46行目 元 define( 'YOURLS_LANG', '' );
    新 define( 'YOURLS_LANG', 'ja_JP' );

60行目 元 define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );
    新 define( 'YOURLS_COOKIEKEY', 'random文字列' );

65-66行目
    元 $yourls_user_passwords = [
      'username' => 'password',
    新 $yourls_user_passwords = [
      'hogeuser' => 'hogepass',

75行目 元 define( 'YOURLS_URL_CONVERT', 36 );
    新 define( 'YOURLS_URL_CONVERT', 62 );

92行目 新 define( 'YOURLS_HOURS_OFFSET', 9 );

それぞれの設定をかいつまんで解説します。

14行目 YOURLS_DB_USER
さくらのサーバで設定したデータベース名が入ります。

17行目 YOURLS_DB_PASS
データベースを作成した際に設定したパスワードです。

21行目 YOURLS_DB_NANE
データベース名(14行目と同じ)です。

25行目 YOURLS_DB_HOST
さくらのサーバで、データベースの接続情報にある「ホスト名」を入力します。

40行目 YOURLS_SITE
YOURLSを設置するURLです。最後のスラッシュは不要です。

46行目 YOURLS_LANG
言語の設定です。日本語は、ja_JP になります。これを書くだけで日本語化できるわけではないですが、後ほど日本語のデータを組み込みます。

60行目 YOURLS_COOKIEKEY
Cookieの暗号化に必要な文字列です。https://yourls.org/cookie にアクセスして、ランダムな文字列を取得できます。

65-66行目 yourls_user_passwords
YOURLSのユーザー名とパスワードを設定します。とりあえず、ユーザー名とパスワードを入れましょう。

75行目 YOURLS_URL_CONVERT
これは36のままでもいいのですが、62にすると数字+アルファベット小文字+大文字で短縮URLが作成されます。ちなみに、36だと数字+アルファベット小文字です。

92行目 YOURLS_HOURS_OFFSET
ファイルの末尾に追加してください。
時差を修正するためのものです。サーバーの位置などによっても数値が変わりますので、それに合わせて設定してください。(日本はGMT+9なので 9 を入れています)

以上の設定を終えたら、上書き保存しておきます。

③日本語化ファイルを導入する

先ほど言語の設定をしましたが、言語を変えるには作業が必要です。

https://github.com/havill/YOURLS-ja_JP にアクセスします。

②ja_JP.poをクリックしてください。ファイルの中身が表示されます。

③ソースコード右上にある、ダウンロードボタンをクリックしてください。ダウンロードが始まります。

④ダウンロードしたpoファイルを、プログラムが読めるように mo ファイルに変換します。
https://po2mo.net/ にアクセスし、先ほどのpoファイルを選択してください。選択できたら、「Convert」ボタンをクリックします。

⑤画面が変わったら、MO Fileの横にあるダウンロードをクリックします。

⑥ダウンロードが完了したら、ファイル名を ja_JP.mo にリネームします。

⑦リネームした ja_JP.mo を、YOURLSのフォルダ内にあるuserフォルダの中の、languagesフォルダに移動します。

④スクリプトファイルをアップロードする

ここまで設定したファイルを、サーバーにアップロードします。

①ftpソフト(WindowsならFFFTPが有名)で、フォルダ構造をそのままアップロードします。
 さくらのサーバでのFFFTPの使い方は https://help.sakura.ad.jp/rs/2220/ に詳しいです。

②アップロードが完了したら、スクリプトにアクセスしてインストール作業を行います。
 設定したURLにアクセスします。( https://hogehoge.jp は YOURLS_SITE の値です)

 → https://hogehoge.jp/admin/install.php

③正しくconfig.phpが設定されていれば、次のような画面が出てきます。ロゴ下にある「YOURLSをインストール」をクリックしてください。

④インストールはすぐに完了し、次のような画面が表示されます。

⑤ロゴ下に動作ログが表示されています。その下に、「YOURLSの管理ページ」というリンクがあるので、クリックしてください。

⑥「ログインしてください」なので、先ほど設定したユーザ名とパスワードを入力してください。

⑦無事にログインできたら、次のような画面が表示されます。

この画面が表示されたら、あと少しです。がんばりましょう!

⑤生成URLをランダム化する

さて、最後の設定です。
生成URLは、そのままでは順番に番号が振られるため、多人数で使う場合には不具合が生じます。
ですので、生成URLの文字列をランダム化します。

①まず、管理ホームの左上にある「機能拡張を管理」というリンクをクリックします。

②機能拡張の表が表示されます。その中の「Random ShortURLs」が、文字列をランダム化する機能拡張です。Random ShortURLsの行の右端の「操作」の空欄にマウスカーソルを当てると「有効」という文字のリンクが表示されますので、クリックしてください。

③Random ShortURLsを有効化すれば、短縮URLの文字列がランダムで生成されます。
 管理ページの左上に「Random ShortURLs Settings」と新しく表示されているので、それを開けば文字列の長さを設定することができます。

おわりに

設定はこれで完了です。

管理ホームの「URLを入力して」の部分に短縮するURLを入力すれば、短縮URLが生成されます。

ちなみに、先ほどのRandom ShortURLsを使った場合と使わなかった場合の比較が下の画像です。

下の短縮URL「1」が無効時、上の短縮URL「6il1vuh0bjx1」が有効時(keyword lengthを12にしてあります)

いろいろ機能拡張はあるようなので、触ってみると面白いとおもいます。

ではまた!

□■□■ 広告 ■□■□

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です