ホームページ  >  記事  >  バックエンド開発  >  ApacheでPHPが他のソケットを開けない(アクセス許可が拒否される)問題を解決する

ApacheでPHPが他のソケットを開けない(アクセス許可が拒否される)問題を解決する

WBOY
WBOYオリジナル
2016-08-08 09:31:03973ブラウズ

今日はredisの操作を練習する予定です。コマンドラインで実行してみると、接続がスムーズであることがわかりました。

その後、Apacheで実行したところ、Redisクライアントに接続できないことがわかりました(Redisサーバーが消えました)

Reidsサーバー上のパケットをキャプチャすると、Apacheを使用すると接続リクエストがまったく受信されないことがわかりました。 。

問題の原因が Apache であることがわかります。

コマンドラインでは動作しますが、Apacheでは動作しません。最初に考えたのは、Apache設定ファイルが特定のポートを制限しているかどうかでしたが、見つかりませんでした。

最終的にstackoverflowで答えを見つけました - selinuxは、Apacheが開くことができるポート(より具体的には、httpサービスが開くことができるポート)を制限します。

解決策

/usr/sbin/setsebool httpd_can_network_connect=1

or

setenforce 0 ##SELinux を許可モードに設定します

ファイアウォールが停止する可能性があることを除いて、後で通知してくださいあなた、selinux もできますやめてください、忘れないでください。

上記は、Apache で PHP が他のソケットを開けない (アクセス許可が拒否された) 問題の解決策を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。