Windows 8 ProのHyper-VにCent OS 6.4をインストール

Windows 8 ProのHyper-VにCent OS 6.4をインストールし、Apache、MySQL、PHPを設定してLAMP環境を構築しました。インストール手順、設定などを備忘録として記録します。

きっかけ

WindowsにインストールしたApacheが頻繁にハングアップして、テスト環境として不満がありました。

実際に使用しているサーバー環境はLAMP環境なので、そのテスト環境としてもLAMP環境を使用すべきと思いました。

インストール後の状況

実際のサーバーに近い環境がPC内の仮想環境に構築されたため、WindowsにインストールしたApache環境よりも適切なテスト環境で、便利です。Windows上のApacheはなぜか頻繁にハングアップしていましたが、この環境はそのようなことはなく、快適です。

インストール時の設定

Hyper-V仮想マシン

  • メモリは1024MB
  • ネットワークアダプタ-外部ネットワークの仮想スイッチを使用(レガシネットワークアダプタのインストール不要)

Cent OS 6.4

  • Cent OS 6.3まで必要だったHyper-V統合サービスのインストールが不要
  • ホスト名を入力する画面で、「次」ボタンをクリックする前に、「ネットワークの設定」ボタンでeth0を設定。
  • eth0の設定変更。IPv4のセッティングタブをクリック。方式は手動(IPアドレスは固定。仮想スイッチに外部ネットワークを使用している場合はDHCPで設定も可能)。サブネットマスクに24または255.255.255.0と設定。ゲートウェイとDNSサーバーに192.168.1.1と設定。タブの外側の「自動接続する」のチェックボックスにチェックを入れる。
  • 「システムクロックでUTCを使用」のチェックを外す。
  • インストールのタイプはデフォルトの「既存の Linux システムを入れ替える」のまま。
  • インストールするソフトの選択画面では、「Minial Desktop」(GUIでの最小構成)を選択し、「今すぐカスタマイズ」のラジオボタンにチェックを入れ、デスクトップ→汎用デスクトップ(GNOMEデスクトップ)にチェックを入れる。(このチェックを入れずにインストールに進んでしまいやすいので、要注意。インストールが始まると戻れず、時間がかかります。)
  • 「ネットワーク上で日付と時刻を同期化します」にチェックを入れ、国内のNTPサーバーを追加、選択します。
  • Kdumpはメモリ不足で設定できないため、そのまま終了します。
  • ログイン後、ネットにつながらない場合、下記のように設定ファイル/etc/resolv.confに追記します(nameserverのIPアドレスにはeth0に設定したDNSサーバーのIPアドレスが自動で設定されるようです)。
nameserver 192.168.1.1
  • システムの更新を実行。yum-fastestmirrorはインストール済みかもしれません。
# yum install yum-fastestmirror
# yum update

Apache

  • 設定ファイル/etc/httpd/conf/httpd.confを編集。
  • ServerAdminにメールアドレス設定。
  • ServerName設定。
  • KeepAlive Onに変更し、大量の画像を使用しているページ等で表示高速化。
  • 下記のコマンドでhttpd.confの構文チェック。
# service httpd configtest
  • 下記のようにApacheを起動。
# service httpd start
  • サービスを自動起動するには下記のように入力。
# chkconfig httpd on
  • この段階で、Cent OS上のWebブラウザでeth0に設定したIPアドレスにアクセスすると、Apacheの初期画面が表示されることを確認。Windows上のWebブラウザからアクセスしても、Cent OSのファイアウォールの初期設定で遮断され、表示されない。

iptables

  • ファイアウォールの設定を確認
# iptables -L --line-number
  • ファイアウォールでhttp、httpsを許可。Windowsからアクセス可能になる。
# iptables -I INPUT 5 -p tcp --dport http -j ACCEPT
# iptables -I INPUT 5 -p tcp --dport https -j ACCEPT
  • iptablesを保存
# service iptables save

MySQL

PHP

  • PHP5.4は下記の手段でインストールしました。
    http://www.oss-d.net/php/5.4s/install(リンク切れになっていました。2016/8/16)
  • 別の仮想マシンにPHP5.3をインストールする際に下記の手段を参考にしました。
    http://www.webcreator-net.com/tips_memo/server/20120404083023.html
    (リンク切れになっていました。2016/8/16)
    5.3のインストールでは、yum info phpで5.3がインストールされることを確認したので、yum install phpなどと、参考サイトに記載されていたphp53の部分はすべてphpに書き換えてインストールしました。

phpMyAdmin

  • 下記の手段を参考にして、インストールしました。
    http://d.hatena.ne.jp/addition/20130411/1365648937
  • これでhttp://サーバーのアドレス/phpMyAdminでアクセスしても、Forbiddenとなりアクセスできません。SELinuxというセキュアOSを無効化します。
# vi /etc/selinux/config
SELINUX=disabled

Samba

  • Windowsから共有ディレクトリにアクセス可能にするため、下記のようにiptablesを設定。 7としている部分は、iptables -L –line-numberとして表示されるChain INPUT中のREJECTが始まる行番号に合わせます。Windowsの共有機能を利用するため、ポートを許可します。
# iptables -I INPUT 7 -p tcp --dport 139 -j ACCEPT
# iptables -I INPUT 7 -p udp --dport 137 -j ACCEPT
# iptables -I INPUT 7 -p udp --dport 138 -j ACCEPT
# iptables -I INPUT 7 -p tcp --dport 445 -j ACCEPT

iptablesコマンドで設定した内容はシステムを再起動すると失われてしまうので、下記のコマンドで保存します。

# service iptables save

  • Sambaのインストール、設定は下記を参考にしました。
    http://centossrv.com/samba.shtml
    http://d.hatena.ne.jp/camellia1977/20120818/1345288125(リンク先の記事が削除されたようなので、リンク解除しました。2015/8/1)
  • Sambaの設定でつまづいたときには、下記を参考にすると原因究明、解決に役立つと思います。
    日本Sambaユーザ会-Sambaが動作しないときの診断方法:
    http://www.samba.gr.jp/doc/diag.html

viエディタの設定

  • Sambaを通してWindowsからコピーしたテキストファイルを開くと文字化けしました。そこで、つぎのような設定を行いました。
# vi ~/.vimrc
set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf8

mod_rewriteの設定