WEB制作者向け無料テーマ「Arkhe」をリリースしました

mac OS High SierraにVirtualBox+VagrantでCentOS7仮想環境を構築【#2】 ~ Apacheでwebサーバー立ち上げまで ~

前回、Mac(High Sierra)に VirtualBox + Vagrant で CentOS7 の仮想マシンを立ち上げ、接続するところまでをメモしました。

今回はその続きで、CentOS7 に Apacheでwebサーバーを立ち上げ、ブラウザで「Hello, World!」を表示するまでやっていこうと思います。

目次

仮想マシンにログイン

まずは前回立ち上げた仮想マシンへログインしておきます。(前回の記事から続きで読んで下さっている方はここは飛ばしてもらっても大丈夫です。)

ターミナルを開き、前回作成した「centos7」ディレクトリへ移動します。

$ cd ~/centos7

移動できたら、Vagrantで仮想マシンを起動します。

$ vagrant up

少し時間がかかるかもしれませんので、待ちましょう。

起動ができたら、SSH接続します。

$ vagrant ssh

接続できましたか?

では、webサーバーを立ち上げていきましょう!

httpd(Apache)のインストール

まずは、webサーバーに必要なhttpdをインストールします。

[vagrant@localhost ~]$ sudo yum -y install httpd

だーーっといろんなメッセージが流れたあと、Complete!と出ればOK.

もちろん、rootユーザーになってからでもOKです。

[vagrant@localhost ~]$ sudo su -
[vagrant@localhost ~]# yum -y install httpd

httpdの起動

インストールできたら、httpdを起動させましょう。

httpdの起動

[vagrant@localhost ~]$ sudo systemctl start httpd.service

httpd.serviceは省略してhttpdだけでもOKです。(移行、systemctlコマンド内のサービス名は省略させていただきます。)

centOS7では、serviceではなくsystemctlを使ってサービスの起動や停止などを行いますので、古いCentOSになれている人は注意して下さい。

一応、以前までのコマンドも使えます。

serviceコマンドで起動

[vagrant@localhost ~]$ sudo service httpd start
Redirecting to /bin/systemctl start httpd.service

その際、上記のように「systemctl にリダイレクトされましたよ」という旨のメッセージが出てきます。最初はびっくりしますが、特に気にしなくて大丈夫です。

起動の確認

systemctlでは、[  OK  ] のような表示が出てこないので、ちゃんと起動できたかどうかわかりません。

不安な場合は確認しておきましょう。

サービスの起動状態を確認する時は、systemctl statusコマンドを使います。

httpdの起動状態を確認

[vagrant@localhost ~]$ sudo systemctl status httpd

表示されるメッセージ

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2018-05-26 08:09:20 UTC; 4min 14s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 2445 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─2445 /usr/sbin/httpd -DFOREGROUND
           ├─2446 /usr/sbin/httpd -DFOREGROUND
           ├─2447 /usr/sbin/httpd -DFOREGROUND
           ├─2448 /usr/sbin/httpd -DFOREGROUND
           ├─2449 /usr/sbin/httpd -DFOREGROUND
           └─2450 /usr/sbin/httpd -DFOREGROUND

May 26 08:09:20 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 26 08:09:20 localhost.localdomain httpd[2445]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Se...his message
May 26 08:09:20 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

ごちゃごちゃ情報が出てきますが、起動状態に関する情報は3行目の「Avtive:」の項です。

active (running)」と出ていれば、無事に起動中です。

httpdの停止と再起動コマンド

停止と再起動についてもメモしておきます。

停止

$ sudo systemctl stop httpd

再起動

$ sudo systemctl restart httpd

次回からhttpdを自動で起動するように設定しておく

仮想マシンに接続するたびに、わざわざコマンドで httpd を立ち上げるのは面倒です。

なので、仮想マシンの起動と一緒に httpd も起動されるように設定しておきましょう。

