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ユーザーで起動させるにはどうすればよいですか?
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を使用します。
TracはPythonで記述されており、mod_wsgiでの実行をサポートしています(FAQの項目ごと)。そのため、これらの可動部分のいくつかを削除して、ユーザーの指定をサポートする素晴らしいmod_wsgiに切り替えます。スクリプトを実行するために。この機能を別のプロジェクトで使用すると、うまく機能します。
公式のmod_wsgiドキュメントを確認すると、これがどのように行われるかを示すために、ドキュメントには、実行する特定のユーザーの指定など、多くの例があるTrac統合に関するページが含まれていることがわかります。だからあなたの最善の策はただ読むことです:
Mod_fastcgiを使用すると、以下を使用してFastCGIスクリプトのSuexec実行を有効にできます。
FastCgiSuexec '/usr/lib/Apache2/suexec'
Suexecへのパスを変更する必要があるかもしれません。この例はDebianシステムからのものです。