Zyxel Keenetic RouterにTiny Tiny RSSをインストールする

ごく最近、Good CorporationはGoogle Readerを閉鎖しました。 何千人ものユーザーがRSSフィードを読むという選択に直面しました。 誰かがすぐに彼の好きなものを見つけ、誰かがまだ検索中です。 しかし、すべてのオンラインリーダーには1つの重大な欠点があります。Googleリーダーのように、いつでも閉じることができます。 この状況から抜け出す方法は、最も人気のあるセルフホストリーダーの1つであるTiny Tiny RSS(以降tt-rss)をインストールすることです。 VDSサーバーまたはホームコンピューターにインストールできます。 しかし、サーバーは小さいながらもお金を払う必要があり、PCを常時オンにしておく(どこからでもリーダーにアクセスできるようにする)には問題があります。 ただし、Zyxel Keeneticルーターを使用している場合は、tt-rssにリーダーをインストールできます!

インストールするには、以下を行う必要があります。

ファームウェアの詳細。 Keeneticルーターには、それぞれ2つのシリーズのファームウェアV1とV2があります。 最初のシリーズのファームウェアは、外部USBドライブ/フラッシュドライブにパッケージをインストールできるという点で注目に値します。 そして、これはルーター自体のファームウェアなしで実装されます! ただし、第2世代のKeeneticルーター(Keenetic II / Keenetic Giga II / Keenetic Ultra)の場合、V1ファームウェアは非公式です(技術的なサポートは提供されません)。 私の場合、V1ファームウェアでフラッシュされたKeenetic Giga IIルーターがありました。 ルーターの第2世代のファームウェアV1はここから入手できます (最新の日付までにナビゲートします)。 ファームウェアプロセスは非常に簡単です。このため、ルーターのシステム設定で「システムファイル管理」に移動し、ダウンロードしたfirmwareファイルでfirmwareファイルを置き換える必要があります。

次のステップ-必要なパッケージのインストールに進みましょう。 最初にopkgパッケージマネージャーをインストールする必要があります。 私はこのプロセスを考慮しません、なぜなら これらのパッケージの組み立てに携わっている著者のウェブサイトに十分な詳細が記載されています。

そのため、opkgのインストール後、必要なパッケージのインストールに直接進みます。 sshを介してルーターに接続し、次のコマンドを実行します。

 opkg install libiconv-full libmysqlclient libncurses libncursesw libopenssl libpcre libreadline libxml2 lighttpd lighttpd-mod-fastcgi mysql-server php5 php5-cgi php5-mod-ctype php5-mod-dom php5-mod-hash php5-mod-iconv php5-mod-json php5-mod-mbstring php5-mod-mysql php5-mod-session uclibcxx mysql-server php5-mod-json php5-mod-mysql php5-mod-mbstring php5-mod-hash php5-mod-ctype php5-mod-iconv php5-mod-dom 

次に、それらを構成します。 構成するには、USBフラッシュドライブ/ディスク上の構成ファイルを編集する必要があります。 WinSCPプログラムを使用してこれを行うと便利です(接続設定でSCPプロトコルを選択します)。

lighttpdサーバーをセットアップします。 ファイル/media/DISK_A1/system/etc/lighttpd/lighttpd.conf fastcgiモジュール/media/DISK_A1/system/etc/lighttpd/lighttpd.confアクティブにします。このため、次の行のコメントを解除します。

 server.modules = ( "mod_fastcgi" ) 

index.phpをインデックスファイル名のリストに追加します。

 index-file.names = ( "index.html", "default.html", "index.htm", "default.htm", "index.php" ) 

さらに、MIMEタイプsvgを追加して、tt-rssインターフェイスにアイコンを正しく表示します。

 mimetype.assign = ( ... ".xml" => "text/xml", ".svg" => "image/svg+xml" ) 

次の行のコメントを解除します。

 fastcgi.server = ( ".php" => ( "localhost" => ( "min-procs" => 1, "max-procs" => 1, "max-load-per-proc" => 4, "socket" => "/media/DISK_A1/system/tmp/php-fastcgi.socket", "bin-path" => "/media/DISK_A1/system/usr/bin/php-fcgi" ) ) ) 

phpスクリプトの実行時間の制限を削除します。このため、 /media/DISK_A1/system/etc/php.iniを編集します。パラメーターmax_execution_time変更し、値0設定します。

http、mysqlサーバー、cronの自動読み込みを設定します。これらは、フィードを自動的に更新するために必要です。 これは、 /media/disk_a1/system/etc/init.d/フォルダー内のスクリプトの名前を変更する/media/disk_a1/system/etc/init.d/ます。 これを行うには、次のコマンドを実行します。

 mv /media/DISK_A1/system/etc/init.d/K02cron /media/DISK_A1/system/etc/init.d/S02cron mv /media/DISK_A1/system/etc/init.d/K27mysqld /media/DISK_A1/system/etc/init.d/S27mysqld mv /media/DISK_A1/system/etc/init.d/K50lighttpd /media/DISK_A1/system/etc/init.d/S50lighttpd 

