#開発環境構築 CentOS7編 【2】
前回、開発環境構築 CentOS7編【#1】Macに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の編集(Finderからテキストエディタで開いて編集するとエラーになってしまったのでvimで編集)
$ 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で保存し、終了しましょう。
設定ファイルを書き換えたので、一度 Vagrant を再起動させます。
・Vagrantを再起動
$ vagrant reload
少し時間がかかりますので待ちましょう。
再起動が完了すれば、「192.168.33.10」でhttpdサーバーへアクセスできるようになっているはずです。
ブラウザで確認してみましょう。
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!」と表示されます!
次回は、開発環境構築 CentOS7編【#3】 PHPとMySQLのインストールについてメモしていこうと思います。
※参考mac OS High SierraにVirtualBox+VagrantでCentOS7仮想環境を構築【#2】 ~ Apacheでwebサーバー立ち上げまで ~