Local_by_FlywheelによるWordPressローカル環境の設定

Macを新調したのを機に、Webサイト運営用のローカルのWordpress環境を、これまでのMANPからLocal_by_Flywheel(以下、LbF)に変更した。お手軽という評判どおり、環境設定とコンテンツの移行はとてもすんなり終わった。MANPを使ってきたのは、MANPの名称の由来であるMySQL(データベース)Apache(HTTPサーバ)PHP(HTMLプリプロセッサー)をそれぞれ個別に導入し、その上にWordPressを載せてWebサーバを構成するという手間の煩わしさを厭ったからだが、LbFはさらに簡便だという記事をいくつか目にして、新しい革袋には、と思い立って変更したのだった。曲がりなりにもMANPを使えるようになるまでには、自らの無知を呪い、そこら中で躓いては石を置いた者を罵りながら試行錯誤を繰り返し、いらぬ回り道をたどって来た記憶があるが、具体的にどういう壁や罠や油断だったかのディテールは少しも思い出せないのはいつものことだ。こんなにあっけなく導入できてしまっては、中身がブラックボックス過ぎて、今後の保守作業にも差し支えるだろうと、ちょっと調べたことを整理しておこう。

1.Local_by_Flywheel(LbF)の階層構造
Local_by_FlywheelはMacの一アプリケーションとして稼働するが、ちょっと毛色が違っているのは、VirtualBoxという仮想化製品(注1)を利用して、Mac内にもう一つ別の仮想OSとしてLinuxを立て、その上にさらにDockerを載せ、Webサーバを構成するコンポーネント群を一つのコンテナにまとめている点であろう。Local_by_Flywheelの階層構造は下図のようになっている(注2)。

2.Macへの直接の変更
・VirtualBoxとLocal_by_Flywheelにシステムへの直接アクセスを許可(システム環境設定の「セキュリティとプライバシー」で設定する)。
・hostsファイルにLbFのIPアドレス(仮想アドレス)が追加される(注3)。httpd.confやhttpd-vhostsに変更はない。

3. Local_by_Flywheelの操作
・Macの普通のアプリとして起動すれば、GUIのウインドウで操作でき、Webサーバの開始/停止や、Wordpressのローカル・サイト本体ホームペジあるいはAdmin(ダッシュボード)画面に跳ぶことができる。
・ターミナル・コンソールからCUIで接続も可能(LbFサイドバーの対象コンテナ名を右クリックし、OpenSiteSSHを選択すると、ターミナル画面が現れる)。
・導入されたファイルは、User/<ユーザ名>/Local Sites/<Webサイト名>/app/ public フォルダに置かれる。

4.MySQL
・GUIの管理ツールとしてSequelProを使える(LbFのDatabaseタグでAdminerボタンを押せば、ブラウザでSequelProが起動する)

5.VirtualBox
・virtualboxを単独で起動すると、ウインドウに起動中のVMの概要が表示される。LbFの画面とは独立に表示されるので要注意。
・メニューのグローバルツールからホストネットワークマネージャを選ぶと、仮想アダプタのIPアドレスや、DHCPのアドレス範囲指定を確認できる。

注1 仮想化製品
Mac上でWindowsを稼働させる仮想化製品としてParallelsが有名だが、Parallelsは有料で、結構高い(Windowsでしか稼働しないある一つの製品が使いたくて、わたしもParallelsを旧くから使っている。バージョンアップのたびに数千円の費用が掛かり、今はVer.14。累計いくらになったろう)。有料なだけにWindowsとの親和性は非常に高く、Windows上のアプリが非常にきびきびと動くのをみるのは、手品みたい。

注2 MANPの階層構造との比較
MANPの階層構造は、前掲のLbFの階層からDocker-Linux-VirtualBoxを取り除き、LbFをMANPに差し替えた形になる。LbFの方が階層が3層も深く、一見冗長に見えるのに、管理は簡潔になっている。VirtualBoxもLinuxもDockerもユーザからはほぼ完全にに隠され、Webサーバ・コンテナがMacからきれいに分離できているからであろう。図示すれば過剰にも見えるVirtualBoxとLinuxだが、それらの存在はほとんど透明で、処理上の負荷も気にならない。形式上の冗長性が実処理上の簡素化に貢献している事例といえようか。

注3 仮想IPアドレス
仮想アダプタのIPアドレスは192.168.95.1が設定されている。特に指定した覚えはないのでLbFが導入時に設定した値であろう。WebサーバのIPアドレスは192.168.95.100で、ポート番号はデフォルトの80のままであった。