https://trueman-developer.blogspot.com/2018/12/laravel-homesteadnetbeanswindows.html
環境
Mac Sierra
VirtualBox 5.2.22
NetBeans 8.2
Larabel 5.5(LTS)
homestead v7.20.0
で確認。
手順は基本的に
https://readouble.com/laravel/5.5/ja/installation.html
に準拠する。
大体Windowsと似たようなものになるがパス周りなどが微妙に違う。
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 を選択
1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop
2) parallels
3) virtualbox
4) vmware_desktop
それなりに時間がかかる。
失敗する場合Vagrantのアップデート(再インストールしないといけない)
Homestead をCloneしてくる
場所はどこでもいいはず。
今回はホームディレクトリにクローンしている。
cd ~
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.shを実行。
コードを見た感じresourcesフォルダからコピーしてくるくらいしかやっていない。
cd Homestead/
bash init.sh
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
Homestead initialized!
bash init.sh
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
Homestead initialized!
Homestead initialized!
と表示されたらOK.
ここまで大体以下のように表示されるはず
MacBook-Pro:~ xxxx$ vagrant box add laravel/homestead
/opt/vagrant/embedded/gems/2.2.2/gems/vagrant-2.2.2/lib/vagrant/util/which.rb:37: warning: Insecure world writable dir /usr/local/git/bin in PATH, mode 040777
==> 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: Successfully added box 'laravel/homestead' (v6.4.0) for 'virtualbox'!
MacBook-Pro:~ xxxx$
MacBook-Pro:~ xxxx$ cd ~
MacBook-Pro:~ xxxx$ git clone https://github.com/laravel/homestead.git Homestead
Cloning into 'Homestead'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 3176 (delta 3), reused 3 (delta 1), pack-reused 3165
Receiving objects: 100% (3176/3176), 678.88 KiB | 1.52 MiB/s, done.
Resolving deltas: 100% (1896/1896), done.
MacBook-Pro:~ xxxx$
MacBook-Pro:~ xxxx$ bash init.sh
bash: init.sh: No such file or directory
MacBook-Pro:~ xxxx$ cd Homestead/
MacBook-Pro:Homestead xxxx$ git checkout v7.19.2 -b v7.19.2
Switched to a new branch 'v7.19.2'
MacBook-Pro:Homestead xxxx$ bash init.sh
Homestead initialized!
Homestead.yamlを編集
クローンしてきたディレクトリ直下のHomestead.yaml を編集する。
プロバイダーの設定
providerに virtualbox を指定する。
デフォルトでvirtualboxなので指定の必要はない。
共有フォルダの設定
mapがローカルのディレクトリ
toがVagrant上のディレクトリ
map /Users/xxxx/Project/yyyy
のように指定する。ディレクトリは事前に作成しておく。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: /Users/xxxx/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
keys:
- ~/.ssh/id_rsa
folders:
- map: /Users/xxxx/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上の実行ソースの場所。
Nginxサイトの設定
hostsファイルを書き換える。
ローカルドメインのアクセスをHomesteadへ転送するように書き換える。
192.168.10.10 homestead.test
ipを書き換えた場合/etc/hostsも書き換え
homestead.testはNginxサイトの設定のmapで指定した値
鍵の作成
ssh-keygen コマンド
エンター1回
任意のパスワード、パスワード確認入力(入力しなくてもいい、入力した場合覚えておく)
MacBook-Pro:Homestead shinichiyamada$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/shinichiyamada/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/shinichiyamada/.ssh/id_rsa.
Your public key has been saved in /Users/shinichiyamada/.ssh/id_rsa.pub.
The key fingerprint is:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/shinichiyamada/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/shinichiyamada/.ssh/id_rsa.
Your public key has been saved in /Users/shinichiyamada/.ssh/id_rsa.pub.
The key fingerprint is:
~/.ssh に鍵が生成される。
仮想マシン(Vagrant)起動
Homesteadディレクトリでvagrant upコマンド。
恐らくVagrantfileファイルを参照している。
最初は環境構築のため時間がかかる。
cd ~/Homestead
vagrant up
vagrant up
VirtualBoxを起動したときに仮想環境が作成され実行中になっていれば成功。
メモリが不足していると完全にフリーズするので注意。
うまくいかない場合設定を見直して再起動する。
vagrant reload
それでもうまくいかない場合削除して再作成する。
vagrant destroy --force
vagrant up
vagrant up
仮想マシン上にプロジェクト作成
sshを利用して仮想マシンへ接続。
Homesteadディレクトリでvagrant sshコマンド。
vagrant ssh
接続できない場合pingが通っているか調べる。
起動時のディレクトリは/home/vagrantになる。
プロジェクト作成。
conposerが最新のバージョンか確認、最新じゃなかったらアップデートをかける
sudo composer self-update
プロジェクト作成
composer create-project laravel/laravel code --prefer-dist
codeが作成されるプロジェクトディレクトリ。
HomeStead.yamlのfolders:- to:xxxxで指定した値にする。
プロジェクト作成後HomeStead.yamlのfolders:- map: xxxx で指定したディレクトリとファイルが同期されるようになる。
プロジェクトが作成されているか確認
vagrant@homestead:~$ ls
code
code
パスがあっているか確認
vagrant@homestead:~$ pwd
/home/vagrant
/home/vagrant
http://192.168.10.10/
または、
http://homestead.test
へアクセス。
画面が表示されたら実行環境作成完了。
NetBeansでリモートデバック
netbeansを起動。
ファイル → プロジェクトを開く。
同期しているプロジェクトでディレクトリを開く(/Users/xxxx/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の設定になる。
ブレークポイントで止まることを確認する。
デフォルトでは常に一行目で止まるようになっているので止まらないようにしたい場合
NetBeans → 設定 → 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