すべての git リポジトリの所有者としてサーバーに設定したユーザーがいます。これは ssh を介して行ったので、そのユーザーには WHM アカウントが設定されていません。このユーザーに「git」という名前を付けました。
私のプライマリ ドメイン exmaple.com で、git.example.com というサブドメインを作成しました。
/home/example/subdomains/git を指すこのサブドメインを、代わりに /home/git/public_html を指すようにします。
なぜ私はそれをしたいのですか?さて、私は自分のサーバー上に自分の git リポジトリ用の Web インターフェイスを構築しています。インターフェイスを 'git' の public_html ディレクトリに貼り付けておくと便利だと思いました。インターフェイスを介してリポジトリに書き込みます。
(パーミッションをいじる必要のない、これを行うためのより良い方法があるのではないでしょうか? idk.)
ここに vhost インクルードを作成することから始めました:
/usr/local/apache/conf/userdata/std/2/example/git.example.com/config.conf
このファイルに追加DocumentRoot /home/git/public_html
し、実行/scripts/ensure_vhost_includes --all-users
して .conf をロールインしましたhttpd.conf.
そしてもちろん、ユーザー 'git' の public_html ディレクトリにアクセスできないため、git.example.com にアクセスしようとすると 403 が返されます。
ユーザー 'git' の public_html にアクセスできるようにするには、config.conf に何を追加する必要がありますか?
更新:これを機能させるためにいくつかのことを試しましたが、403エラーなしでサブドメインにアクセスできるものはありませんでした:
- 同僚が提案し
chgrp -R nobody /home/git/public_html
ましたが、これはうまくいきませんでした。 - ユーザー「git」をグループ「nobody」に追加しようとしましたが、機能しませんでした。ユーザー「nobody」をグループ「git」に追加しても機能しませんでした。(誰もApacheが使用するユーザー/グループではありません)
仮想ホストのインクルード内から SuexecUserGroup と RUidGid を使用して仮想ホストのユーザー/グループの設定を追加しようとしましたが、これも機能しませんでした。(git git に加えて、これらに対して git nobody、nobody nobody、および nobody git を試しましたが、うまくいきませんでした。)
<IfModule !mod_disable_suexec.c> <IfModule !mod_ruid2.c> SuexecUserGroup git git </IfModule> </IfModule> <IfModule mod_ruid2.c> RUidGid git git </IfModule>
useradd
私のウェブホストは、「git」ユーザーのデータをすべてバックアップし、アカウントを消去してから、sshではなく WHM で「git」を作成し、バックアップを復元することを提案しました。これが私が持っている唯一のオプションのようです。