
今回は、vagrantを使用して、virtualboxにcentosを入れ、apacheでwebサーバ公開するまでを行います。
まず、vagrant(ベイグラント)とは、
Vagrant(ベイグラント)は、FLOSSの仮想機械を構築するためのソフトウェアである[2]。構成情報を記述した設定ファイル (Vagrantfile) を元に、仮想環境の構築から設定までを自動的に行うことができる[3]。(以下略)
事前準備
環境は、Windowsで進めていきますが、
Macでもほとんど同様の手順で問題ないと思います。
事前準備として、
・virtualboxのダウンロード
・vagrantのダウンロード
が必要です。
既にダウンロード済みの人は飛ばしてください。
ダウンロードが済んでいない方は以下のリンクからどうぞ。
virtualboxはこちら。
https://www.virtualbox.org/wiki/Downloads
vagrantはこちら。
仮想環境を作成
まずコマンドプロンプトを開きます。
(windowsキー + R を同時押しし、cmdと入力すると開けます)

コマンドプロンプトが開けたのを確認したら、以下のコマンドを入力します。
> vagrant box add centos/7その後、どの仮想マシンを使用するか聞かれますので、3番のvirtualboxを選択します。
もし、ここでエラーが出た場合、vagrantがインストールできていない可能性があります。
==> vagrant: A new version of Vagrant is available: 2.2.6 (installed version: 2.2.4)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
==> box: Loading metadata for box 'centos/7'
    box: URL: https://vagrantcloud.com/centos/7
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop
Enter your choice: 3
==> box: Adding box 'centos/7' (v1905.1) for provider: virtualbox
The box you're attempting to add already exists. Remove it before
adding it again or add it with the `--force` flag.
Name: centos/7
Provider: virtualbox
Version: 1905.1私の場合は、既にboxが存在していたので、alredy existsと表示されましたが、boxが存在していない場合は、Successfully が表示されるようです。
念のため、boxが追加されたか確認します。
> vagrant box list
centos/7 (v1905.1)これで、boxが追加されました。
次に、vagrantfileを作成します。
このファイルは、仮想環境を作成する際の設定ファイルです。
まずは、vagrantfileを作成するためのディレクトリを作成し、移動します。
mkdir centos7
cd centos7まず初期設定をします。
vagrant init centos/7こちらのコマンドを入力すると、以下のメッセージが表示され、「vagratnfile」が作成されます。
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.念のため、vagrantfileが作成されたことを確認しましょう。
> dir仮想マシンを起動する
> vagrant upこれで、仮想環境の起動ができました。
virtualboxから確認すると、「実行中」となっていることがわかると思います。
次にIPアドレスを設定します。
一度、仮想環境を停止させます。
> vagrant haltその後、vagrantfileを開き、編集します。
手順通りに進めていれば、vagrantfileは、「C:Usersユーザ名centos7」に保存されていると思います。
プログラムからメモ帳を開き、編集しましょう。
以下を追記し、保存します。
config.vm.network "private_network", ip: "192.168.56.xxx"192.168.56.xxxの部分には好きなIPアドレスを設定します。
例えば、「192.168.56.100」を設定してみましょう。
もう一度、仮想マシンを起動させます。
> vagrant up起動できましたか?
もし、起動できなかった場合は、IPアドレスを変更して、もう一度起動してみましょう。
teratermからsshを行う
IPアドレスに先ほど設定したIPアドレスを。
設定していない場合は、「127.0.0.1 2222」で良かった気がします。
ユーザ名には「vagrant」と入力し、
パスフレーズには、RSA/DSA/ECDSA/ED25519鍵を使う を選択します。
秘密鍵は、vagrantfileと同階層の「.vagrantmachinesdefaultvirtualboxprivate_key」を使用します。
これで、teratermからのsshができます。
ただ、これだと面倒ですよね。
パスワード認証によるログインを設定
sshでログイン後、ユーザを作成します。
teratermでのログインが面倒という場合は、コマンドプロンプトからvagrant sshでもログインが可能です。
ログインができましたら、以下のコマンドでユーザを作成します。
> sudo useradd ユーザ名作成したユーザにパスワードを設定する。
> sudo passwd ユーザ名これで、ユーザの作成、パスワードの設定が完了しましたが、これだけでは、パスワード認証でのログインはできません。
パスワード認証でのログインを許可する
> sudo vi /etc/ssh/sshd_configこのファイル内にある
PasswordAuthentication noの行を
PasswordAuthentication yesに書き換えます。
( / で先頭からの検索が行えます)
sshdを再起動し、変更を適用します。
> sudo systemctl restart sshdこれで、作成したユーザと設定したパスワードでログインができるようになりました。
作成したユーザにsudo権限を与える
先程作成したユーザでは、sudo(管理者として実行)できないため、権限を記述します。
> sudo visudoファイルを編集し、以下を追記します。
ユーザ名 ALL=NOPASSWD: ALLユーザ名には、先ほど作成したユーザ名を指定します。
これで、sudoコマンドをパスワードなしで実行できるようになります。
パスワードなしで管理者権限を実行できてしまうようになるため、扱いに
ApacheでWebサーバを建てる
apacheをインストールします。
> sudo yum -y install httpdインストールができたら、起動してみましょう。
> sudo systemctl start httpdもし、これで起動できなかった場合は、
> sudo /etc/init.d/httpd start起動できているか確認をします。
statusで確認することもできますが、プロセスの起動で確認を行います。
> ps -ef | grep httpdapacheの公開ディレクトリにファイルを作成します。
公開ディレクトリは、「/var/www/html/」です。
こちらにファイルを作成します。
> sudo vi /var/www/html/index.html中身を記述します。
<h1>Hellow world!</h1>保存をしたら、ブラウザからサーバに設定したIPアドレスにアクセスします。
Apacheのキャッシュを有効にする
キャッシュを格納するディレクトリを作成します。
> sudo mkidr p /var/www/cache念のため、権限付与しておきます。
> sudo chmod 777 /var/www/cacheキャッシュのためのモジュール読み込みを記述します。
> sudo vi /etc/httpd/conf/httpd.conf以下を追記
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
<IfModule mod_cache.c>
  <IfModule mod_cache_disk.c>
    CacheRoot /var/www/cache
    CacheEnable disk /
    CacheDirLevels 5
    CacheDirLength 3
  </IfModule>
  CacheIgnoreCacheControl On
  CacheIgnoreNoLastMod On
  CacheDefaultExpire  100000
  CacheMaxExpire 1728000000
