■ 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