ブログに戻る

Ubuntu 20.04でPHPのセッションハンドラとしてRedisサーバーをセットアップする

Ubuntu 20.04でPHPのセッションハンドラとしてRedisサーバーをセットアップする

Redisは、オープンソースのインメモリキャッシュおよびストレージシステムです。データ構造サーバーとも呼ばれます。ハッシュ、リスト、セット、ビットマップなど、いくつかのデータ型に対する高度なサポートを提供します。その優れたパフォーマンスにより、Redisは主要な業界やトップの多国籍企業(MNC)で人気を博しています。

Redisのメリット

速度に関して言えば、Redisサーバーに匹敵するものはありません。NoSQLデータベースサーバーとして、データの保存と取得において驚異的な速度を提供します。さらに、Redisには、複雑なデータを含むさまざまなデータをシームレスに処理できる優れた機能があります。Redisの使いやすさと洗練された機能は、それを際立たせるだけでなく、企業や個人のユーザー向けの主流データベースとしての標準化を進める要因となっています。

以下では、Ubuntu 20.04ソフトウェアにRedisをインストールする手順を詳しく説明します。このチュートリアルでは、インストールから、Ubuntu 20.04上で動作するPHPアプリケーションのセッションハンドラーとして使用する外部Redisサーバーの設定まで、必要なすべての情報を得ることができます。.

はじめに

手順を進めるには、プライベートネットワークが有効な同じデータセンター内にある2つの異なるデータベースサーバー(Droplet)が必要です。これらには以下が含まれます:

  • 以下を実行しているPHP Webサーバー:LAMPおよびLEMP (Ubuntu 20.04上) – このサーバーを「web」と呼びます.

  • Redisがインストールされる2つ目のクリーンなUbuntu 20.04サーバー – このサーバーを「redis」と呼びます.

ステップ 1 — Redisサーバーのインストール

最初のステップは、Ubuntu 20.04にRedisサーバーをインストールすることです。完了したら、サーバーが起動して動作していることを確認します。対象は私たちのredis Dropletです。

このチュートリアルでは、Personal Package Archives(PPA)を使用します。セキュリティ上の理由から、PPAの使用を強くお勧めします。他のサードパーティのリポジトリと比較して、PPAは安定しており、インストールが簡単で、何よりもUbuntuユーザー向けに設計されています。PPAを使用すると、公式のUbuntuリポジトリにないソフトウェアであっても、利用可能な最新のソフトウェアバージョンを取得できます。

未承認のソースからのPPAの使用は絶対に避けてください。信頼でき、検証されたソースからのみPPAを取得するようにしてください。次のコマンドを使用してPPAリポジトリを追加できます。

確定するには、Enter キーを押します。確認後、次のコマンドを使用してパッケージマネージャーのキャッシュを更新します。

次に、以下のコマンドを使用してRedisをインストールします。

コマンドを実行すると、サーバーにRedisがインストールされます。次のコマンドを使用してインストールをテストしてみましょう。

コマンドを実行すると、localhost のポート 6379 で動作しているRedisインスタンスが表示されます。また、PONG という応答が返されます。これらが表示されれば、最初のステップは無事に完了です。Redisのインストールとセキュリティ保護に関する詳細なガイドについては、チュートリアル「Ubuntu 18.04でRedisをインストールして保護する方法.

」をご覧ください。次に、ステップ2のRedisの設定に進みましょう。

ステップ 2 — 外部接続を受け入れるためのRedisの設定

Redisを設定する主な目的は、外部からの接続を受け入れることです。なぜでしょうか?デフォルトでは、Redisは localhostへの接続のみを許可しており、それ以外の場所からの接続は制限されているためです。簡単に言うと、Redisをインストールしたサーバーの内部からのみアクセスできます。

まず、次の ifconfigコマンドを使用して、ネットワークインターフェースの詳細情報を取得します。

以下のような出力が表示されます。

At the eth1 インターフェースに、 inet_addr があります。ここでは 10.133.14.9 となっています。これ以降のステップでは、このIPアドレスを使用して、redis サーバーへの接続を、web サーバーから行います。

ステップ 3 — ローカルホストのバインド

お好みのコードエディタを自由に使用してください(AtomやVisual Studio Codeが最も人気があります)。

次に、ファイル /etc/redis/redis.conf を開き、 bind 定義が含まれている行を探します。その行に、ご自身の private network IP address を追加してください。

場合によっては、 localhost が、以下の値の代わりに表示されていることがあります: 127.0.0.1。心配ありません。プライベートIPアドレスを追加するだけです。次に、変更を適用するためにRedisサービスを再起動します。以下のコマンドを使用して、redis サーバーを再起動します。

ワンクリックアプリケーションを使用してRedisをインストールしたユーザーは、以下のコマンドに従ってサーバーを再起動してください。

一度 redis サーバーを再起動すると、同じプライベートネットワーク内にあるすべてのサーバーが、個別に設定することなく、このRedisインスタンスに自動的に接続されます。

ステップ 4 — Redisサーバーのパスワード設定

