まとめなど
- iframe タグの src 属性に指定した URL に対してデータを送信し、その URL のページから送信されるデータを受信する。送受信、ピンポンするようなイメージ。
- 呼び出されるオリジン側の認証状態の操作を行う (ことで呼び出されるオリジンのCookieを操作する) のに便利
- 前回の 【TypeScript】iframe からの postMessage を受け取る汎用関数を作った – oki2a24 の仲間。
AWS S3 を今まで使ったことがありませんでした。テキトーに使い始めてみたら、何やらよくわからないエラーで手間取ってしまいました。そこで、基礎の部分から調べてみようと思い、本投稿を残します。
特に、なぜか S3 フォルダを作成できない問題を解消したかったのでした。
Storage::disk('s3')->makeDirectory($directory);
などと実行すると 400 Bad Request
AccessControlListNotSupported
のエラーとなった。
laravel/config/filesystems.php
にて 'visibility' => 'private',
を設定することで解消できた。kr pair
を実行する。
Already paired, unpair current session? [y/N]
と尋ねられるので y
と答えて既存のペアリング状態を解除する。Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton.
への対応は、スマートフォンアプリにある Known Hosts を削除すればよい。
{ }
のタブ) の "Edit Known Hosts" から "Known Hosts" ページへアクセスし、 github.com 項目をスワイプして削除する。DL3008 · hadolint/hadolint Wiki · GitHub
Docker イメージにパッケージをインストールするときに、バージョンが決め手になることは全然ないのですが、それだと hadolint が警告を出してきました。
無視したり、警告を抑制しても良いのですけれども、パッケージのバージョンをできるだけ細かく指定するべき、というのは、まあそうだよね、と思いましたので対応することにいたしました。
unzip
、および libpq-dev
にバージョンを指定していないので、これらを例に取り上げます。もともと、この警告に対応してバージョンを明記していたのですけれども、久しぶりに Docker イメージのビルドを行ったところ、そんなバージョンは無い、と言われてしまったので、今回の投稿に繋がった背景もあります。そもそも、このようなケースの場合、バージョン指定などしなくてもよさそうな気もします。。。
このうち、最初の手順である、 Docker イメージへの問題となるバージョン未設定パッケージのインストールは完了しているところから始まります。
環境
npm run prod
の場合は、静的ファイルを書き出してそのファイルへのリンクを HTML ファイルへ埋め込むようになっています。よって、ビルドされたファイルへのリンクは Laravel へアクセスするときの Apache なり Nginx なり PHP ビルトインサーバなりの URL と同じ URL が埋め込まれ、この URL でアクセスできるため問題はありません。
一方で、 npm run dev
の場合は、 Vite の開発サーバが別途立ち上がります。そして Vite でビルドされたファイルへアクセスするための埋め込みリンクは、 Vite の開発サーバの URL となります。
Docker を使う場合、 Docker ホスト側から Docker コンテナ内の Vite 開発サーバへどうやってアクセスするのかが、問題になりました。
例えば、カスタマイズしていない vite.config.js
で npm run dev
すると次のようになります。
http://localhost/
にアクセスすると画面真っ白になった。<script type="module" src="http://127.0.0.1:5173/resources/js/app.js"></script>
となっていた。この URL にアクセスしてみても ERR_CONNECTION_REFUSED のエラーページとなった。今回、これを解決しましたのでメモいたします。
# サーバ証明書 (および秘密鍵) の作成
openssl req -x509 -newkey rsa:2048 -nodes -days 3650 \
-keyout private_key.pem \
-out certificate.pem \
-config - <<EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = usr_cert
prompt = no
[req_distinguished_name]
C = JP
O = oki2a24.com
OU = MyDivision
CN = localhost
[usr_cert]
basicConstraints = critical, CA:FALSE
subjectAltName = DNS:localhost
EOF
# サーバ証明書の確認
openssl x509 -text -noout -in certificate.pem
使用したバージョン
root@495db3743f1d:/var/www/html# openssl version
OpenSSL 1.1.1n 15 Mar 2022
root@495db3743f1d:/var/www/html#
composer update nunomaduro/larastan:^1.0 --dev
でアップデートしたところ、 Laravel インストールして生成された無編集のソースコードでエラーが発生した、https://github.com/laravel/laravel/blob/8.x/app
から最新ソースコードを適用することで解決したエラーもあった。