「Cgit」の版間の差分
73行目: | 73行目: | ||
====fcgiwrap を使う==== |
====fcgiwrap を使う==== |
||
− | + | 以下を設定することによって {{Pkg|fcgiwrap}} を使って {{ic|git.example.com}} のようなサブドメインで Cgit を表示できます。 |
|
− | + | Nginx の設定: |
|
{{hc|/etc/nginx/nginx.conf|2= |
{{hc|/etc/nginx/nginx.conf|2= |
||
112行目: | 112行目: | ||
The following example will setup cgit using the native cgi plugin for uwsgi. |
The following example will setup cgit using the native cgi plugin for uwsgi. |
||
− | + | まず、{{Pkg|uwsgi}} と {{Pkg|uwsgi-plugin-cgi}} をインストールしてください。 |
|
+ | 以下の server ブロックを設定に追加: |
||
− | Add below server block to your configuration: |
||
server { |
server { |
||
152行目: | 152行目: | ||
}} |
}} |
||
+ | 適切なソケットを起動・有効化 (手動でサービスを起動・有効化することもできます): |
||
− | Enable and start the corresponding socket (you could also enable and start the service manually). |
||
# systemctl enable uwsgi@cgit.socket |
# systemctl enable uwsgi@cgit.socket |
||
# systemctl start uwsgi@cgit.socket |
# systemctl start uwsgi@cgit.socket |
||
158行目: | 158行目: | ||
==Cgit の設定== |
==Cgit の設定== |
||
===基本設定=== |
===基本設定=== |
||
+ | リポジトリを追加する前に、先に {{ic|/etc/cgitrc}} に cgit の基本設定ファイルを作成してください。 |
||
− | Before you can start adding repositories you will first have to create the basic cgit configuration file at {{ic|/etc/cgitrc}}. |
||
# |
# |
||
182行目: | 182行目: | ||
===リポジトリの追加=== |
===リポジトリの追加=== |
||
+ | リポジトリを追加: |
||
− | Now you can add your repos: |
||
# |
# |
||
210行目: | 210行目: | ||
===シンタックスハイライト=== |
===シンタックスハイライト=== |
||
+ | Cgit はソースコードを表示したときのシンタックスハイライトをサポートしています。シンタックスハイライトを有効にするには、{{Pkg|highlight}} パッケージをインストールする必要があります。 |
||
− | Cgit supports syntax highlighting when viewing blobs. To enable syntax highlighting, you have to install the {{Pkg|highlight}} package. |
||
# pacman -S highlight |
# pacman -S highlight |
2015年7月9日 (木) 13:02時点における版
Cgit は git バージョン管理システムの高速なウェブインターフェイスです。キャッシュを使うことで git サーバーの負担を減らしています。
目次
インストール
cgit を利用するには、システムに Apache などのウェブサーバーをインストールする必要があります。
ウェブサーバーの設定
Apache
以下を /etc/httpd/conf/httpd.conf
ファイルの末尾に追加するか /etc/httpd/conf/extra/
ディレクトリのファイルに記述します:
ScriptAlias /cgit/ "/usr/lib/cgit/cgit.cgi/" Alias /cgit-css "/usr/share/webapps/cgit/" <Directory "/usr/share/webapps/cgit/"> AllowOverride None Options None Require all granted </Directory> <Directory "/usr/lib/cgit/"> AllowOverride None Options ExecCGI FollowSymlinks Require all granted </Directory>
次の行をアンコメントして httpd.conf
で cgi モジュールをロードするようにしてください:
LoadModule cgi_module modules/mod_cgi.so
httpd.service
を再起動することで変更が適用されます。
Lighttpd
The following configuration will let you access cgit through http://your.server.com/cgit with http://your.server.com/git redirecting to it. It is not perfect (for example you will see "cgit.cgi" in all repos' url) but works.
Create the file /etc/lighttpd/conf.d/cgit.conf
:
server.modules += ("mod_redirect", "mod_alias", "mod_cgi", "mod_fastcgi", "mod_rewrite" ) var.webapps = "/usr/share/webapps/" $HTTP["url"] =~ "^/cgit" { server.document-root = webapps server.indexfiles = ("cgit.cgi") cgi.assign = ("cgit.cgi" => "") mimetype.assign = ( ".css" => "text/css" ) } url.redirect = ( "^/git/(.*)$" => "/cgit/cgit.cgi/$1", )
And include this file in /etc/lighttpd/lighttpd.conf
:
include "conf.d/cgit.conf"
and restart lighttpd.
Lighttpd サブドメイン
This alternative lighttpd configuration will serve Cgit on a sub-domain like git.example.com with optional SSL support, and rewrites creating nice permalinks:
# GIT repository browser #$SERVER["socket"] == "127.0.0.1:443" { $SERVER["socket"] == "127.0.0.1:80" { #ssl.engine = "enable" #ssl.pemfile = "/etc/lighttpd/ssl/git.example.com.pem" server.name = "git.example.com" server.document-root = "/usr/share/webapps/cgit" index-file.names = ( "cgit.cgi" ) cgi.assign = ( "cgit.cgi" => "/usr/share/webapps/cgit/cgit.cgi" ) url.rewrite-once = ( "^/([^?/]+/[^?]*)?(?:\?(.*))?$" => "/cgit.cgi?url=$1&$2", ) }
Nginx
fcgiwrap を使う
以下を設定することによって fcgiwrap を使って git.example.com
のようなサブドメインで Cgit を表示できます。
Nginx の設定:
/etc/nginx/nginx.conf
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; # Cgit server { listen 80; server_name git.example.com; root /usr/share/webapps/cgit; try_files $uri @cgit; location @cgit { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; fastcgi_param PATH_INFO $uri; fastcgi_param QUERY_STRING $args; fastcgi_param HTTP_HOST $server_name; fastcgi_pass unix:/run/fcgiwrap.sock; } } }
uwsgi を使う
The following example will setup cgit using the native cgi plugin for uwsgi.
まず、uwsgi と uwsgi-plugin-cgi をインストールしてください。
以下の server ブロックを設定に追加:
server { listen 80; server_name git.example.com; root /usr/share/webapps/cgit; # Serve static files with nginx location ~* ^.+(cgit.(css|png)|favicon.ico|robots.txt) { root /usr/share/webapps/cgit; expires 30d; } location / { try_files $uri @cgit; } location @cgit { gzip off; include uwsgi_params; uwsgi_modifier1 9; uwsgi_pass unix:/run/uwsgi/cgit.sock; } }
Add a uwsgi configuration for cgit.
/etc/uwsgi/cgit.ini
[uwsgi] master = true plugins = cgi socket = /run/uwsgi/%n.sock uid = http gid = http procname-master = uwsgi cgit processes = 1 threads = 2 cgi = /usr/lib/cgit/cgit.cgi
適切なソケットを起動・有効化 (手動でサービスを起動・有効化することもできます):
# systemctl enable uwsgi@cgit.socket # systemctl start uwsgi@cgit.socket
Cgit の設定
基本設定
リポジトリを追加する前に、先に /etc/cgitrc
に cgit の基本設定ファイルを作成してください。
# # cgit config # css=/cgit.css logo=/cgit.png # Following lines work with the above Apache config #css=/cgit-css/cgit.css #logo=/cgit-css/cgit.png # Following lines work with the above Lighttpd config #css=/cgit/cgit.css #logo=/cgit/cgit.png # if you do not want that webcrawler (like google) index your site robots=noindex, nofollow # if cgit messes up links, use a virtual-root. For example has cgit.example.org/ this value: virtual-root=/
リポジトリの追加
リポジトリを追加:
# # List of repositories. # This list could be kept in a different file (e.g. '/etc/cgitrepos') # and included like this: # include=/etc/cgitrepos # repo.url=MyRepo repo.path=/srv/git/MyRepo.git repo.desc=This is my git repository repo.url=MyOtherRepo repo.path=/srv/git/MyOtherRepo.git repo.desc=That's my other git repository
If you prefer not having to manually specify each repository, it is also possible to configure cgit to search for them:
scan-path=/srv/git/
If you are coming from gitweb and want to keep the descriptions and owner information, then use:
enable-git-config=1
For detailed documentation about the available settings in this configuration file, please see the manpage (`man cgitrc`).
シンタックスハイライト
Cgit はソースコードを表示したときのシンタックスハイライトをサポートしています。シンタックスハイライトを有効にするには、highlight パッケージをインストールする必要があります。
# pacman -S highlight
Edit /usr/lib/cgit/filters/syntax-highlighting.sh
. Comment out version 2 and comment in version 3.
You may want to add --inline-css
to the options of highlight for a more colorfull output without editing cgit's css file.
# This is for version 2 #exec highlight --force -f -I -X -S "$EXTENSION" 2>/dev/null # This is for version 3 exec highlight --force --inline-css -f -I -O xhtml -S "$EXTENSION" 2>/dev/null
Enable the filter in /etc/cgitrc
source-filter=/usr/lib/cgit/filters/syntax-highlighting.sh
Note: If you edit the /usr/lib/cgit/filters/syntax-highlighting.sh
, the changes will be lost the next time cgit is updated. To avoid this, copy /usr/lib/cgit/filters/syntax-highlighting.sh
to /usr/lib/cgit/filters/syntax-highlighting-edited.sh
, and change /etc/cgitrc
to use the copied file instead
source-filter=/usr/lib/cgit/filters/syntax-highlighting-edited.sh
Alternately you can prevent pacman from extracting the file by adding the following to /etc/pacman.conf
:
NoExtract = usr/lib/cgit/filters/syntax-highlighting.sh
統合
Gitosis
gitosis と統合したい場合、以下の2つのコマンドを実行して apache にフォルダを閲覧する権限を与える必要があります:
# chgrp http /srv/gitosis # chmod a+rx /srv/gitosis
Gitolite
gitolite によって管理されているリポジトリを追加する場合、ウェブサーバーがファイルにアクセスできるようにパーミッションを変更する必要があります。
- http ユーザーを gitolite グループに追加:
# usermod -aG gitolite http
- 今後のリポジトリのパーミッションを変更:
/var/lib/gitolite/.gitolite.rc
を編集してUMASK
を0027
に変更。- 参照: http://gitolite.com/gitolite/gitolite.html#umask
- gitolite ホームディレクトリと既存のリポジトリのパーミッションを変更。以下のコマンドを実行してください:
# chmod g+rX /var/lib/gitolite
# chmod -R g+rX /var/lib/gitolite/repostitories
トラブルシューティング
snapshots が正しく表示されない
If you have enabled scan-path as well as snapshots, the order in cgitrc matters. According to cgit mailing list, snapshots should be specified before scan-path
snapshots=tar.gz tar.bz2 zip scan-path=/path/to/your/repositories
source-filter が正しく機能しない
If you have enabled scan-path, again, the order in cgitrc matters. source-filter should be specified before scan-path, otherwise it will have no effect.