バリューサーバーにTiny Tiny RSSを導入する

一時期は「Googleで検索すれば必要な情報がすぐに手に入るからRSSリーダーは不要」と言われていましたが、最近はSEO対策ばかり優先した価値のないサイトがGoogle検索の上位に来るようになったため、RSSを活用したウェブブラウジングが再び注目されつつあります。

ネットではRSSリーダーサービスがいくつも見受けられますが、フィード数に制限があったり、興味のない記事を隠すことができなかったりと、無料プランでは不便に感じることもあります。

Tiny Tiny RSS」というオープンソースプロジェクトは、自前のサーバーにRSSフィードを管理する機能を搭載できるソフトウェアで、PHPとMySQLが動作しているのであれば、レンタルサーバーでも導入できます。PHPやデータベースが稼働するサーバーは有料プランがほとんどですが、メールアドレスの複数取得などの付帯サービスも考慮すると、RSSリーダー単体のサービスよりも安くつきます。

今回は管理人も使用しているレンタルサーバー「ValueServer」へTiny Tiny RSSを導入する手順をご紹介します。

まずはプロジェクトのGitリポジトリサイトに行き、リポジトリをzipファイルとして一括ダウンロードします。
アーカイブを任意のフォルダーに展開したら、設定を変更します。トップフォルダーにある「config.php-dist」を「config.php」に変更し、以下のように記入します。
config.php
<?php
// バリューサーバー共通
putenv('TTRSS_DB_HOST=localhost');
putenv('TTRSS_DB_TYPE=mysql');
putenv('TTRSS_DB_PORT=3306');

// ユーザー設定
putenv('TTRSS_DB_NAME=[データベース名]');
putenv('TTRSS_DB_USER=[データベースユーザー名]');
putenv('TTRSS_DB_PASS=[データベースパスワード]');
putenv('TTRSS_SELF_URL_PATH=https://[アップロード先URL]/tt-rss');

// PHP実行パスの指定
putenv('TTRSS_PHP_EXECUTABLE=/usr/local/bin/php74cli');

// 簡易更新を有効にすると、ブラウザでページを開いている間は
// cronを使わなくても一定間隔でフィード情報が更新されるようになる。
putenv('TTRSS_SIMPLE_UPDATE_MODE=true');
「TTRSS_SELF_URL_PATH」にはファイルをアップロードしたURLを指定します。現時点では、バリューサーバーの内部PHPは5.4で動作しているため、PHP 7.1ベースで開発されているTT-RSSをそのまま動かすことはできません。「PHP_EXECUTABLE」で対応したバージョンのphp実行パスを明示的に指定する必要があることに注意しましょう。

設定ファイルを保存したら、ファイルをまとめてサーバーにアップロードします。
アップロードが完了したら、phpMyAdminなどのデータベースツールを用いて、ストレージエンジンが「InnoDB」の「ttrss_version」テーブルが存在するかどうかを確認し、そうでなければ作成ないしは変更します(とりあえずTT-RSSのウェブページにアクセスして、ttrss_versionテーブルを自動生成してもらってから修正する方法もあり)。
次にSSH経由でデータベースの初期化を行います。バリューサーバーではセキュリティ上の理由により、SSHでアクセスできる環境や日数が限られているので、「お役立ちツール→SSH接続」より環境を更新しておきましょう。

こちらはWindowsターミナル(Windows 11)でのコマンド例です。SSHの接続先のサーバー名とパスワードはFTPにおける設定と同一です。ログインしたら、カレントディレクトリをTT-RSSのフォルダーに変更し、PHP 7.4の実行パスを明示的に指定したうえでアップデートコマンドを実行します。
ssh xxx@ex.valueserver.jp xxx@ex.valueserver.jp's password: Last login: Tue Nov 9 04:40:46 2021 from xxx.ne.jp [~]$ cd ~/public_html/xxx.valueserver.jp/tt-rss [~]$ /usr/local/bin/php74cli update.php --update-schema [05:10:15/55407] Lock: update.lock [05:10:15/55407] Type 'yes' to continue. yes [05:10:18/55407] Loading base database schema... [05:10:18/55407] Migration finished, current version: 145

すべてが正常に完了すれば、ウェブページにログイン画面が表示されます。初期状態は「ユーザー名:Admin・パスワード:password」と非常に脆弱なので、ログインしたら個別ユーザーの作成とパスワードの変更を速やかに行いましょう。
OMPLをインポートした直後などで、すぐにフィードを更新したい場合は、SSHで以下のコマンドを手動で実行します。
/usr/local/bin/php74cli update.php --feeds
2021/01/22