Macは以下
https://trueman-developer.blogspot.com/2018/12/laravel-homesteadnetbeansmac.html
環境
Windows 10
VirtualBox 5.2.22
NetBeans 8.2
Larabel 5.5(LTS)
homestead v7.20.0
で確認。
手順は基本的に
https://readouble.com/laravel/5.5/ja/installation.html
に準拠する。
VirtualBox インストール
仮想環境。
バージョンによってはうまくいかないケースがあるらしい。
https://www.virtualbox.org/
Vagrant インストール
仮想マシン管理ツール。
https://www.vagrantup.com/
再起動が走るので注意。
NetBeans インストール
IDE。NetBeansでなくてもいい。
https://netbeans.org/downloads/index.html
git インストール
バージョン管理システム。
https://git-scm.com/
Homestead Vagrant Boxt インストール
VirtualBox上にVagrantを使用してLarabelの環境を構築する。
Boxは仮想マシンのテンプレのことでLaravel用のテンプレを追加しているらしい。
コマンドプロンプトかPowershell、あるいはit Bashで以下のコマンド。
以降はすべてPowershell上で確認。
vagrant box add laravel/homestead
動作する環境。3) virtualbox を選択(WinProならhypervもあり)
1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop
2) parallels
3) virtualbox
4) vmware_desktop
それなりに時間がかかる。
失敗する場合Vagrantのアップデート(再インストールしないといけない)
PS C:\Users\xxxx> vagrant box add laravel/homestead
==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop
Enter your choice: 3
==> box: Adding box 'laravel/homestead' (v6.4.0) for provider: virtualbox
box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/6.4.0/providers/virtualbox.box
box: Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
box: Progress: 100% (Rate: 10.6M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'laravel/homestead' (v6.4.0) for 'virtualbox'!
Homestead をCloneしてくる
場所はどこでもいい。
cd F:\develop\project
git clone https://github.com/laravel/homestead.git Homestead
masterは安定していないとのことなので安定版をチェックアウト
https://github.com/laravel/homestead/releases
よりLatest release のバージョンを指定する。
普通にバグを踏み抜く(踏み抜いた)ので必ずやること。
cd Homestead
git checkout v7.20.0 -b v7.20.0
git checkout v7.20.0 -b v7.20.0
クローン&チェックアウトしたHomestead以下のinit.batを実行。ダブルクリックでもいい。
コードを見た感じresourcesフォルダからコピーしてくるくらいしかやっていない。
PS F:\develop\project\Homestead> .\init.bat
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
Homestead initialized!
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
Homestead initialized!
ここまでの流れ。
PS C:\Users\xxxx> cd F:\develop\project
PS F:\develop\project> git clone https://github.com/laravel/homestead.git Homestead
Cloning into 'Homestead'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 3199 (delta 10), reused 16 (delta 10), pack-reused 3179
Receiving objects: 100% (3199/3199), 683.47 KiB | 536.00 KiB/s, done.
Resolving deltas: 100% (1915/1915), done.
PS F:\develop\project> cd .\Homestead\
PS F:\develop\project\Homestead> git checkout v7.20.0 -b v7.20.0
Switched to a new branch 'v7.20.0'
PS F:\develop\project\Homestead> .\init.bat
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
Homestead initialized!
PS F:\develop\project> git clone https://github.com/laravel/homestead.git Homestead
Cloning into 'Homestead'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 3199 (delta 10), reused 16 (delta 10), pack-reused 3179
Receiving objects: 100% (3199/3199), 683.47 KiB | 536.00 KiB/s, done.
Resolving deltas: 100% (1915/1915), done.
PS F:\develop\project> cd .\Homestead\
PS F:\develop\project\Homestead> git checkout v7.20.0 -b v7.20.0
Switched to a new branch 'v7.20.0'
PS F:\develop\project\Homestead> .\init.bat
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
Homestead initialized!
Homestead.yaml
プロジェクトディレクトリ内にあるHomestead.yamlを一部書き換え。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
# authorize: ~/.ssh/id_rsa.pub
authorize: C:/Users/xxxx/.ssh/id_rsa.pub
keys:
# - ~/.ssh/id_rsa
- C:/Users/xxxx/.ssh/id_rsa
folders:
# - map: ~/code
- map: F:\develop\project\Laravel
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code/public
databases:
- homestead
memory: 2048
cpus: 1
provider: virtualbox
# authorize: ~/.ssh/id_rsa.pub
authorize: C:/Users/xxxx/.ssh/id_rsa.pub
keys:
# - ~/.ssh/id_rsa
- C:/Users/xxxx/.ssh/id_rsa
folders:
# - map: ~/code
- map: F:\develop\project\Laravel
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code/public
databases:
- homestead
ip: サーバへアクセスするときのURL。
authorize: 鍵
keys: 鍵
folders-map: vagrant上のソースと動悸するローカルディレクトリ、どこでもいい。
sites-map:ここで指定したURLでアクセスできるようになる。
sites-to: vagrant上の実行ソースの場所。
Windowsだと~/と記述している箇所はC:/Users/ユーザ名 になる。
鍵の作成
mkdir C:\Users\xxxx\.ssh
cd C:\Users\xxxx\.ssh
ssh-keygen -t rsa
cd C:\Users\xxxx\.ssh
ssh-keygen -t rsa
PoweShellで確認。おそらくGit Bashなら作成可能。コマンドプロンプトは無理かも。
passphraseは入力してもしなくてもいい(入力する場合覚えておく)
PS F:\develop\project\Homestead> cd C:\Users\xxxx\.ssh PS C:\Users\xxxx\.ssh> ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\xxxx/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\xxxx/.ssh/id_rsa. Your public key has been saved in C:\Users\xxxx/.ssh/id_rsa.pub. The key fingerprint is: SHA256:wny+IXs/OqgO5SIZMW6QTt+YL3W++1yoS8ZqrVugM8c xxxx@MyComputer The key's randomart image is: +---[RSA 2048]----+ | | | . | |=. | |=o. 0o | |.+ +-++.S | |↑↑↓↓←→←→b| |a o=.0oBo. . | | . o=.qeroo | | .+dummy.. | +----[SHA256]-----+
仮想マシン(Vagrant)起動
Homesteadディレクトリでvagrant upコマンド。
恐らくVagrantfileファイルを参照している。
最初は環境構築のため時間がかかる。
PS C:\Users\xxxx\.ssh> cd F:\develop\project\Homestead\
PS F:\develop\project\Homestead> vagrant up
PS F:\develop\project\Homestead> vagrant up
FireWallの警告などが出てきたらOKを選択。
VirtualBoxを起動したときに仮想環境が作成され実行中になっていれば成功。
うまくいかない場合設定を見直して再起動する。
vagrant reload
それでもうまくいかない場合削除して再作成する。
vagrant destroy --force
vagrant up
vagrant up
仮想マシン上にプロジェクト作成
sshを利用して仮想マシンへ接続。
Homesteadディレクトリでvagrant sshコマンド。
vagrant ssh
起動時のディレクトリは/home/vagrantになる。
プロジェクト作成。
composer create-project laravel/laravel code --prefer-dist
codeが作成されるプロジェクトディレクトリ。
HomeStead.yamlのfolders:- to:xxxxで指定した値にする。
プロジェクト作成後HomeStead.yamlのfolders:- map: xxxx で指定したディレクトリとファイルが同期されるようになる。
http://192.168.10.10/
または、
http://homestead.test
へアクセス。
画面が表示されたら実行環境作成完了。
NetBeansでリモートデバック
netbeansを起動。
ファイル → プロジェクトを開く。
同期しているプロジェクトでディレクトリを開く。
ドラッグアンドドロップでも可能。
F:\develop\project\Laravel
ルートディレクトリを右クリック → プロパティ → 実行構成 → プロジェクトURL
HomeStead.yamlで指定したip http://192.168.10.10/ に変更。
詳細を開き
Webブラウザを開かない、にチェック
パスマッピングの
サーバーパスには、HomeStead.yamlのfolders:- to:xxxxを
プロジェクトパスには、 HomeStead.yamlのfolders:- map:xxxxを
を指定する。
ホストはHomestead.yamlで設定したIPを、
ポート番号は能動的に変えていなければ9000。
恐らくVM上のXDebugの設定になる。
ブレークポイントで止まることを確認する。
デフォルトでは常に一行目で止まるようになっているので止まらないようにしたい場合
ツール → オプション → PHP → 最初の行で停止のチェックを外す。
うまくいかない場合routes/web.php に以下を追記して/info にアクセスすると情報が確認できるようになる。
XDebugなどの項目を確認する。
Route::get('/info', function () {
phpinfo();
});
なお現状ではローカル変数の値のみ見れない現象を確認している。
原因は調べきれなかった。
Route::get("/hello", function () { $this->var = 'テst'; // 見れる $test = 5; // 見れない $a = new SimpleClass(); // 見れる print("Hello World!
" . $this->var); return null; });
参考
https://readouble.com/laravel/5.5/ja/installation.html
https://qiita.com/tosite0345/items/74982ec5414178bf6ef0
https://qiita.com/ricoirico/items/9745160bcf9983fa30ad
https://qiita.com/tosite0345/items/74982ec5414178bf6ef0
Vagrantコマンド
https://qiita.com/oreo3@github/items/4054a4120ccc249676d9