Laravelでブログサイトを作る 07. 開発準備

今回のゴール
ローカル環境に編集するファイルを用意し、動作の確認をしつつ開発できる環境を整えます。
開発環境
ホスト
- Windows11
- Phpstorm
開発サーバ
- VartualBox(CentOS)
- Laravel(PHP7.4)
ファイルの作成
各ファイルを作成するコマンドを先に実行し、今後編集するファイルをホスト側に持ってきます。
# [コメント]サーバ内の作業ディレクトリへ移動します
$ cd /home/vagrant/blog
# [コメント]記事migrationファイルとmodelファイルを作成
$ php artisan make:model Article --migration
# [コメント]親カテゴリ
$ php artisan make:model ParentCategory --migration
# [コメント]子カテゴリ
$ php artisan make:model ChildCategory --migration
# [コメント]記事-子カテゴリ
$ php artisan make:model ArticleChild --migration
# [コメント]Controllerは、「記事について」「親カテゴリについて」「子カテゴリについて」で用意
$ php artisan make:controller ParentCategoryController
$ php artisan make:controller ChildCategoryController
$ php artisan make:controller ArticleController
# [コメント]ファイルをホストOSとの共有領域へ移動(ここでコピーしたファイルをgit管理する)
$ cp composer.json /vagrant/
$ cp composer.lock /vagrant/
$ cp -r config /vagrant/
$ cp -r routes /vagrant/
$ cp -r resources /vagrant/
# [コメント]上記コマンドで作成したファイルを移動
$ mkdir -p /vagrant/database/migrations
$ cp database/migrations/*create_articles_table.php /vagrant/database/migrations
$ cp database/migrations/*create_parent_categories_table.php /vagrant/database/migrations
$ cp database/migrations/*create_child_categories_table.php /vagrant/database/migrations
$ cp database/migrations/*create_article_children_table.php /vagrant/database/migrations
$ mkdir -p /vagrant/app/Models/
$ cp app/Models/Article.php /vagrant/app/Models/
$ cp app/Models/ArticleChild.php /vagrant/app/Models/
$ cp app/Models/ChildCategory.php /vagrant/app/Models/
$ cp app/Models/ParentCategory.php /vagrant/app/Models/
$ mkdir -p /vagrant/app/Http/Controllers/
$ cp app/Http/Controllers/ArticleController.php /vagrant/app/Http/Controllers/
$ cp app/Http/Controllers/ParentCategoryController.php /vagrant/app/Http/Controllers/
$ cp app/Http/Controllers/ChildCategoryController.php /vagrant/app/Http/Controllers/
以上で、ローカルの作業領域にファイルがそれぞれ存在するようになりました。
ホスト→ゲストのDocumentRoot内への共有
続いて、編集したファイルがそのままゲストの「/home/vagrant/blog」に展開されるようにします。
Phpstormの方法を解説していますが、他のIDEやエディタにも同様の機能を有しているものはあると思うので、「絶対にPhpstormでなきゃダメ」ではないはずです。
- 1. 設定ウィンドウを開く(Ctrl + Alt + S)
- 2. 「Build,Execution,Deployment」をクリック
- 3. 「Deployment」をクリック
- 4. 「SSH configuration」横の「...」をクリック

- 5. 「Host」「User name」「Password」を入力
- 「Test Connection」ボタンを押し、接続確認しておきます

- 6. 「Autodetect」をクリック
- 左側の欄に
/home/vagrantが表示されます
- 左側の欄に

- 7. 「Mappings」タグをクリック
- 8. 「Deployment path」に
blog/を入力 - 9. 「Apply」をクリックして適用

- 10. 「Options」をクリック
- 11. 「Upload...」の値を、以下のいずれかに設定します
- Always(常に)
- On explicit save action(Ctrl+S)(Ctrl+S押した時)

更新コマンド集約シェルの作成
上記のホスト→ゲストのDocumentRoot内への共有の動作確認がてらに、キャッシュクリアのコマンドをひとまとめにしたshファイルを作成します。
名前は、update.shとしています。
#!/bin/sh
php artisan cache:clear
php artisan config:clear
php artisan config:cache
php artisan route:clear
php artisan view:clear
php artisan clear-compiled
php artisan optimize
composer dump-autoload
rm -f bootstrap/cache/config.php
sudo -- sh -c "systemctl restart httpd"
こちらのファイルを作成し、Ctrl+Sを叩くと、仮想サーバのDocumentRoot配下にupdate.shファイルが確認できるはずです。
$ ls /home/vagrant/blog/
