2014/07/27

CentOS 7 を VirtualBox にインストールし、Web サーバーの設定を行う(かなり変更点あり)


はじめに

CentOS 7 がリリースされたということで、VirtualBox に実際にインストールして、Web サーバー (Apache) の設定を行ってみます。

CentOS 7 の主な変更点は以下の Wiki を参照してください。

CentOS 7 では、様々なコマンドや設定が変わっているのでなかなか苦労しました。

 

CentOS 7 のダウンロード

まず、以下のページにアクセスします。

https://www.centos.org/download/

Cent OS  7 から [Everything ISO] というものが存在していますが、以下にあるように Cent OS  7 のインストーラーから直接インストールできないパッケージが含まれています。ここでは、[DVD ISO] をダウンロードします。

あなたが使用しているイメージがどれかわからない場合は、DVD の ISO イメージを選択しましょう。これでインストールを行うとインストールしたいコンポーネントを選択できます。

Everything イメージは CentOS-7 で提供されるすべてのパッケージが収録されています。インストーラーから直接インストールできないパッケージも含まれています。

Manuals/ReleaseNotes/CentOS7/Japanese - CentOS Wiki

pic01

次にミラーサイトの一覧が表示されるので、適当なサイトから ISO イメージ(約 3.9GB)をダウンロードします。環境にもよりますが、1時間くらいかかります。

pic02

VirtualBox 仮想マシンの作成

以下の条件で、VirtualBox 仮想マシンを作成します。

  • タイプ:Linux
  • バージョン:Red Hat (64 bit)
  • メモリ:1024 MB (512 MB 以上)
  • HDD:8 GB

CentOS 7 のインストール

CentOS 7 のインストール前に、デフォルトではイーサネットインターフェースが設定されないことを覚えておきましょう。今回はインストール時に設定します。

多くの人々は、イーサネットインターフェイスがデフォルトで起動されていないと不満を述べてきます。NetworkManager の設定ツールから変更するか、もしくはインストール時に明示的に有効にする必要があります。CentOS-7 FAQ#2 をご覧ください。

Manuals/ReleaseNotes/CentOS7/Japanese - CentOS Wiki

先ほど作成した VirtualBox の仮想マシンを起動します。すると、以下のように起動ディスクの場所を聞いてくるので、フォルダアイコンをクリックして、ダウンロードした CentOS 7 の ISO ファイルを設定します。その後、[起動] をクリックします。

pic03

メニューが表示されるので、[Install CentOS 7] を選択します。

pic04

インストール時の言語設定を聞かれるので、[日本語] を選択して [続行] をクリックします。

pic05

[ネットワークとホスト名] をクリックして、ネットワークの設定を行います。

pic06

Ethernet の設定 を [オン] にし、ホスト名を設定後、[完了] をクリックします。

pic07

[インストール先] をクリックします。

pic08

特に設定することはないので、デフォルトのまま [完了] をクリックします。

pic09

これでインストールが継続可能になるので、[インストールの開始] をクリックします。

pic10

[root パスワード] から root のパスワードを設定します。

pic11

root のパスワードを設定して [完了] をクリックします。ここでは、検証用として脆弱なパスワードをあえて設定していますが、実際の環境では警告がでない強力なパスワードを設定してください。

pic12

次にユーザーを作成するので、[ユーザーの作成] をクリックします。

pic13

ユーザー名とパスワードを設定して、[完了] をクリックします。

pic14

[設定完了] をクリックします。

pic15

全ての設定が完了したので、[再起動] をクリックしてインストールを完了します。

pic16

Web サーバーの設定

再起動後、ログイン画面が表示されるので、先ほど作成したユーザーでログインします。

pic17

以下のコマンドで IP アドレスのあるアダプタ名を確認します。

> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:23:f8:43 brd ff:ff:ff:ff:ff:ff
    inet xx.xx.xx.xx/24 brd 192.168.11.255 scope global dynamic enp0s3
       valid_lft 172543sec preferred_lft 172543sec
    inet6 xxxx::xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

