この記事では、Google Readerの閉鎖後の生活に関する一連の記事を継続し、hostinger.ruでTiny Tiny RSSをセットアップした経験、遭遇した障害、そしてもちろんそれらを克服する方法について説明します。 写真、ソースコード、コメント付きの詳細なステップバイステップの説明があります。
この記事は、主にHostingerの欠点とそれらを克服する方法を説明しているため、ホスティング広告と見なすべきではありません。
hostinger.ruを選ぶ理由
すぐに予約します。このサービスとは一切関係ありません。無料ホスティングは確かな問題であり、常に有料のものに切り替えることをお勧めします。 私は完全なコントロールが常に優れていることに同意しますが、無料は常に魅力的ですよね?
Google Readerの代替品を見つけるまでの道のりは非常に長く、おそらくまだ完全ではありませんでした。 最も機能的な代替手段の1つとして、私はすぐにTiny Tiny RSSに落ち着きましたが、ホスティングをいじくり回さなければなりませんでした。 最初はOpenShift用のTiny Tiny RSSカートリッジを試しましたが、パフォーマンスが非常に低いため、使用できませんでした。 次に、HerokuとTiny Tiny RSSを「ワンクリックで」インストールするためのスクリプトがありました。正常に実行するには、2、3のコミットを送信する必要がありました。 RSSフィードはHeroku Tiny Tinyで正常に機能しましたが、データベース内の10,000エントリという制限はすぐに終了し、月額9ドルで増やすことができます。 これは、VPS / VDSをレンタルできる金額です。
結局、私は有料ホスティングに切り替える準備ができていましたが、Hostingerに出会いました。 このサービスの無料料金は、多くの有料ホスティングサービスよりも制限が少ないため、試してみることにしました。 もちろん、Hostingerの安定性には多くの要望がありますが、バックアップを取得してアプリケーションをどこにでも展開する機会が常にあり、魅力的な価格設定ポリシー(無料)がチャンスをもたらしました。
それでは始めましょう...
ステージ1:Tiny Tiny RSSをインストールする
hostinger.ruでのアカウントの確立。 hostinger.ruに移動し、「今すぐ注文」をクリックします。
確認メール。
無料レートを注文してください。
<name> .p.htという形式の3レベルドメインと、このドメインの個別のパスワードを選択します。 しばらくすると、同様の画像が表示されます。
[選択]をクリックします。
「ホスティングを使用する主な目標は何ですか?」という質問に答えてください。 私はこのように答えました。 私は初心者です:)」。
サイトのコントロールパネルに移動します。 主な仕事はそれで実行されます:
まず、FTPアクセスを構成します。 「Free Account Activated」という件名の手紙には、接続のためのデータが来るはずです。 ドメインからのパスワードを使用します。これは、「アカウント作成」の文字でも入力されているはずです。 FTPにアクセスするには、Total Commanderを使用し、Webブラウザーなどのパッシブ転送モードをオンにし、30秒ごとにNOOPコマンドを送信しました。 そのような設定は、私にとって最も安定しているように見えました。
ftpに移動してみてください。default.phpはそこにあるはずです
アプリケーションのサブディレクトリとサブドメインを作成しましょう。 コントロールパネルで[ サブドメイン ]に移動し、ディレクトリとサブドメインの名前(たとえば、 「rss」)を入力すると、 rss。<name> .p.htのようにリーダーを開くことができます。
次のステップは、データベースを作成することです。 MySQLデータベースアイテムを開きます。 最初の2つのフィールドに「ttrss」と入力し、パスワードとしてFTPと同じパスワードを使用します。
作成をクリックします。
いよいよTiny Tiny RSSをダウンロードします。 tt-rss.orgにアクセスすると、ページ下部のリンクが「Download tarball、v1.9」になります。
ダウンロードが完了したら、ftpを開いてpublic_htmlフォルダーにTiny-Tiny-RSS-1.9.tar.gzを入力し 、 rssフォルダーを削除します(コントロールパネルの[ファイルマネージャー]を使用して、ファイルをより速くアップロードできます)。
コントロールパネルで「SSHコンソール」を開き、次のコマンドを順番に入力します。
cd public_html tar zxfv Tiny-Tiny-RSS-1.9.tar.gz mv Tiny-Tiny-RSS-1.9 rss
FTP経由でTiny-Tiny-RSS-1.9.tar.gzを削除します。もっと必要です。
rss。<name> .p.htリーダーを開くと、Tiny TinyRSS構成ページが表示されます。 データベースのパラメーターを入力します。 「テスト構成」をクリックします。
検証が成功したら、「データベースの初期化」をクリックしてから、「構成の保存」をクリックします。
実際、これで予備セットアップは終了しました。
「admin」ログインとパスワード「password」を使用してリーダーにログインできます(すぐに変更することをお勧めします)。
ステージ2:ロギングのセットアップ
特定のファイルにログを出力するようにサーバーを構成します。 これを行うには、「u466982574」をユーザー名(コントロールパネルに表示)で置き換えた後、次のコマンドをファイルpublic_html / rss / .htaccessに追加します
# Increase execution time php_value max_execution_time 300 # PHP error handling for development servers # http://perishablepress.com/advanced-php-error-handling-via-htaccess/ php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on php_flag log_errors on php_flag ignore_repeated_errors off php_flag ignore_repeated_source off php_flag report_memleaks on php_flag track_errors on php_value docref_root 0 php_value docref_ext 0 php_value error_log /home/u466982574/public_html/PHP_errors.log php_value error_reporting -1 php_value log_errors_max_len 0 <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>
このファイルは、PHPがすべてのエラーをファイルに書き込むことに加えて、スクリプトの最大実行時間を増加させます(これがHostingerに役立つかどうかはわかりませんが、明らかに不要です)
public_html / rss / config.phpを開き、次の行を置き換えます
define('LOG_DESTINATION', 'sql');
に
define('LOG_DESTINATION', '');
これにより、Tiny TinyRSSはデータベースではなく、前の段落のファイルにエラーを書き込みます。 実際のところ、Hostingerでは、少なくとも私にとって共通の問題は、データベースにアクセスできないことです。この場合、エラーメッセージは単に失われます。
ステップ3:自動更新
リーダーの自動更新を設定する必要があり、問題はすでにここから始まっています。 Hostingerは、CRONタスク、つまり、定期的な間隔で任意のスクリプトを実行する機能をサポートしています。
CRONタスクとパラメーターupdate.php
Tiny TinyRSSでは、更新するには--feedパラメーターを指定してupdate.phpスクリプトを呼び出す必要がありますが、HostingerはCRONタスクでパラメーターを渡すことを禁止しています。 そのため、 update.phpを呼び出して必要なパラメーターを渡すスクリプトを作成する必要があります。 このスクリプトupdate_with_params.phpを呼び出します。
#!/usr/bin/env php <?php ob_implicit_flush(true); echo "PHP version: " . phpversion() . PHP_EOL; echo "Max execution time: ".ini_get("max_execution_time")." seconds" . PHP_EOL; define( 'UPDATE_IMPLICIT_PARAMS', 'feeds' ); require_once "update.php"; ?>
また、 update.phpを変更し、次のコードを追加する必要があります。
if (defined('UPDATE_IMPLICIT_PARAMS')) { $impl_params = array_map("trim", explode(",", UPDATE_IMPLICIT_PARAMS)); if( !is_array($options) ) $options=array(); $options = array_merge( $options, array_fill_keys($impl_params, '')); }
行の後:
$options = getopt("", $longopts);
CRONタスクとPHPバージョン
HostingerのCRONタスクの2番目の問題は、PHP 5.2で呼び出されることであり、Tiny TinyRSSではPHP 5.3以上が必要です。 この問題を解決するために、ブラウザのようにupdate_with_params.phpをリモートで呼び出す新しいスクリプトを作成し、 update_external.phpを呼び出します。 rss.name.p.htを読者のアドレスに置き換えます。
#!/usr/bin/env php <?php echo "PHP version: " . phpversion() . PHP_EOL; echo "Max execution time: ".ini_get("max_execution_time")." seconds" . PHP_EOL; $url = "http://rss.name.p.ht/update_with_params.php"; $ch = curl_init($url); try { if ( $ch === FALSE ) throw new Exception('failed to initialize'); $startTime = microtime(true); $result = curl_exec($ch); echo 'Execution time '. (microtime(true) - $startTime) . ' sec' . PHP_EOL; if (FALSE === $result ) throw new Exception('Curl error ' . curl_errno($ch) . ' , ' . curl_error($ch) ); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE ); if ( $code != 200 ) throw new Exception( "Page returned error code $code" ); } catch(Exception $e) { trigger_error( sprintf('ERROR #%d: %s\n', $e->getCode(), $e->getMessage()), E_USER_ERROR ); } curl_close($ch); ?>
CRONタスクのセットアップ
スクリプトを自動的に実行するように構成します。 これを行うには、コントロールパネルの「 Cron-Tasks 」アイテムに移動し、図のように構成します。
作成をクリックします
これで、更新リーダースクリプトが5分ごとに呼び出されます。 コントロールパネルの「 Cron-Tasks Results 」アイテムで彼の作業のログを見つけることができます。
それだけです。
デブリーフィング
現時点では、HostingerでTiny Tiny RSSを使用しており、かなり満足していますが、将来現れる可能性のあるいくつかの潜在的な問題があります。
- スクリプトの実行時間の制限。 Hostingerが.htaccessのmax_execution_timeパラメーターに従う量を言うことは困難ですが、フィードの更新に45秒かかり、Hostingerは実行を中断しません
- ログに「接続が多すぎます」および「MySQLサーバーがなくなりました」というメッセージが表示され、スクリプトの実行中にデータベースへの接続が切断されたことを示します。 理論的には、常に発生するわけではなく、Tiny Tiny RSS開発者がトランザクションを慎重に処理する場合(これは一見真実だと思われる場合)、これは問題になりません。
- 数時間、リーダーへのアクセスが閉じられ、すべてが復元されました。 待たなければならなかった
- Tiny Tiny RSS開発者は、共有ホスティングの制限の下で製品を変更することに反対しており、ここで説明する変更を含む私のパッチは受け入れられませんでした。 これは、将来、新しいバージョンのリリースに影響する可能性があります。
おわりに
この記事では、HostingerでのTiny Tiny RSSのインストールについて説明しましたが、そのようなソリューションを使用する可能性を公平に評価しようとしました。 私の観点からは、このソリューションの使用は非常に可能です。特にその主な利点を考慮して、無料です。 しかし、もちろん、いつものように決定するのは良いことです。試してみるために、最初から設定パスを実行する必要はなくなりました。
スクリプトまたは設定を改善する方法を知っている場合は、コメントでそれらを示してください。 また、マイナスを入力した場合は、コメントに理由を記入してください。