公式Webサイトからtarballをダウンロードします/media/DISK_A1/system/www/フォルダーにダウンロードします。 これは、たとえば、同じWinSCPを使用して実行できます。 開梱するには、次を実行します。

 cd /media/DISK_A1/system/www/ tar -xvzf ./Tiny-Tiny-RSS-1.8.tar.gz rm ./Tiny-Tiny-RSS-1.8.tar.gz mv /media/DISK_A1/system/www/Tiny-Tiny-RSS-1.8/ /media/DISK_A1/system/www/tt-rss 

ルーターを再起動して、すべてのサービスを開始します。 再度、sshを介してルーターに接続します。 mysqlという名前のデータベースを作成します( rootという名前のユーザー用)。 コマンドを実行します。

 mysql_install_db --datadir=/media/DISK_A1/system/var/mysql --basedir=/media/DISK_A1/system/usr --force /media/DISK_A1/system/etc/init.d/S27mysqld restart 

データベースにアクセスするためのパスワードを変更します。

 /media/DISK_A1/system/usr/bin/mysqladmin -u root password "new-password" 

次に入力します:

 mysql -u root -p 

要求に応じて、設定されたパスワードを入力し、次のコマンドを入力します。

 create database ttrss; use ttrss; source /media/DISK_A1/system/www/tt-rss/schema/ttrss_schema_mysql.sql; quit; 

mysqlデータベースにアクセスするには、loインターフェイスを解決するiptables -I INPUT -i lo -j ACCEPTのiptablesルールを追加する必要があります。 再起動時にこのコマンドを自動的に実行するには、サーバー/media/DISK_A1/system/etc/init.d/S27mysqld mysql autostartスクリプトにこのコマンドを追加できます。

 case "" in start) start iptables -I INPUT -i lo -j ACCEPT ;; 

mysqlサーバーの再起動:

 /media/DISK_A1/system/etc/init.d/S27mysqld restart 

ブラウザでアドレスを開きます 192.168.1.1:81/tt-rss/ 192.168.1.1:81/tt-rss/ tt-rssインストーラーが開く場所:



スクリーンショットのようにフィールドに入力します。 [設定のテスト]をクリックします。 すべてが正常な場合、次のメッセージが表示されます。



[データベースの初期化]をクリックしてください。 そして、構成を保存します。

住所を開いてみましょう 192.168.1.1:81/tt-rss/ 192.168.1.1:81/tt-rss/ 。 ルートから実行できないことを誓います。 ルーターには他のユーザーはいないため、このチェックをオフにして、rootとしての起動を許可してください。 これを行うには、 /media/DISK_A1/system/www/tt-rss/include/sanity_check.php編集し/media/DISK_A1/system/www/tt-rss/include/sanity_check.phpif (function_exists('posix_getuid') && posix_getuid() == 0) { set posix_getuid() == -1

ブラウザでページを更新し、管理者ログイン、パスワード、パスワードを入力します。 すべて使用できます!

フィードを更新するには、タスクをcronに追加し、ファイル/media/DISK_A1/system/etc/crontabs/rootを開いて追加します

 */30 * * * * /media/DISK_A1/system/usr/bin/php-cgi /media/DISK_A1/system/www/tt-rss/update.php --feeds --quiet 

このコマンドは、30分ごとにフィードを更新します。

外部からリーダーにアクセスするには、httpサーバー/media/DISK_A1/system/etc/init.d/S50lighttpd自動実行スクリプトでiptablesルールのコメントを解除する必要があります。

 iptables -A INPUT -p tcp --dport $PORT_F -j ACCEPT 

tt-rssで、ルーターに迷惑なバグが発見されました。これは、win-1251でエンコードされたフィードを処理したくないという事実にあります。 この問題を解決するには、次の松葉杖を使用できます。 前のファイル/media/DISK_A1/system/www/tt-rss/include/rssfuncs.php

 if (!$rss) { $rss = new FeedParser($feed_data); $rss->init(); } 

追加( フォーラムの Star Perヒントに感謝):

 if (stripos($feed_data, 'encoding="windows-1251"')) { $feed_data = str_ireplace( 'encoding="windows-1251"', 'encoding="utf-8"', iconv( 'CP1251', 'UTF-8', $feed_data ) ); } 

したがって、私たちはrssリーダーを手に入れました。それはある時点では何らかの理由で閉じられません。 さらに、このリーダーはマルチユーザーモードで動作し、友達と共有できます。
リーダーでデフォルトのパスワードを変更することを忘れないでください! 良い読書をしてください。

Source: https://habr.com/ru/post/J185876/


All Articles