</IfModule>apacheの設定を有効
> httpd -Mapacheを再起動
> sudo systemctl restart httpdもしくは、
> sudo /etc/init.d/httpd restartキャッシュファイルが作成されているか確認します。
Webページアクセス後、
> ls /var/www/cacheを実行し、ファイルが作成されていれば、問題ないです。
Apacheの自動起動設定をする
サーバを再起動すると、apacheも停止するため、再起動後には、apacheを起動しなおす必要があります。
それだと面倒なため、自動起動設定をしておきます。
> sudo chkconfig httpd on設定ができているか確認します。
> chkconfig --list httpd実行レベル2,3,4,5がonになっていれば設定完了です。
日本語、時間に対応させる
日本語関連のパッケージをまとめてインストールする。
> sudo yum -y groupinstall "Japanese Support"システムロケールを設定
> sudo yum -y install ibus-kkc vlgothic-*
> sudo localectl set-locale LANG=ja_JP.UTF-8
> source /etc/locale.confマニュアルを日本語化する。
マニュアルを確認します
> man ls英語の状態なので、日本語に変更します。
> sudo yum -y install man-pages-jaもう一度マニュアルを確認します。
日本語になっていれば、完了です。
> man lsキーボードを変更
> localectl status
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: us
      X11 Layout: n/a VC Keymapの値が初期だとusとかになっていると思うので、ja106に変更します。
> sudo localectl set-keymap jp106もう一度確認してみましょう。
> localectl status
    System Locale: LANG=ja_JP.UTF-8
       VC Keymap: jp106
      X11 Layout: jp
       X11 Model: jp106ちなみにjp106というのは、以下の写真のようなキーボード配置のことです。

これで環境の設定は終了です。
お疲れさまでした。
 
 

