概要
さくらレンタルサーバーの環境をローカルのVagrantで構築。使用はできるだけ本家に近づけるようにした(2021年6月時点)。
- ホストOS
- Windows10
- ゲストOS/Box
- FreeBSD 11.2-RELEASE-p10 (GENERIC)
bento/freebsd-11.2
- MySQL
- mysql Ver 14.14 Distrib 5.7.34, for FreeBSD11.4 (amd64) using EditLine wrapper
- PHP
- PHP 7.4.20 (cli) (built: Jun 8 2021 01:11:43) ( NTS )
特にMySQLのインストールで行きつ戻りつして数日かかった。
FreeBSD仮想環境の構築
Boxのダウンロード
bento/freebsd-11.2のボックスを追加。
1 |
C:\>vagrant box add bento/centos-7.7 |
仮想環境のディレクトリー準備
Windowsで既作成の\vagrant
ディレクトリー下にsakura
ディレクトリーを作成して移動。
1 |
C:\vagrant>mkdir sakura & cd sakura |
イニシャライズ
仮想環境ディレクトリーを初期化。FreeBSDの仮想環境が構築され、vagrantfileが作成される。
1 2 3 4 5 |
C:\vagrant\sakura>vagrant init bento/freebsd-11.2 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. |
仮想環境の起動
仮想サーバーの起動
vagrant up
コマンドでFreeBSDの仮想サーバーを起動する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
C:\vagrant\sakura>vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'bento/freebsd-11.2'... ..... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: The guest additions on this VM do not match the installed version of default: VirtualBox! In most cases this is fine, but in rare cases it can default: prevent things such as shared folders from working properly. If you see default: shared folder errors, please make sure the guest additions within the default: virtual machine match the version of VirtualBox you have installed on default: your host and reload your VM. default: default: Guest Additions Version: 5.2.26 default: VirtualBox Version: 6.1 |
仮想サーバーへの接続
vagrant ssh
で仮想サーバーにログインする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
C:\vagrant\sakura>vagrant ssh FreeBSD 11.2-RELEASE-p10 (GENERIC) #0: Mon May 13 21:20:50 UTC 2019 Welcome to FreeBSD! Release Notes, Errata: https://www.FreeBSD.org/releases/ Security Advisories: https://www.FreeBSD.org/security/ FreeBSD Handbook: https://www.FreeBSD.org/handbook/ FreeBSD FAQ: https://www.FreeBSD.org/faq/ Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/ FreeBSD Forums: https://forums.FreeBSD.org/ Documents installed with the system are in the /usr/local/share/doc/freebsd/ directory, or can be installed later with: pkg install en-freebsd-doc For other languages, replace "en" with a language code like de or fr. Show the version of FreeBSD installed: freebsd-version ; uname -a Please include that output and any error messages when posting questions. Introduction to manual pages: man man FreeBSD directory layout: man hier Edit /etc/motd to change this login announcement. $ |
タイムゾーン設定
初期状態はUTC。
1 2 |
$ date 2021年 6月10日 木曜日 12時55分34秒 UTC |
タイムゾーンはtzsetup
にタイムゾーンのファイルを指定して設定する。
まずtzsetupの場所を確認。
1 2 |
$ sudo find / -name tzsetup /usr/sbin/tzsetup |
次にタイムゾーンファイルの場所を確認。
1 2 |
$ sudo find / -name Tokyo /usr/share/zoneinfo/Asia/Tokyo |
tzsetup
にTokyo
を与えて実行。タイムゾーンファイルを使うかと尋ねられるのでYes。
1 2 3 4 5 |
$ sudo /usr/sbin/tzsetup /usr/share/zoneinfo/Asia/Tokyo Default timezone provided Use the dafault `/user/share/zoneinfo/Asia/Tokyo' zone? Yes/No |
タイムゾーン設定後
1 2 |
$ date 2021年 6月10日 木曜日 22時16分31秒 JST |
ファイル共有設定
Vagrantfile
以下の行のコメントを外して修正。
1 |
config.vm.synced_folder "./share", "/usr/home/vagrant/share" |
1つ目の引数
- ホスト側の共有ディレクトリーのパスで、仮想環境を起動したディレクトリーからの相対パス
- この設定ではC:\vagrant\sakura\shareがホスト側の共有ディレクトリーになる
- このディレクトリーはホスト側で作成する必要がある
2つ目の引数
- ゲスト側の共有ディレクトリーの絶対パス
- この場合は~/shareがゲスト側の共有ディレクトリーになる
- このディレクトリーは自動作成される
ホスト側の共有ディレクトリー作成
ホスト側のWindowsで共有ディレクトリーを作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
C:\vagrant\sakura>mkdir share C:\vagrant\sakura>dir Volume in drive C has no label. Volume Serial Number is 9E41-EED5 Directory of C:\vagrant\sakura 2021/06/10 10:24 <DIR> . 2021/06/10 10:24 <DIR> .. 2021/06/09 22:06 <DIR> .vagrant 2021/06/20 09:00 <DIR> share 2021/06/20 08:57 3,102 Vagrantfile 1 File(s) 3,102 bytes 4 Dir(s) 274,397,655,040 bytes free |
Vagrant起動/再起動
vagrant up/reload
でvagrantfileの内容を仮想マシンに反映させる。その結果、vagrantfileで指定したパスで仮想マシンにshareディレクトリーが作成される。
pkgのブートストラップ
MySQLやPHPなどをインストールするのにpkgによるバイナリーパッケージ管理を利用する。このため、pkgをブートストラップする。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo pkg bootstrap -f The package management tool is not yet installed on your system. Do you want to fetch and install it now? [y/N]: y Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly, please wait... Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done Installing pkg-1.16.3... Newer FreeBSD version for package pkg: To ignore this error set IGNORE_OSVERSION=yes - package: 1104001 - running kernel: 1102000 Ignore the mismatch and continue? [y/N]: y package pkg is already installed, forced install Extracting pkg-1.16.3: 100% |