CentOS 7, Apache, nginx, Gitをインストール

自宅のサーバーマシンにGitサーバーを入れようとしたのですが,現状がWindows 7にApacheという構成でいろいろ面倒くさそうだったので,今後のことも考えてCentOSをセットアップしました.この記事は何をやったかのメモです.

最終的な構成は以下の通りです.

  • Hyper-Vの仮想マシン上にCentOS 7 (x86-64) をインストール
  • nginxがTCP Port 80 (HTTP) とTCP Port 443 (HTTPS) でListen
  • ApacheがTCP Port 8080でListen
  • 外部からはTCP Port 80とTCP Port 443にのみアクセス可能で,nginxのリバースプロキシを通して間接的に,TCP Port 8080のApacheや,LAN内の別のWebサーバーにアクセス可能.
  • ApacheからGitのリポジトリにアクセス可能

最終的にやったことは以下の通りです.

  • Hyper-Vの仮想マシン上にCentOS 7 (x86-64) をインストール
  • Apacheのインストールと設定
  • nginxのインストールと設定
  • Gitのインストール
  • HTTPSからGitのリポジトリにアクセスできるよう設定

CentOS 7 のインストール

  1. CentOSのサイトからCentOS 7 x86-64のDVD ISO (CentOS-7-x86_64-DVD-1611.iso) をダウンロード
  2. Hyper-Vで仮想マシンを作成.ネットワークインターフェースはEthernet 1つ.メモリはなんとなく3GBにした.
  3. 仮想マシンを起動しOSをインストール.インストール設定はお好みだが今回は以下のようにした.
    • 言語は日本語を選択.
    • インストールするソフトウェアは最小限を選択.
    • ネットワーク設定はDHCPにして,ルーターのほうでIPアドレスを指定.
  4. インストールが完了したら再起動.
  5. 最小限のインストールにしたのでGUI環境はなく,起動すると真っ黒の画面にログインのプロンプトが現れる.SSHはすでに使えるようなので,ここからの作業はすべてSSHで行う.

ファイアウォールの設定

OSをインストールした時点でファイアウォールがかかっているので,HTTP(とHTTPS)を通すように設定ファイルを編集する.

# vi /etc/firewalld/zones/public.xml

以下を追記する.

<service name="http"/> <service name="https"/>

最後に設定をリロードする.

# firewall-cmd --reload

編集するファイルは環境によって違うかもしれない.編集すべきファイルの確認などはここを参考に.4.5. ファイアウォールの使用 (Red Hat Customer Portal)

Apacheのインストール

インストールとサービスの開始.

# yum -y install httpd # systemctl enable httpd.service # systemctl start httpd.service

参考: Apache httpd 2.4 を CentOS 7 に yum でインストールする手順 | WEB ARCH LABO

設定ファイルは/etc/httpd/conf/httpd.confにあり,そのファイル内でさらに/etc/httpd/conf.d/*.confを読み込むように記述されている.基本的な設定ファイルの書き方はOSとかに依存しないので,ググりながら適当に.

nginxのインストール

以下のサイトを参考にnginxをインストールしてリバースプロキシなどを設定.

http://qiita.com/MuuKojima/items/afc0ad8309ba9c5ed5ee

port 8080に中継されるようにリバースプロキシを設定して,ブラウザで接続すると,502 bad gatewayと表示されてしまった.ログを見ると,port 8080へ接続しに行こうとして,permission deniedになっている.調べてみると,SELinuxによってHTTPサーバーの外部通信が禁止されているのが原因らしいので,以下のコマンドで許可する.

# setsebool -P httpd_can_network_connect 1

参考: django - (13: Permission denied) while connecting to upstream:[nginx] - Stack Overflow

GitのインストールとApacheの設定

以下のサイトを参考に,Gitをインストールし,ApacheとSELinuxを設定し,Gitのリポジトリを作成.

http://www.torutk.com/projects/swe/wiki/CentOS_7でapache経由のgitサーバーを構築

ただし,ここで使われているsemanageコマンドが初期状態だと存在しない.以下のサイトによれば,# yum install policycoreutils-pythonすればいいらしい.

https://weblabo.oscasierra.net/openssh-sshd-centos7-change-port/

最後に,ApacheでBasic認証などをかければ完成.Subversionは,ユーザーごとに読み書きの権限を設定できたが,Gitにはそういう仕組みはなく,リポジトリにアクセスできる人はみんな読み書きできるらしい.

技術系 > ソフトウェア | comments (0) | trackbacks (0)

コメント

コメント投稿






トラックバック