Docker×Laravel×Vue


開発で必要な記事をまとめていきます。
これを参考にして開発始める人の手助けになればいいなと思って
自分が参考にした記事をまとめていきます。

マルチログインの実装

参考記事
https://qiita.com/namizatop/items/5d56d96d4c255a0e3a87?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items

それぞれ別々のディレクトリに分けてあげて判断。

認証に必要な要素を付け加える

Laravel authで404 nginxが使えない時

nginxのファイル探索部分がおかしいらしい

Docker

起動中のコンテナ一覧

docker ps

Image起動

docker run -it IMAGE名 bash

Docker起動

Docker Laravel 実行

docker-compose down


docker-compose up -d

Docker 起動してもexitするとき

docker logs コンテナID

Mysql bin/bashで起動

docker exec -it db-host bin/bash

Dockerのイメージ壊してテーブルのデータが消えた時

ERROR 1812 (HY000): Tablespace is missing for table `engineerMatching`.`companies`.

まず以下を実行する

ALTER TABLE example_table DISCARD TABLESPACE;

ALTER TABLE example_table IMPORT TABLESPACE;
復活!

Docker 全て終了させる

docker rmi $(docker images -q)

Docker再構築

Docker Mysql起動

起動時の初期設定参照URL

docker exec -it db-host  bin/bash

のコマンドの際に

Error response from daemon: Container 5d83ac9a96ef971c5016b2a6559e75f43bfd71fa71909e89c3c04fd22ff89b94 is not running

と出たので

docker start 5d83ac9a96ef971c5016b2a6559e75f43bfd71fa71909e89c3c04fd22ff89b94

で普通に入れました。

自分の場合 DBのデータが入っているディレクトリごと消すとうまくいきました。
→これはおそらく最終手段なので本番環境でやると致命的になるので注意。

Tablespace is missing for table

Nginx 413 Request Entity Too Large

Nginxのconfファイルに

server{
    client_max_body_size 30M;
}

みたいに最大許容量を指定してあげれば対応可能です。

SPAの実装

非同期での認証

画面

コンパイル時のエラー

there are multiple modules with names that only differ in casing” but modules referenced are identical
大文字小文字が入っている時に出るっぽい
https://stackoverflow.com/questions/47534267/webpack-there-are-multiple-modules-with-names-that-only-differ-in-casing-but?rq=1

Vue Router 404ERROR対処方法

ルーティング指定
https://sashimistudio.site/rails-vuerouter-history404/

解決してくれたもの
https://teratail.com/questions/121182

web.php

Route::get('/{any}',function(){
    return view('./company/home');
})->where('any','.*');

この記述で画面リロードしてもページ表示されるっす。
ルーティングの一番前に持ってきてあげる必要あり!!!!

開発時に使えそうなもの

ホットリロード
https://vue-loader-v14.vuejs.org/ja/features/hot-reload.html

変更すべきPHP.ini確認方法

echo $(php -r 'echo php_ini_loaded_file();')

読み込まれているファイルを確認できるコマンド

最大投稿可能サイズ確認

php -i|grep max

php.ini設定変更

post_maxこれをdockerファイルに記述してあげたところ成功

RUN echo "file_uploads = On\n" \
         "memory_limit = 500M\n" \
         "upload_max_filesize = 500M\n" \
         "post_max_size = 500M\n" \
         "max_execution_time = 600\n" \
         > /usr/local/etc/php/conf.d/uploads.ini

さくらサーバにデプロイ

非常に感謝しています。簡潔でわかりやすい。

デプロイ時に Class 'Collective\Html\HtmlServiceProvider' not found

composerのアップデートしていないのが原因
https://stackoverflow.com/questions/54675520/composer-update-the-requested-php-extension-ext-http-missing

Class 'Egulias\EmailValidator\Validation\RFCValidation' not found

同様に困ってる方の質問で
```
rm -rf vendor/*

の後に

composer install --no-dev
```

で万事解決!!

メールが文字化けする。。。

右下の文字をUTF-8にしてあげることで解決。。

2hかかった。。。