今日はredisの操作を練習する予定です。コマンドラインで実行してみると、接続がスムーズであることがわかりました。
その後、Apacheで実行したところ、Redisクライアントに接続できないことがわかりました(Redisサーバーが消えました)
Reidsサーバー上のパケットをキャプチャすると、Apacheを使用すると接続リクエストがまったく受信されないことがわかりました。 。
問題の原因が Apache であることがわかります。
コマンドラインでは動作しますが、Apacheでは動作しません。最初に考えたのは、Apache設定ファイルが特定のポートを制限しているかどうかでしたが、見つかりませんでした。
最終的にstackoverflowで答えを見つけました - selinuxは、Apacheが開くことができるポート(より具体的には、httpサービスが開くことができるポート)を制限します。
解決策
/usr/sbin/setsebool httpd_can_network_connect=1
or
ファイアウォールが停止する可能性があることを除いて、後で通知してくださいあなた、selinux もできますやめてください、忘れないでください。
上記は、Apache で PHP が他のソケットを開けない (アクセス許可が拒否された) 問題の解決策を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。