Apache2でFastCgiServerを実行する際に問題が発生しました。静的fcgiサーバーが構成された仮想ホストを定義すると、suexecからエラーが発生します。
command not in docroot (/var/www-blah/dispatcher.fcgi)
Docrootは/var/www
なので、これは正しいです。しかし、AddHandler
magicによって生成された動的fastcgiを使用する場合、suexec
も使用しており、スクリプトが/home/.../public_html/dispatcher.fcgi
にある場合でも、同じ問題は発生しません。
そこでsuexec
が正しく実行される原因は何ですか?そして、どうすれば仮想ホストでその動作を複製できますか?
更新:実際、私は自分のものを/var/www-blah
から/var/www/blah
に移動したので、docrootの下にあり、機能します。 suexecにはpublic_html検出機能があると思います。
それでも機能しないのは、/var/www/...
の下にsuexecを使用した動的fastcgiです。スクリプトが正しいユーザーによって所有されている場合でも、suexecはエラーを表示せず、実行されていないようです(スクリプトはwww-dataとして機能します)
suexecは、Apacheドキュメントルート内のプログラムのみを実行します。 suexecセキュリティモデル 、特にポイント13を参照してください。