ここから本文です

baserCMS開発ブログ

baserCMSのVagrant環境を用いてスマホ対応テーマ・プラグインを開発しよう!

logo_vagrant-81478652.png

baserCMS開発メンバーの滝下です。
開発ブログの更新が長らく止まっていましたので、ちょっと書いてみようと思います。

baserCMSは、公式サイトからダウンロード出来るパッケージの他に、githubのリポジトリから入手する方法があります。github上のものはbaserCMS本体やプラグイン等の開発を行う環境として公開されており、開発時に必要なファイルや設定が追加されています。

その中の特徴の一つとして、Vagrant設定ファイル(Vagrantfile)が同梱されています。Vagrantは仮想サーバを簡単に構築可能なツールですが、コマンド一つでbaserCMSの動作可能な仮想サーバを構築し、動作を確認することができます。Vagrantの利用方法は、少々古くなってしまいましたが次の記事をご参考ください。

VagrantでbaserCMSのお手軽環境構築

さて今回の記事では、Vagrantを利用してbaserCMSのスマートフォン対応テーマやプラグインを作る時に有用なテクニックをご紹介します。

標準のVagrantfileの設定は、仮想サーバがホスト内で完結するように設定されています。通常のテーマ開発ではこれで十分に対応できますが、スマートフォンの場合、実機で確認するためにはホストの外から仮想サーバにアクセス出来るようにしなければなりません。

Vagrantでは、ネットワークアダプタの設定で「hostonly」の他に「public_network」を選ぶことができます。public_networkはホストマシンが参加しているネットワーク内に同じネットワークアドレスで仮想サーバを接続(ブリッジ接続)することができるモードです。
具体的には、Vagrantfileの次の場所を下記のように書き換えることで、仮想サーバをブリッジ接続することができます。

#IPアドレスは参加しているネットワークで有効なものを記述すること
config.vm.network :public_network, ip: "192.168.1.10"

Vagrantfileを修正したら、現在動かしているVagrantを再起動します。

vagrant reload

再起動すると、Vagrantが利用するネットワークアダプタはどれか、選択肢が出てきます。そこで、接続したいネットワークを選択します。例えばMacOSですと、WiFi環境は「en0」というアダプタが一般的です。
選択すると再起動の処理が続行され、仮想サーバがネットワーク上に接続されます。
なお、毎回選択肢が出てきて煩わしいという方は、ネットワークアダプタの指定を記述することで毎回指定ネットワークアダプタで接続することができます。記述する文字列は、選択肢の番号以降の文字列です。例えば次のように記述します。

config.vm.network :public_network, ip: "192.168.1.10", bridge: "en0: Wi-Fi (AirPort)"

さて、仮想サーバがネットワーク上に接続され、ホストの外にある同一ネットワーク上の端末からアクセス出来るようになりました。しかしここで注意しなければならないのは、確かに仮想サーバは接続されましたが「Webサーバはブリッジ接続を行える設定になっていない」点です。具体的には、Apacheの設定である「/etc/httpd/conf/httpd.conf」、phpMyAdminを使用するのであれば「/etc/httpd/conf.d/phpMyAdmin.conf」、等のIPアドレス指定を変更する必要があります。

具体的な修正箇所は割愛しますが、今回最新版の開発リポジトリで、Vagrantfile等の変更を行い、これらの設定を簡単に済ませる記述を行いました。一度baserCMSのリポジトリを最新にしてから、Vagrantfileを新しいものに置き換えてみましょう。

git pull origin dev-3
mv Vagrantfile Vagrantfile.save
cp Vagrantfile.default Vagrantfile

つぎに、Vagrantfileを開き、次の場所を変更します。

# 利用するIPアドレスを設定します
SERVER_IP_NETWORK = "192.168.1."
SERVER_IP_ADDRESS = SERVER_IP_NETWORK + "10"
SERVER_IP_SUBNETMASK = "255.255.255.0"

〜

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

  # スマートフォン等の実機で確認する場合は、上記設定をコメントアウトして下記のように設定することで同一ネットワーク上から確認できます
  #config.vm.network :public_network, ip: SERVER_IP_ADDRESS
  # ネットワークアダプタを毎回聞かれて面倒な場合は、選択肢の文字列をコピーして、bridgeに設定します
  config.vm.network :public_network, ip: SERVER_IP_ADDRESS, bridge: "en0: Wi-Fi (AirPort)"

最後に、Vagrantを再起動します。なお、この変更ではサーバ内の設定ファイルもコピー&変更しなければならないため、プロビジョニングを合わせて行います。

vagrant reload --provision

再起動が行われ、終了するとホストコンピュータの他、スマートフォンなどの外部端末からもbaserCMSを閲覧できるようになります。

【注意】
Vagrantの利用はサーバ構築の知識を必要とします。特に今回のブリッジ接続設定は、間違えると他のネットワークを利用している人に迷惑を掛けたり、悪意のある人がサーバ内に侵入して不都合をもたらす場合がありますので注意してください。

TIPS 2015/03/26 MASA-P
baserCMS最新版ダウンロード

ダウンロード数: ...

最新バーション: ...

Google グループグループ
baserCMSユーザー会
baserCMSの最新情報を随時配信中!
メーリングリストに参加
[Eメール]
6月 2017年7月 8月
      1
2345678
9101112131415
16171819202122
23242526272829
3031