13)Permission denied: [client ipaddress:port] AH01257: unable to connect to cgi daemon after multiple tries~ 意外な原因

Apache
スポンサーリンク

環境

  • RHEL9
  • Server version: Apache/2.4.57 (Red Hat Enterprise Linux)
  • perl v5.32.1

事象

Apacheで、perlスクリプトで組んだ.cgi ファイルに、
Webブラウザでアクセスしても、

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

になっちゃう。

error_logを見ると、

13)Permission denied: [client ipaddress:port] AH01257: unable to connect to cgi daemon after multiple tries~

みたいなログが記録されている。

原因

Apacheのconfにて、

  • User ディレクティブ
  • Group ディレクティブ

が、デフォルトの「Apache」から他の一般ユーザー名に変更していたことだった。

意外~!!

もちろん、

  • cgiファイルや、その親、祖父ディレクトリのパーミッションや、ユーザーグループには問題ない状態だった
  • firewalld や iptables や、 ウイルスソフトは全部OFFにして試した

あたりは干渉していない状態でこの事象が出た。なので、 UserやGroupを変えたことが原因。

AIに聞いたら、

Apacheは通常、特定のユーザー(この場合はapache)として実行されます。このユーザーは、Apacheがインストールされたときに作成され、Apacheがファイルシステムにアクセスするための権限を持っています。

一方、kuzuユーザーはApacheのインストール時には存在しない可能性があり、Apacheが必要とする特定の権限を持っていない可能性があります。そのため、Apacheがkuzuユーザーとして実行されると、Apacheが必要とする操作(例えば、CGIスクリプトの実行)が制限され、エラーが発生する可能性があります。

とかゆってた。

対処

UserとGroupをデフォルトのapacheにする。

スクリプトやらのパーミッションもそれに合わせて調整する。

Ubuntu20.04 LTS環境だと、別の対応をしている記事があった

コメント