CentOS7 では自動起動の設定もsystemctlで行います。(chkconfigに慣れている人は注意しましょう。)

httpdの自動起動設定

[vagrant@localhost ~]$ sudo systemctl enable httpd

自動起動設定の確認

ちゃんと設定できたか確認しておきましょう。

httpdの自動起動の設定を確認

[vagrant@localhost ~]$ systemctl is-enabled httpd

「enabled」と表示されればOKです。

ちなみに、systemctlで管理できるサービス全ての起動設定を一気に確認することもできます。

[vagrant@localhost ~]$ systemctl list-unit-files -t service

自動起動設定の解除

解除したい場合は、enableではなく、disableを使います。

例:httpdの自動起動解除

$ sudo systemctl disable httpd

ファイアーウォールを停止しておく

ローカル環境なので、ファイアウォールは停止しておいた方が作業しやすいかと思います。無駄にブロックとかされずに済むので。

デフォルト状態ですでに停止状態だったので特に何もしなくていいと思いますが、一応確認してみましょう。

ファイアウォールの起動状態を確認

[vagrant@localhost ~]$ sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
   Docs: man:firewalld(1)
   ....

上記のように、「Active: inactive(dead)」となっていればOKです。

もしavtive(running)となっていた場合は停止しておきましょう。

ファイアウォールの停止

$ sudo systemctl stop firewalld

仮想ローカルサーバーへアクセスする

まずは仮想マシンのhttpdサーバーへアクセスするためのIPアドレス(プライベートネットワーク)を有効にしておきましょう。

ここまで放置してきた「Vagrantfile」を編集していきます。

まずは仮想マシンからログアウト

[vagrant@localhost ~]$ exit

ログアウトができたら、centos7ディレクトリにある「Vagrantfile」を開きます

Vagrantfileの編集

$ vi Vagrantfile

プライベートネットワークに関する記述を探します。

以下のような記述を見つけて下さい

# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"

上記の3行目のコメントを解除します。

こう

# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10"

コメントが解除できたら:wqで保存し、終了しましょう。

*サーバー初心者の方へ:viエディタの使い方をざっくりとだけ説明しておきますと、「i」キーで編集モードに移行し、編集が終われば「esc」キーで編集モードを抜け、コマンドモードへ戻ります。その状態で「:wq」と入力してエンターを押すと、保存して終了ができます。間違って編集してしまった場合は「:q!」で保存せずに強制終了できます。

設定ファイルを書き換えたので、一度 Vagrant を再起動させます。

Vagrantを再起動

$ vagrant reload

少し時間がかかりますので待ちましょう。

再起動が完了すれば、「192.168.33.10」でhttpdサーバーへアクセスできるようになっているはずです!

ブラウザで確認してみましょう。

testing

このようなテスト画面が表示されればOK!

index.htmlの作成

さて、すでにwebサーバーは立ち上がっているので、ドキュメントルートにhtmlファイルを作成し、ブラウザで「Hello, World!」と表示してみましょう。

CentOSのhttpdのドキュメントルートは「/var/www/html」なので、ここに index.html ファイルを作成します。

ドキュメントルートにindex.htmlファイルを作成・編集

[vagrant@localhost ~]$ sudo vi /var/www/html/index.html

iで編集モードに入り、

<h1>Hello, World!</h1>

と記述し、escキーで編集モードを抜け、:wqで保存して終了します。

ブラウザを更新し、確認してみると...

hello,world!

「Hello, World!」と表示されます!

おわりに

お疲れ様でした。今回はCentOS7仮想マシンに Apache でwebサーバーを立ち上げてみました。

次回は、ドキュメントルートの「/var/www/html」をローカルマシンとホストOS(mac)側との共有フォルダに割り当てる方法までをメモしていこうと思います!

共有フォルダを使えると、mac上で編集したファイルがすぐに仮想マシンのwebサーバーにも反映されてすごく便利なので、是非参考にしてみて下さい!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次