練習やトレーニング目的でRedisをインストールしている場合は、このステップをスキップできます。ただし、Redisのインストールにセキュリティレイヤーを追加するために、redis サーバーのパスワードを設定することを強くお勧めします。前のステップと同様に、同じ設定ファイルを変更しましょう。編集するには以下のコマンドを使用します。

以下が含まれている行のコメントアウトを解除します: requirepass。そして、強力なパスワードを設定します:

変更を反映するためにRedisサービスを再起動します。再起動するには次のコマンドを使用します:

ステップ 5 — Redisの接続と認証のテスト

このステップでは、次の内部からRedisサービスに接続します: redis マシンに接続し、行われたすべての変更が期待通りにシームレスに動作しているか確認します。接続するには、以下のコマンドを使用します:

ここで、ホスト名の指定を省略しても実行されます。私たちの主な目的は、Redisサービスが接続をシームレスに受け入れることを確認することです:

定義されたパスワードからデータにアクセスしようとすると、 AUTH エラーが発生する可能性があります:

出力は以下のようになります:

認証するには、 AUTH コマンドを、次のファイルで定義したのと同じパスワードと一緒に実行します: /etc/redis/redis.conf ファイル:

次に、コマンドをもう一度実行します:

今回は、エラーの代わりに OK がレスポンスとして返されます。以下のような出力が表示されます:

出力の empty list または set は、Redisサーバーが空であることを意味します。これは、ウェブサーバーをセッションハンドラーとしてまだ設定していないためです。

注意:次に進む前に、SSHセッションが開いており、redis-cliに接続されていることを確認してください。これ以降のステップで、web サーバーに必要な変更を加えた後、セッションデータが正しく保存されたかどうかを確認するために、redis-cliプロンプトに戻ります。

ステップ 6 — ウェブサーバーへのRedis拡張機能のインストール

次のステップは、web サーバーで実行する必要があります。PHPがRedisサーバーに接続できるように、PHP Redis拡張機能をインストールする必要があります。

まず、次のコマンドを実行してパッケージマネージャーのキャッシュを更新します:

次に、 php5-redis パッケージをインストールします:

これでRedisに接続する準備が整いました。

ステップ 7 — ウェブサーバーでのデフォルトセッションハンドラーとしてのRedisの設定

PHPにはデフォルトのセッションハンドラーがあります。このステップでは、 php.ini ファイルを、web サーバー上で編集してデフォルト設定を変更します。 php.ini ファイルの場所は、現在のスタックによって異なります:

  • For a LAMP スタック(Ubuntu 20.04)の場合は、以下を使用します: /etc/php5/apache2/php.ini.

  • For a LEMP スタック(Ubuntu 20.04)の場合、通常パスは次のようになります: /etc/php5/fpm/php.ini.

メインの php.ini ファイルの場所がわからない場合は、関数 phpinfo() を利用してください。Webルートディレクトリ内の info.php という名前のファイルに、次のコードを配置します:

ブラウザからスクリプトにアクセスする際、「Loaded Configuration File」という行を探します。読み込まれているメインの php.ini ファイルの正確な場所が表示されます。環境の機密情報がすべて含まれているため、必ず info.php ファイルを削除してください。

その後、 php.ini ファイルを開き、 session.save_handler を含む行を探します。デフォルト値は files です。これを必ず redis.

On LAMP 環境の場合:

On LEMP 環境の場合:

次に、 session.save_path のコメントアウトを解除し、Redis接続文字列が含まれるように値を変更します。内容は以下の形式に従う必要があります:

次のステップで設定したパスワードを使用してください:Step- 4.。設定したパスワードを使用しない場合は、Redisを設定する際にパラメータ auth を指定してください。ファイルを保存し、php 両方の環境でのサービス。

次の環境:LAMP 環境:

次の環境:LEMP 環境:

ステップ 8 — Redis セッション処理のテスト

最後のステップでは、セッションが Redis によって処理されていることを確認するために、PHP スクリプトまたはアプリケーションが必要です。カウンターを実装するシンプルなスクリプトを使用します。ページをリロードするたびに、表示される数値が増加します。

次の名前のファイルを作成します: demo.phpweb サーバー上)そして、それをドキュメントルートフォルダ内に保存します:

次に、 /usr/share/nginx/html をドキュメントのルートパスを反映するように変更します:

次に、ブラウザで http://web/demo.php にアクセスしてスクリプトを実行します。ページをリロードするたびに、プログラムは数値をインクリメントします。

これで、セッション情報が Redis サーバーに保存されます。確認するには、redis マシンの SSH セッションに戻り、 redis-cli を使用します。次のコマンドでもう一度コンテンツを取得します: keys *:

以下のような出力が表示されます:

この出力は、すべての情報が redis サーバーに安全に保存されていることを証明しています。追加の web サーバーを接続する場合も、同様の手順で行うことができます。

結論

Redis は、多数の非構造化データを保存できる NoSQL データベースです。 redis サーバーの機能性とシンプルさに匹敵するデータベースはほとんどありません。その人気の高まりにより、その幅広い機能に匹敵する代替品がほとんどない、必須のツールであり続けています。

PHP アプリケーションとその使用方法に関する知識をさらに深めるには、ブログの以下のチュートリアルをご覧ください:

ハッピーコンピューティング!

author

Shreyas Patil

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。