ララベルで久々にプロジェクトをクローンしたのでつまづきポインの備忘録(forMac)

自分のプロジェクトをクローンしてデータベースのモックアップ(テスト環境)をローカルに作成しようと思ったのですが、前にプロジェクトをクローンした時と同じ轍を踏んでいる気がしたのでいい加減覚えようと戒めの意味も込めて備忘録を作成します。


#1.プロジェクトのクローン

これは簡単ですねサクッとローカルにクローンします。

```vim

simple_db_mockup % git clone https://github.com/mar-gitacount/simple.git

```

うまくいったぽいです。

```vim
Cloning into 'simple'...
remote: Enumerating objects: 554, done.
remote: Counting objects: 100% (554/554), done.
remote: Compressing objects: 100% (307/307), done.
remote: Total 554 (delta 304), reused 463 (delta 213), pack-reused 0
Receiving objects: 100% (554/554), 1.06 MiB | 4.62 MiB/s, done.
Resolving deltas: 100% (304/304), done.


```

中身もチェックします。プロジェクトは`` simple_db_mockup/simple``直下にあるので、
移動して中身をチェックします。

```vim
% cd simple
% ls
README.md		dist			server.php
app			docker-compose.yml	server.txt
artisan			flowmemo.txt		serverlog.txt
bootstrap		package-lock.json	src
composer.json		package.json		storage
composer.lock		phpunit.xml		tests
composer.phar		public			config			resources		webpack.mix.js
database		routes

```

とりあえずは大丈夫そうです。

#2.MAMPの設定

ローカ環境ではMAMPを利用しており、ここでは割愛しますが、htdocs直下にプロジェクトをクローンしています。
ちなみに自分の環境ですと以下になります。

```vim
/Applications/MAMP/htdocs/s_p/simple_db_mockup/simple
```

MAMPは大変便利でバーチャルホストの設定をすることでプロジェクトのホスト名を任意で設定できます。MAMPではNginxとApacheが提供されていますが、Apacheを利用を前提に説明します。


##2-1バーチャルホストにプロジェクトの追加

バーチャルホストにhtdocs以下のパスとホスト名を設定します。

```vim
vi /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 

```

パスが``/Applications/MAMP/htdocs/s_p/simple_db_mockup/simple/public``
で、エイリアスを``dbmock``とします。
portはMAMPの初期設定の80ポートを利用します。

```vim
~
<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/s_p/simple_db_mockup/simple/public"
    ServerName dbmock
</VirtualHost>
~
```


##hostsファイルを書き換える。

ホストファイルを書き換えてIPアドレスとホスト名を紐づけます。これはMAMPではなくMac側の設定です。ファイルの場所は``private/etc/hosts``となります。

他の方はわかりませんが、おそらくデフォルトでは管理者権限出ないとファイル編集ができないのではと思います。

```vim
sudo vi /private/etc/hosts

```

以下のようなファイルが表示されるかと思います。

```vim
~
127.0.0.1       localhost
127.0.0.1   s_p
127.0.0.1   js_study
127.0.0.1   neomedia
127.0.0.1   liqid_hp
127.0.0.1   dbmock   ←追加
~
```


#3..envファイルを書き換える。

とりあえずアクセスしてみます。
ホスト名をdbmockとしましたので``dbmock``とアドレスバーに入力します。
しかし接続しても画面が真っ白になってしまい、表示されません
インターネッツで調べるとどうやらcomoseをインストールしないといけないみたいです。

```vim 
%composer install

Laravel Framework 8.18.1

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display help for the given command. When no command is given display help for the list command
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
      --env[=ENV]       The environment the command should run under
  -v|vv|vvv, --verbose  Increase t
~
```

とりあえず正常に行きました。
今度こそはと思い、``dbmock``に移動しますが、``500servererror``となります。
先ほどとは内容が変わりました。
またもやインターネッツの旅に出かけます。
どうやら.envファイルが存在しないのが問題のようです。前も同じことしたような、、
その上でキーを作成しないといけないようです。

プロジェクトファイル内に``.env.example``ファイルがありますのでこれをコピーして``.env``
ファイルを作成します。

```vim
cp .env.example .env

```

```vim
 % php artisan key:generate
Application key set successfully.
```


でもう一回接続しますが今度はデータベース関係のエラーが吐かれています。
自分的にはこの辺は何度もやっていたので予測はしていました。



![スクリーンショット 2021-06-23 1.23.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/826735/c4a451b3-116c-b989-375e-c17c5eb97414.png)


#4.データベース設定

今まで利用していたデータベースとは違う場所で作成し、実験的に作業したかったので,
新しく作業したかったので作成します。

##4-1データベース作成

DB名は``dbmock``とします。コマンドラインでやるのは面倒だったので、phpmyAdminを利用して作成します。

![スクリーンショット 2021-06-23 1.55.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/826735/5e4a5f6b-f13a-01fe-8c4d-d3571b2b425a.png)


##4-2.設定ファイルの修正

.envファイルとconfig/database.phpを修正します。


.envファイル(修正前)

```vim
DDB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=mysql
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

```

.envファイル(修正後)

```vim
DDB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=dbmock  ←編集
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

```


修正後マイグレーションします。

```vim
% php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (51.64ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (50.18ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (53.27ms)
Migrating: 2020_12_12_192229_create_votings_table
Migrated:  2020_12_12_192229_create_votings_table (26.06ms)
Migrating: 2020_12_23_191814_create_articles_table
Migrated:  2020_12_23_191814_create_articles_table (62.01ms)
Migrating: 2020_12_29_161423_remove_article_title_from_articles_table
Migrated:  2020_12_29_161423_remove_article_title_from_articles_table (34.97ms)
Migrating: 2021_01_20_140834_change_aritcle_articles
Migrated:  2021_01_20_140834_change_aritcle_articles (61.61ms)
Migrating: 2021_04_16_130836_add_column_to_user_prf_table
Migrated:  2021_04_16_130836_add_column_to_user_prf_table (30.66ms)
Migrating: 2021_06_02_094739_create_sessions_table
Migrated:  2021_06_02_094739_create_sessions_table (102.78ms)
Migrating: 2021_06_15_130739_add_column_to_gunle_table
Migrated:  2021_06_15_130739_add_column_to_gunle_table (28.16ms)
```

テーブルもできています!!

![スクリーンショット 2021-06-23 2.21.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/826735/63f774e4-b5fa-a6a9-d1fb-82199b9d7045.png)


dbmodkにアクセスしてみます。大丈夫そうです。

![スクリーンショット 2021-06-23 2.23.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/826735/a15f70cb-efab-7c68-fab3-930d1fc241ab.png)


以上です。