CentOS:内向き開発サーバ 3)まとめ
社内向け開発サーバ「turmeric.gf」がいよいよ仕上がってきた。
ここまでにやったこと
- Mac Server上に仮想サーバ(CentOS)を構築
- Webサーバにバーチャルホストを構築
- ネットワーク内からドメイン名でアクセスできるようにDNS設定
- DNSサーバを仮想のCentOSからMac Server(snow leopard)に変更して拡張性を確保
- FTPサーバ構築(内部ネットワークからFTPでファイル設置)
- PHP/MySqlサーバ構築
- ファイルサーバsamba構築(開発領域にエクスプローラでアクセスできるように)
これで一通り、開発サーバのベース要件を満たしたかな。
ベース要件(おさらい)
- 今後追加できるような開発領域(サーバ)を設計する。
- DNSは仮想OSとは別に構築し、仮想OSの追加が柔軟にできるようにする。
- 仮想OSのWebサーバは、バーチャルホストで複数のサイトがサブドメイン形式で運営できるようにする。
- 3のバーチャルホストは、社内ネットワークからドメインでアクセスできるようにする。
- Webサーバは、PHP/MySQL/Perl等社外公開サーバと同等のプログラム環境にする。
- バーチャルホストのルートディレクトリには、FTPでアクセスできるようにする。
- バーチャルホストのルートディレクトリには、FTP以外に、Windowsのエクスプローラでもアクセスできるようにし、ファイルの追加・変更・削除の作業ができるようにする。
今後の作業
- SSLの実装
- バックアップの設計(Mac ServerのTimeMachineで実装予定)
- バーチャルホスト作成から、開設までの手順をドキュメント化
- 開発領域にサイトを順次移設
CentOS:内向き開発サーバ 2)バーチャルホストで複数のサイトが作れるようにする。
社内の開発用Webサーバなので、1つのサーバで複数のサイトが構築できるよう、バーチャルホストを設定。
ゴール
サブドメインで複数のサイトをホストできる環境を作る。
手順
httpd.confを修正し、バーチャルホストを有効に。
[root@turmeric ~]# mkdir /var/www/html/virtual/httpdocs [root@turmeric ~]# chmod 777 /var/www/html/virtual/httpdocs [root@turmeric ~]# vi /etc/httpd/conf/httpd.conf
viでhttpd.confを編集
{中略} NameVirtualHost *:80 ←有効に。 {中略} <VirtualHost *:80> ServerName turmeric.gf DocumentRoot /var/www/html ErrorLog logs/error_log CustomLog logs/access_log combined env=!no_log </VirtualHost> <VirtualHost *:80> ServerName virtual.turmeric.gf DocumentRoot /var/www/html/virtual ErrorLog logs/virtual-error_log CustomLog logs/virtual-access_log combined env=!no_log </VirtualHost>
httpdを再起動
[root@turmeric ~]# service httpd configtest Syntax OK [root@turmeric ~]# /etc/rc.d/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
DNSの設定ファイルを修正して仮想ホストを追加。
- turmeric.gf.dbを編集。仮想ホストを追加。
- DNSサーバを再起動して設定を反映。
[root@turmeric ~]# vi /var/named/chroot/var/named/turmeric.gf.db
viでturmeric.gf.dbを編集(virtual.turmeric.gfになるように。)
{中略} virtual IN CNAME turmeric.gf
DNSサーバを再起動
[root@turmeric ~]# /etc/rc.d/init.d/named restart named を停止中: [ OK ] named を起動中: [ OK ]
バーチャルホストはすんなりと設定完了!(・∀・)v
これで、新しい案件が発生するたびにバーチャルホストを追加し、サブドメインでアクセスできるようになりました。
CentOS:内向き開発サーバ 1)DNSサーバを構築し、ドメイン名でサーバにアクセスする。
CentOSで内向きの(外部に公開しない)開発サーバを構築した際に躓いたポイントをメモ。
まずはDNSサーバを構築して、ドメイン名でサーバを参照できるようになるまで。
ゴール
- IPアドレスではなく、ドメイン名で開発サーバにアクセスできるようにする。
手順
DNSサーバのインストール・設定については次を参考に進めた。
http://www.tooyama.org/bind-lan.html
- 設定ファイルをコピー
- BINDの設定ファイルを編集して、内部IP等の設定。
- ヒントファイル作成
- ゾーンファイル作成
- ルートゾーンの更新
- 正引きの設定
- 逆引きの設定
[root@turmeric ~]# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf [root@turmeric ~]# vi /var/named/chroot/etc/named.conf [root@turmeric ~]# vi /var/named/chroot/etc/named.root.hints [root@turmeric ~]# vi /var/named/chroot/etc/named.turmeric.gf.zone [root@turmeric ~]# dig @a.root-servers.net . ns > /var/named/chroot/var/named/named.ca [root@turmeric ~]# vi /var/named/chroot/var/named/turmeric.gf.db [root@turmeric ~]# vi /var/named/chroot/var/named/11.168.192.in-addr.arpa.db
そしてBINDを起動… と思ったら[失敗](;´Д`)
[root@turmeric ~]# /etc/rc.d/init.d/named start named を起動中: [失敗]
ログを確認
[root@turmeric ~]# less /var/log/messages
なんだかパーミッションのエラーが出ていることが分かり、参考ページ上部に「権限を修正」という項目があったのを思い出して設定。
[root@turmeric ~]# chown root:named /var/named/chroot/etc/named.conf
今度こそと願ってBINDを起動… 今度は成功!
[root@turmeric ~]# /etc/rc.d/init.d/named start named を起動中: [ OK ]
自動起動を設定してひと段落。
[root@turmeric ~]# chkconfig named on
POINT1)ルーターのDHCPサーバ機能にDNSサーバの通知IPを設定する。
ここまではある程度想定通りに進行したが、いろんな参考ページで書かれている次の作業の詳細が分からず行き詰まった。
この後の作業
http://www.tooyama.org/bind-lan.html
DNSサーバーは構築できましたが、このDNSサーバーで名前解決するためにクライアント側でDNSの設定を変更する必要があります。
DHCPサーバーによりIPを取得している場合は、DHCPサーバー側のDNS設定を変更してください。
■問合せ先DNSサーバーをLinuxサーバーに変更
http://centossrv.com/bind-lan.shtml
(1)問合せ先DNSサーバーをLinuxサーバーに変更
ルーターのDHCP設定でDNSサーバーのIPアドレスをLinuxサーバーのIPアドレスに変更する
次の参考サイトに詳しい情報があったのでこれを参考にルーターの設定を変更。
http://www.miloweb.net/bind.html#12
BUFFALOルータの場合は、
[Internet/LAN]>[LAN]画面で[拡張設定を表示する]にチェック。出てきた画面で次の設定を行った。
これで行けるかな?と思って、CentOSから[dig]、クライアントマシンから[nslookup]してみる。
CentOSの[dig]では問題がない。つまり、BINDの設定自体はOKのようだ。
[root@turmeric ~]# dig turmeric.gf {中略} ;; ANSWER SECTION: turmeric.gf. 86400 IN A 192.168.11.18
[root@turmeric ~]# dig -x 192.168.11.18 {中略} ;; ANSWER SECTION: 18.11.168.192.in-addr.arpa. 86400 IN PTR turmeric.gf.
しかし、クライアントから[nslookup]したら、DNSサーバを見に行けていない。
C:\Users\867>nslookup Default Server: UnKnown Address: 192.168.11.18 DNS request timed out. timeout was 2 seconds.
やはり、クライアントマシンからブラウザでドメインをたたいても表示されない。
POINT2)CentOSとルーター、両方でポートを許可。
原因と思われたのが次に紹介されている作業。
■BIND起動
http://centossrv.com/bind.shtml
(2)UDPの53番ポートとTCPの53番ポートをオープンする
ルーターの設定で、UDPの53番ポートとTCPの53番ポートへのアクセスをサーバーに転送するようにする
(12)ファイアウォールでtcp:53とudp:53ポートを開けます。
http://www.tooyama.org/bind-lan.html
ルーターでポートを開く
まずはルーターの設定で「UDPの53番ポートとTCPの53番ポートを開く」。
BUFFALOでは、これを「ポートの交換」と称し、かなり分かりにくいところに設定があったので手こずった。
BUFFALOルータの場合は、
[ゲーム&アプリ]>[ポート交換]
これだけかと思ったが、CentOSの方にも「ファイアウォールでtcp:53とudp:53ポートを開く」という作業が必要だった。つまり、双方で許可する必要があるということ。これは、本を読み返して発見。
CentOSのファイアウォール設定を変更
CentOSにSSHでログインし、[iptables]の設定。
[root@turmeric ~]# iptables -I RH-Firewall-1-INPUT -p udp -m udp --dport domain -j ACCEPT [root@turmeric ~]# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport domain -j ACCEPT [root@turmeric ~]# /etc/rc.d/init.d/iptables save ファイアウォールのルールを /etc/sysconfig/iptables に保存中[ OK ]
設定内容を確認し、追加を無事確認。
[root@turmeric ~]# iptables -L {中略} Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:domain ←コレと ACCEPT udp -- anywhere anywhere udp dpt:domain ←コレ {後略}
これでいけるか?と思ったが、本を読み返すとWebサーバの導入部分でもファイアウォールの設定が必要な記述を発見。そもそもこれが設定されてないぞ。ということで設定。
[root@turmeric ~]# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport http -j ACCEPT [root@turmeric ~]# /etc/rc.d/init.d/iptables save ファイアウォールのルールを /etc/sysconfig/iptables に保存中[ OK ]
最後にhttpdを再起動
[root@turmeric ~]# /etc/rc.d/init.d/httpd restart
これでゴール到達!無事ドメイン名でWebサーバにアクセスできるようになりました(σ・∀・)σゲッツ!!!
ちなみに、社内サーバの名前は「香辛料」シリーズ。
今回のWebサーバは「turmeric(ターメリック)」かわいいでしょ?
さて次は、バーチャルホストの設定です。