0

/home/adil/hg/sample-repo にリポジトリをセットアップしており、httpd 経由で提供したいと考えています。https://www.mercurial-scm.org/wiki/PublishingRepositories#multipleのチュートリアルに従い、hgweb.config ファイルを作成し、hgweb.cgi (名前を index.cgi に変更) を /home/adil にコピーしました。 /ウェブ/マーキュリアル/

私のApache設定(/etc/httpd/conf/httpd.conf)は次のようになります:

ScriptAlias /hg "/home/adil/web/mercurial/index.cgi"

<Directory "/home/adil/web/mercurial">
    Order allow,deny
    Allow from all
    AllowOverride All
    Options ExecCGI
    AddHandler cgi-script .cgi
</Directory>

index.cgi、hgweb.config、およびそれより上のすべてのディレクトリには、全世界の読み取り権限があります

http://localhost/hgで「403 Forbidden」エラーが発生します。なんてこと?

PS: Apache エラー ログの表示: [Sun Oct 17 06:45:38 2010] [error] [client 1.2.3.4] (13)Permission denied: access to /hg denied

4

2 に答える 2

1

私は決してApache構成の専門家ではありませんが、このエラーが発生し、なんとかそれを取り除くことができました。

以前は、error_logで次のエラーが発生していました。client denied by server configuration: /Users/svn/Public/hg/hgwebdir.cgi

これは私の元の構成でした:

ScriptAlias /hg "/Users/svn/Public/hg/hgwebdir.cgi"
<Location /hg>
   AuthType Basic
   AuthName "Mercurial Repositories"
   AuthUserFile /Users/svn/Public/hg/auth
   Require valid-user
</Location>

私はいくつかのオプションを追加しました:

ScriptAlias /hg "/Users/svn/Public/hg/hgwebdir.cgi"
<Location /hg>
  Options ExecCGI FollowSymLinks
  Options None
  Order allow,deny
  Allow from all

  AuthType Basic
  AuthName "Mercurial Repositories"
  AuthUserFile /Users/svn/Public/hg/auth
  Require valid-user
</Location>

Pabloのバージョンも試してみました。発生した問題の1つは、「ScriptAliasMatch ^ / hg(。*)」がブラウザーリポジトリエクスプローラーのレンダリングに必要なhgロゴとスタイルシートをキャプチャしていたことです。私はそれを使用していないので、これが当てはまるかどうかはわかりませhgweb.cgiんが、を使用している間は間違いなく問題でしたhgwebdir.cgi。具体的には:script not found or unable to stat: /Users/svn/Public/hg/hgweb.cgilogo.png

于 2011-05-12T23:31:16.490 に答える
0

おそらく、Apache のプロセス所有者には にアクセスする権限がありません/home/adil/web/mercurial

また、Apache のエラー ログを確認してください (通常、/var/log/httpd-error.logまたは同様の場所にあります。インストールをデバッグするための追加情報が得られます。

ユーザーが Apache のプロセスを実行していることを確認するには、次のようにします。

$ ps aux | grep http

psApache を実行しているユーザーが表示されます。

また、それが役立つ場合に備えて、これが私が行う方法です:

ScriptAliasMatch        ^/hg(.*)        /usr/local/share/mercurial/www/hgweb.cgi$1
<Directory /usr/local/share/mercurial/www>
  Options ExecCGI FollowSymLinks
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
</Directory>
于 2010-10-17T11:42:32.463 に答える