ローカルにWordPressの試験環境を Vagrant + VirtualBox + CentOS 7 + Apache で構築する

[投稿日] 2016年3月9日
[最終更新] 2016年12月1日

本記事の目的は、試験的にWordPressを動作させる仮想環境をVagrant + VirtualBoxで構築することです。WordPressのインストール自体はやったことをある人を対象としています。また、ゲストOSはCentOS 7.1です。

スポンサーリンク

前提

本記事におけるホストOSはOSX 10.11、すなわちMacですが、Vagrantの基本的な操作さえ行えればほとんど仮想環境上での作業なので、ホストOSが何かはあまり問題ではないでしょう。また、Linuxの基本的なコマンド操作ができることを前提にしています。

元々はWordPressのバックアップ、復元をローカル環境で行う記事として書いていたのですが、仮想環境の構築だけでもけっこうなボリュームになってきたので、記事を独立させることにしました。

VagrantとVirtualBoxのインストール

Vagrantを「Vagrant by HashiCorp」より、VirtualBoxを「Oracle VM VirtualBox」からダウンロード、インストールします。以前、MacではHomebrew Caskを使ってインストールしていましたが、バージョンアップが遅れ気味でトラブルが起きたので、結局公式サイトからバイナリパッケージを落として使うほうがよいという結論に落ち着きました…。

仮想環境の構築

OSのイメージは「A list of base boxes for Vagrant – Vagrantbox.es」にあるものを使います。今回は以下のように、~/vagrant フォルダにおいて作業しました。boxの名前は centos_71 とします。

$ cd mkdir
$ mkdir vagrant
$ vagrant box add centos_71 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box
$ vagrant init centos_71
$ vagrant up
$ vagrant ssh

以上の手順で、仮想環境上のCentOSに接続できます。以下で接続を切り、仮想OSをシャットダウンします。

> exit
$ vagrant halt
$ vagrant status

動作を確認したら、仮想環境にローカルからアクセスできるプライベートIPアドレスを割り当てます。作業フォルダにある Vagrantfile を編集し、以下の行のコメントアウトを外します。

config.vm.network "private_network", ip: "192.168.33.10"

次に vagrant up したら 192.168.33.10 が有効になっています。ログイン後に ip addr show コマンドで確認できます(ifconfigなど馴染みのコマンドはレガシー扱いで入っていません)。なお、SSHの秘密鍵が作業フォルダの隠しフォルダ内 .vagrant/machines/default/virtualbox/private_key にあります。

WordPressを動作させるための環境を構築

以下のコマンドで、WordPressを動作させるための環境を構築します。具体的には、必要なソフトウェアのインストール、Webサーバーとデータベースサーバーの起動、有効化を行い、WordPress用のデータベースを作成し、Apacheの設定をします。コピペの利便性のため、プロンプトは省略しました。なお、使用するイメージでは、デフォルトでEPEL有効、SELinux無効、ファイアウォール無効となっていましたので、このあたり特にいじっていませんが、場合によってはいじらないといけないかも。

# ソフトウェアのインストール
sudo yum update
sudo yum -y groupinstall "開発ツール"
sudo yum -y install bash-completion unzip php php-gd php-mbstring php-mysql php-pspell php-xml php-xmlrpc mariadb mariadb-server
# 必要ではないが個人的にインストールしているもの
sudo yum install -y emacs tig byobu etckeeper
# デーモンの起動と確認
# systemctl status 実行時に、enabled と active を確認する
sudo systemctl start httpd.service
sudo systemctl start mariadb.service
sudo systemctl enable httpd.service
sudo systemctl enable mariadb.service
systemctl status httpd.service
systemctl status mariadb
# データベースの準備
# データベース名 wpdata, ユーザー名 wpdbuser, パスワード pass とする
sudo mysql
> create database wpdata;
> grant all on wpdata.* to wpdbuser@'localhost' identified by 'pass';
> flush privileges;
# Apache の設定
# WordPress は/var/www/html 直下に展開するものとする
sudo vi /etc/httpd/conf/httpd.conf
# /var/www/html 以下の AllowOverride をAll に変更
sudo systemctl restart httpd.service

Apacheの設定についてですが、WordPressはデフォルトのドキュメントルート/var/www/html 直下に展開するものとしました。以上で、WordPressの動作する環境(Apache + MariaDB)はOKです。

WordPressのインストール

公式サイト「日本語 — WordPress」より、WordPressをダウンロードおよびインストールします。WordPressは /var/www/html 直下に展開するものとします。手順としては、公式サイトからのダウンロード、ファイルの展開、wp-config.phpの設定、/var/www/html以下の所有権をapacheに変更、です。WordPressのバージョンは4.4.2です。

# WordPressファイル群のダウンロードと展開
# ホームディレクトリにwordpressをいったんダウンロード
cd
wget https://ja.wordpress.org/wordpress-4.4.2-ja.zip
unzip wordpress-4.4.2-ja.zip
sudo cp -a wordpress/* /var/www/html/

この後、WordPressの設定です。

# WordPressの設定
# wp-config.php に前節のデータベース名、ユーザー名、パスワードを反映
# 認証用ユニークキーの設定
cd /var/www/html
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.php
cd ..
# ディレクトリ所有権の変更
sudo chown -R apache:apache /var/www/html
# デーモン再起動による設定の反映
sudo systemctl restart httpd.service

この後、ホストOSのブラウザから 192.168.33.10 にアクセスすると、WordPress の画面になるはずです。初期設定を行います。以上。

参考

以下のサイトを参考にしました。ありがとうございます。

また、CentOS 7 を学ぶにあたり、以下の「15時間でわかるCentOS」を参考にしました。この手のタイトルの類に漏れず、15時間ではわからないと思いますが、Webサーバーの構築に的を絞って詳述されており、学習には良い書籍だと思います。後半の項目はさすがに解説が足りていませんが、一通りは学べます。CentOS は7で大きく変わったので、6との違いが書かれているのも好印象でした。まぁLinux入門者向けではないのではないかという指摘はそうかもしれませんが。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。