Vagrant+FuelPHPの環境をWindows上に作成する(Macで稼働している環境の移行)

vagrant
退職後に貸与されていた端末(Mac mini)を返却した上で部分的に業務委託を請け負うことにするためには、開発環境を自宅PC上に構築する必要があるのですが、あいにく自宅にはWindowsPCしかなく、開発環境を整えるのがMacに比べて少し面倒。Linuxベースならすんなりいけるであろうところでかなりハマりつつ、なんとか開発出来る環境を整えられたのでその概要を汎用的な情報の範囲においてメモ。ちなみに環境構築の基本的な部分はchefとcomposerで設定済みなので、イチから立ち上げるということではありません。あくまで、Macで動いている開発環境をWindowsにもってくるというお話。





開発環境の基本的な仕様

  • OSはCentOS6
  • 主な開発言語はPHP(PHP5.6系)
  • フレームワークはFuelPHP1.7系
  • ソースコードはGitHubで管理
  • 環境構築の基本的な部分はchefとcomposerで設定済み
  • 仮想環境はVagrant+VirtualBox
  • エディタはAtom、シェルはPowerShell(Windows Terminal)を使用

CentOS6のサポートが終わってるとか、PHP5.6は古いとか、FuelPHPは1.8系が主流とか、いろいろと問題点はあるけれど、開発環境構築は本番環境のコピーが目的である以上その辺の不都合は諦めます。仕方ない。



全体の流れ

  1. Git for Windowsをインストール
  2. PHP for Windowsをインストール
  3. Composer for Windowsをインストール
  4. 各リポジトリへのアクセス権を付与
  5. リポジトリをローカルにクローン
  6. composer install
  7. Vagrantをインストール
  8. VirtualBoxインストール
  9. Vagrant プラグインのインストール
  10. /vagrant/ ディレクトリで vagrant up



1. Git for Windowsをインストール

ソースコードをcloneするのにWindows上でgitが動く必要があるので、入れておきます。特に考えることはないけど、気になるようなら以下のサイトを参考にしてください。

いまさらGit for Windowsのインストール、GitHubに接続してみた。 – Qiita



2. PHP for Windowsをインストール

Composerを使用するのにPHPが必要。PHP7.4とか入れたいところだけどそういうわけにはいかないので、アーカイブからダウンロードして入れておく。

windows.php.net – /downloads/releases/archives/


PHPのパスを通す

これを忘れるとシェルで動かないので、忘れずに。「システム環境変数」の「Path」にPHPを配置したフォルダのパスを追加しておきます。



3. Composer for Windowsをインストール

シェルでComposerを動かすのに必要なので入れましょう。以下を参考に。

Windows10にComposerをインストールする手順 | mebee



4. 各リポジトリへのアクセス権を付与

GitHubで良いようにやりましょう。



5. リポジトリをローカルにクローン

適当なディレクトリ(フォルダ)を作成してクローンしておきます。

コマンド例

$ git clone https://github.com/nobodyplace/sample.git

初回起動時にGitHubとの連携が必要になるので、実行します。



6. composer install

クローンしてきたリポジトリにcomposerが設定されているので、以下のコマンドを実行します。

$ php composer.phar config --global github-oauth.github.com アクセストークン
$ php composer.phar install

アクセストークンはGitHubで取得しておいてください。

GitHub「Personal access tokens」の設定方法 – Qiita





7. Vagrantをインストール

公式サイトからダウンロードしてインストール。



8. VirtualBoxインストール

公式サイトからダウンロードしてインストール。



9. Vagrant プラグインのインストール

以下のコマンドでプラグインをインストール

$ vagrant plugin install vagrant-hosts
$ vagrant plugin install vagrant-hostsupdater
$ vagrant plugin install vagrant-omnibus
$ vagrant plugin install vagrant-vbguest



10. /vagrant/ ディレクトリで vagrant up

ここまで終わればあとはVagrantを立ち上げるだけ……なんですが、ここから調整が必要になります。


vmboxが見つからないエラー

「centos/6」は既にdeprecatedで削除されてしまっているようなので、Vagrantfileを次のように書き換える必要がありました。

config.vm.box = "bento/centos-6"


「Kernel headers not found」エラー

本当はchefに追加すべきだろうと思いますが、yumで対応してしまいました。そんなことするからまた次の環境構築で誰かが苦労するんだよな……

vagrant ssh

$ sudo yum -y update kernel
$ sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
$ sudo /etc/init.d/vboxadd setup


yum-dump Repository Error: Cannot find a valid baseurl for repo: centos-sclo-rh

どうやら2020年11月30日でCentOS6のサポートが切れ、様々なURLが失効しているらしい。ここを参考に設定を行います。

CentOS6サポート終了 yumでパッケージを更新するには at softelメモ


No candidate version available for httpd24

リポジトリが更新された結果、インストール可能なApacheは2.2になりましたが、必要なのは2.4。レポジトリを追加する必要があります。これもchefを更新すべきだと思いますが、リポジトリをダウンロードして入れてしまいました。推奨はしません。

$ wget https://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo
$ sudo mv epel-httpd24.repo /etc/yum.repos.d/



環境構築完了

これぐらいでようやくcomposerが通り、正常にVagrantが起動出来ました。良かった。

僕は別にMac信者ではありませんが、プログラムが動くサーバが基本的にLinuxベースである以上開発環境もそれに近い環境であるべきだと思いますし、そういう意味でMacで環境構築、開発を行うのはほんとスゲー楽だよなと思っています。資金に余裕が出来たら早めにMacを買いたいですね。M1チップのアップデートが年内にあるという話ですけど、待てないかも。