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


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

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

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


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

うまくいったぽいです。

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直下にあるので、
移動して中身をチェックします。

% 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直下にプロジェクトをクローンしています。
ちなみに自分の環境ですと以下になります。

/Applications/MAMP/htdocs/s_p/simple_db_mockup/simple

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

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

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

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

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

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

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

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

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

sudo vi /private/etc/hosts

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

~
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をインストールしないといけないみたいです。

%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
ファイルを作成します。

cp .env.example .env

 % php artisan key:generate
Application key set successfully.

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

4.データベース設定

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

4-1データベース作成

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

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

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

.envファイル(修正前)

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ファイル(修正後)

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

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

% 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)

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

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

以上です。