【トラブル】【HG】 Mercurial(HG) でのトラブルシューティング

■ Push時にエラー「Error 500: Permission denied」が表示

詳細

 * 以下の環境構築下で、Mercurialを設定し、ソースをPushしたら
   エラー「Error 500: Permission denied」が表示した
~~~~~~~~
 * OS          : CentOS 7.2.1511
 * HTTP Server : Apache HTTP Server 2.4.6
 * Mercurial   : Mercurial 2.6.2
~~~~~~~~

原因

 * Apacheが所有者になっていなかった

解決策

 * Apacheを所有者にする

sudo chown -R apache:apache /usr/local/hg

 * 全体の手順は、以下の関連記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/36290337.html

Mercurial設定後、ブラウザアクセスした際にエラー「403 Forbidden」が表示

http://blogs.yahoo.co.jp/dk521123/36290337.html
で、 Mercurialを設定後にブラウザでアクセスした際(※)に
下記のエラー内容が表示されてしまう

※
上記の関連記事「Apacheとの連携」の手順6「ブラウザを開き、
『http://【(localhostなど)】/hg』でアクセスして、
 Title「Mercurial repositories index」が表示されたらOK」の事

エラー内容

403 Forbidden
You don't have permission to access /hg on this server.

原因

以下の2つが要因として考えられる
[1] ディレクトリ hg の所有者がapacheになっていないため
[2] SELinuxがenforcing モードになっているため

解決策

[1] ディレクトリ hg の所有者がapacheになっていない
ディレクトリ hg をapacheに変更する
http://blogs.yahoo.co.jp/dk521123/36290337.html
の「Apacheとの連携」の手順3より抜粋

# chownの-Rオプションで指定ディレクトリ配下の所有者をapache:apacheに変更
sudo chown -R apache:apache /usr/local/hg
[2] SELinuxがenforcing モードになっている
SELinuxをpermissiveモードにし、一旦、OSを再起動
http://blogs.yahoo.co.jp/dk521123/36290337.html
の「Apacheとの連携」の手順1より抜粋

 * エディタで /etc/sysconfig/selinux を開き、 SELINUX= の値を permissive に変更

sudo vi /etc/sysconfig/selinux
~~~~
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
~~~~
reboot

関連記事

LinuxMercurial(HG) ~環境構築編~

http://blogs.yahoo.co.jp/dk521123/36290337.html