web-dev-qa-db-ja.com

fcgid、suexec、およびuserdir

Fcgidを使用して、ユーザーごとのtracインスタンスを設定しようとしています。問題は、tracがtracインスタンスへのrwアクセスを必要とするため、それぞれのユーザーの下でfcgiプロセスを実行する必要があることです。

Suexec、fcgid、およびuserdir Apacheモジュールを(Debianに)インストールしています。私はvhostディレクティブを立てました

ScriptAliasMatch /~(.*)/trac /home/$1/public_html/trac.fcgi

これは、trac.fcgiが実行されている限り機能しますが、残念ながら、www-dataユーザーの下で機能します。 fcgidに$ 1ユーザーで起動させるにはどうすればよいですか?

2

RackspaceのIUSRPMを使用していますが、suexecはデフォルトでコンパイルおよび構成されています。

これが私のmod_fcgid設定の関連部分です:

LoadModule fcgid_module modules/mod_fcgid.so 
AddHandler fcgid-script fcg fcgi fpl php 
DefaultInitEnv PHPRC  "/etc/"
FCGIWrapper /usr/bin/php-cgi .php

「ScriptAliasMatch」ディレクティブを削除し、AddHandlerディレクティブをグローバルにまたはUserDirセクションで使用することをお勧めします。私の設定では、UserDirフォルダー(つまり、〜/ public_html)は、問題のユーザーに対して自動的にsuexecを使用します。

2
edgester

TracはPythonで記述されており、mod_wsgiでの実行をサポートしています(FAQの項目ごと)。そのため、これらの可動部分のいくつかを削除して、ユーザーの指定をサポートする素晴らしいmod_wsgiに切り替えます。スクリプトを実行するために。この機能を別のプロジェクトで使用すると、うまく機能します。

公式のmod_wsgiドキュメントを確認すると、これがどのように行われるかを示すために、ドキュメントには、実行する特定のユーザーの指定など、多くの例があるTrac統合に関するページが含まれていることがわかります。だからあなたの最善の策はただ読むことです:

http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac

2
Phil P

Mod_fastcgiを使用すると、以下を使用してFastCGIスクリプトのSuexec実行を有効にできます。

FastCgiSuexec '/usr/lib/Apache2/suexec'

Suexecへのパスを変更する必要があるかもしれません。この例はDebianシステムからのものです。

0
ewindisch