なお、CentOS 7 から ifconfig は推奨されなくなりました。詳しくは以下の記事を参照してください。

ここまで来たら TeraTerm から操作したいと思うので、VirtualBox のネットワーク設定で、割り当てを [ブリッジアダプター] に変更して、以下のコマンドを実行します。

> nmcli c down enp0s3
> nmcli c up enp0s3
> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:23:f8:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.9/24 brd 192.168.11.255 scope global dynamic enp0s3
       valid_lft 172543sec preferred_lft 172543sec
    inet6 xxxx::xxxx:xxxx:xxxx:xxxxx/64 scope link
       valid_lft forever preferred_lft forever

これで表示される IP アドレスを使用して、TeraTerm からログインを行います。

ログインが済んだら、root にユーザーを切り替えます。

> su -

Apache を以下のコマンドでインストールします。

# yum –y install httpd

Apache を起動します。service コマンドがなくなっているようで、別のコマンドにリダイレクトされるので、そちらのコマンドで Apache を起動します。

# systemctl start  httpd.service

OS 起動時に httpd が起動するように設定します。chkconfig コマンドはなくなったようです。

# systemctl enable httpd.service

設定が正しく行われているか確認します。従来は chkconfig -- list を使用しましたが、今後は以下のコマンドを利用するようです。

# systemctl list-unit-files | grep httpd
httpd.service                               enabled

CentOS 7 では、iptables が firewall というものに置き換わったようです。今後は、firewall を利用してポートの公開を制御します。一応、iptables-servies をインストールすれば、従来通り iptables が使用できるようですが、大きな変更ですね。

下記のトピックを参照すれば、iptables を有効にする方法が分かると思います。

折角なので、ここでは firewall を使用してポートを開放してみます。

firewall には、zone という考え方があります。詳しくは下記記事で解説されています。

デフォルトの zone は、public になっています。/etc/firewalld/firewalld.conf で、DefaultZone=public として設定されています(firewall-cmd でも設定可能)。

HTTP (80) ポートを開放するには、以下のコマンドを実行します(参考)。

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --reload

なお、firewall の起動と終了は以下のコマンドを実行します。

# systemctl start firewalld
# systemctl stop firewalld

これで、HTTP (80) ポートが開放されたので、ブラウザでアクセスしてみます。以下のように表示されるので、設定がうまくいったことが分かります。

pic18

おわりに

CentOS 7 を VirtualBox にインストールして、Web サーバー (Apache) が動作するまでの設定方法をご紹介しましたが、いかがだったでしょうか。

service や iptables などの基本的なコマンドや設定が使えなくなっているのは、実運用上かなり影響が大きいと思います。

特に、iptables などは蓄積されたものがあるでしょうから、簡単には移行できないと思います。その場合は、iptables-services で互換性を維持し、徐々に移行を進めていくことになるでしょう。

しかし、Web サーバーを設定するだけで、これだけの変更点があるのですから、システム全体を CentOS 7 に移行するのは、なかなか大変だと思います。今からでも、徐々に移行の準備を進めた方がいいかもしれませんね。


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

ping も通る、SSHで接続できる、ゲストOS自身からWGETもできる、なのになぜWEBページがホストOSや他の同じネットワーク内マシンのブラウザに表示できないの……!? と途方に暮れているところにこの記事が見つかりました。感謝の気持ちでいっぱいです。ありがとうございました

Firewallを使って80番ポートを開けるコマンドですが
permanentの-(ハイフン)が1つ足りないみたいです。
(firewall-cmd: error: unrecognized arguments: -permanentと吐かれる)

修正をお願いします。

記事を修正しました。
情報ありがとうございます。

こちらの記事でブラウザ表示することができました、ありがとうございます!

nmcli c up enp0s3

こちらのコマンドをvirualboxを起動する度に打たないとssh接続ができないのですが、
毎度打たなくても接続できる方法はございますでしょうか・・・?

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    現在、Enty で支援を受け付けています。もしよければご支援ください。



    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから