Vagrant関係での困ったこととその対処方のメモ。
と言っても、基本相方にお願いしちゃってるから解決にあまり困ってない。
※逐一更新項目。
最低限覚えておくコマンド
- 『vagrant up』ローカルサーバ起動 ※初回が特に時間がかかるよ!
- 『vagrant ssh』ローカルにログイン
- 『vagrant halt』ローカルサーバ終了
- 『vagrant up --provision』ローカルサーバを再構築・更新 ※時間がかかるよ!
とりあえず、これだけ覚えておけば、最低限使うに困らない。
他に知りたければ『【まとめ】Vagrant コマンド一覧』あたりがオススメ。
provision機能を使うと便利らしいよ『Vagrantのprovisionでローカル開発環境をupと同時に整える (`・ω・´)ゞ|杏z 学習帳』
共有ディレクトリの変更
VirtualBoxで変えても変えても共有ディレクトリが変わらないと思ったら、vagrantの設定ファイルの方を変更が必要だったという話。
vagrantコマンドを実行するディレクトリにある『Vagrantfile』の下記の部分を書き換える
# config.vm.synced_folder "PCのディレクトリ", "仮想環境内ディレクトリ", :mount_options => ["dmode=権限", "fmode=権限"] # 例↓ config.vm.synced_folder "d:/www", "/vagrant", :mount_options => ["dmode=777", "fmode=777"]
仮想環境にアクセスするIPアドレスを変更
『Vagrantfile』で下記を変えたいIPに変更する。
コメントアウトされていたら解放を忘れずに!
config.vm.network "private_network", ip: "192.168.33.10"
外部読込させたjsやmp3がスーパーリロードしても更新されない
最初ブラウザのせいかと思って、metaでcacheを消したりしたが変わらず。
スーパーリロードしても変わらない時点でオカシイのだけど、念のため他のブラウザで確認したところ、同じキャッシュが残っていた。
そんな場合は自分のローカル環境が原因です。
apache自身がキャッシュ残すなんて、2015年初めて知ったんだ…
httpd.confに下記を追記して再起動で解決だそうで…
<Directory [対象のディレクトリ]> EnableMMAP Off EnableSendfile Off </Directory>
※参照:VirtualBox - 静的ファイルがキャッシュされる(ブラウザキャッシュじゃない場合) - Qiita
PHPインストール済みなのに、PHP実行系bashが実行されない!
単純に作成者が意図したPHP実行パスと自分の環境のパスが違うことがあるよ。
perlとかPHP以外にもあり得る現象。
bashしたら/usr/local/bin/phpがNo suchなんですって
vagrantのboxを軽量化して作る
vagrant起動時の高速化とかして文章量増えたから、別ページに置いた
vagrant用のboxサイズを小さくしたい
PuPHPetを使いvagrant環境を設定
vagrantを設定するのに、PuPHPetを使った方が簡単。
PuPHPetでの設定メモ
Windows10のアプデ後、VirtualBoxが起動しない
アップデート後、ローカルサーバが起動しない。
VirtualBoxでサーバ状態を確認しようとするも、そもそもVirtualBox自体が起動しない状態。
原因は、使っていたVirtualBoxやvagrantが、更新されたWindowsと相性が悪いこと。
『VirtualBox』や『Vagrant』を新しいバージョンにアップデートしませう。
アップデート失敗する場合は、1回アンインストールして、新しく入れ直してください。
入れ直しになったとして、サーバ自体は残っている。何かの間違いがなければ。
アクセス出来ないホスト名がある
ちょっと前まで使えていたローカルサーバが突然ブラウザから使えなくなった。
『http』を『https』に勝手にリダイレクトするくせに、localhostやIP指定なら接続できるという症状。
原因は、VirutalHostで『.app』『.dev』が含まれているホスト名を設定していることなので、変更するのが良い。めんどくさいけど。
参照:Google ChromeでVagrant+VirtualBox等の開発環境でhttps接続にリダイレクトされる問題
vagrantコマンド実行時『/puphpet/ruby/to_bool.rb:9』
/puphpet/ruby/to_bool.rb:9: warning: constant ::Fixnum is deprecated
Fixnum warning with Vagrant 2.0.1 · Issue #2719 · puphpet/puphpet · GitHub
戸惑っている人は多くも解決策はなく、そもそも特に問題もないので無視して良い。
VBoxのバージョン変えたら消えた。
『vagrant up』が起動しなくなった
下記のようなエラーが出る状態になった。
==> サーバ名: Booting VM... There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["startvm", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "--type", "headless"] Stderr: VBoxManage.exe: error: VMMR0_DO_NEM_INIT_VM failed: VERR_NEM_MISSING_KERNEL_API_2 (VERR_NEM_MISSING_KERNEL_API_2). VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
大概はVirtualBoxが原因らしいので、インストールし直せば解決する。
でなくても『virtualbox - Virtual Box VT-x is not available (VERR_VMX_NO_VMX).. Hyper V and core isolation is disabled - Stack Overflow』に書いてある内容でどうにかなる。
WSL2を有効化していた場合
もしWSL2を有効化していた場合、それが原因。
詳しく書くと、『Windowsの機能の有効化または無効化』にてWSL2を使うように設定を変えたせい。
なので、対応方法としては
『検索』で『Windowsの機能の有効化または無効化』を呼び出す。
- 『Linux用Windowsサブシステム』
- 『仮想マシンプラットフォーム』
にチェックを外し、再起動。
下のだけでいいかも知れないが、自分は何故か失敗したので、念の為…
因みに『Docker Toolbox』の『レガシー』とであれば、Windowsの機能の有効無効関係ないので両方使うことが出来る。
コメント