web-dev-qa-db-ja.com

Debian 8 / Apache 2仮想ホストの背後にあるGitLab CE 7:アセットにアクセスできません

Debian 8.0では、Apache 2.4.10にGitLab CE 7.10 Omnibusインストールを仮想ホストとして管理させようとしています。

設定と目標

Apache 2はすでにセットアップされ、すべてがvhost.example.comのように見えるいくつかの仮想ホストを実行しています。

ApacheとGitLabを構成して、git.example.comがApacheによって処理され、GitLab Webインターフェースが表示されるようにしたいと考えています。

そのために、私は https://stackoverflow.com/a/25809733/4352108 で説明されている手順に従いました。

問題

git.example.comでGitLabのメインページにアクセスできますが、CSSやアイコンなどの他のリソースにはアクセスできません。 Apacheログには、次の4つのエラーが表示されます。

[Sun May 10 20:24:57.146329 2015] [authz_core:error] [pid 4141] [client 1.2.3.4:80] AH01630: client denied by server configuration: /opt/gitlab/embedded/service/gitlab-Rails/public/assets/application-TOKEN.css, referer: http://git.example.com/

Webを検索していくつかの変更を試みた後、私はここで行き詰まりました。これをどのように解決できるかについて誰かが知っていますか?

設定ファイル

さらに、ここに私が使用する「興味深い」構成ファイルがあります。

/etc/Apache2/sites-enabled/git.conf

<VirtualHost git.example.com:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/gitlab/embedded/service/gitlab-Rails/public
    ServerName git.example.com
    ServerAlias git.example.com

    ProxyPreserveHost On

    <Location /opt/gitlab/embedded/service/gitlab-Rails/public>

        Order deny,allow
        Allow from all
        Options FollowSymLinks
        Require all granted

        ProxyPassReverse http://localhost:8080
        ProxyPassReverse http://git.example.com
    </Location>

    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
    RewriteRule .* http://localhost:8080%{REQUEST_URI} [P,QSA]

    ErrorDocument 404 /404.html
    ErrorDocument 422 /422.html
    ErrorDocument 500 /500.html
    ErrorDocument 503 /deploy.html

    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
    ErrorLog  /${Apache_LOG_DIR}/gitlab.error.log
    CustomLog /${Apache_LOG_DIR}/gitlab.forwarded.log common_forwarded
    CustomLog /${Apache_LOG_DIR}/gitlab.access.log combined env=!dontlog
    CustomLog /${Apache_LOG_DIR}/gitlab.log combined
</VirtualHost>

/etc/gitlab/gitlab.rb

external_url 'http://git.example.com'
web_server['external_users'] = ['http']
nginx['enable'] = false

いくつかの興味深い有効なApache mod:

proxy
proxy_http
6
Arcturus B

これは私のために働きました:

<VirtualHost *:80>
  ServerName git.example.com
  ServerSignature Off
  DocumentRoot /opt/gitlab/embedded/service/gitlab-Rails/public
  ProxyPreserveHost On

  <Location />
    Require all granted
    ProxyPassReverse http://127.0.0.1:8080
    ProxyPassReverse http://git.example.com/
  </Location>

  RewriteEngine on
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]

  # needed for downloading attachments
  DocumentRoot /opt/gitlab/embedded/service/gitlab-Rails/public

</VirtualHost>

ユーザーをhttpからwww-dataに変更してみてください

VirtualHostファイル:

交換する

Order deny,allow
Allow from all

沿って

Require all granted

そしてあなたの問題は解決されました

0
w3spi