もっさん先輩

Avatar

Laravel イベント非同期にチャレンジしてみる。

Laravel をインストールしてイベントを試す手順。 プロジェクト名(event)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 app/Providers/EventServiceProvider.php にイベントを定義します。 ↓下の OrderShippedクラス、SendShipmentNotificationクラス というのは未だ存在しないファイルです。これからコマンドでクラスファイルを生成する為に、EventServiceProvider.php ファイルに定義する感じです。 artisanコマンド で↑上の EventServiceProvider.phpファイル からイベントクラスとリスナークラスファイルを生成します。 app/Events/OrderShipped.php、app/Listeners/SendShipmentNotification1.php、app/Listeners/SendShipmentNotification2.php のファイルが生成されます。 app/Events/OrderShipped.php app/Listeners/SendShipmentNotification1.php app/Listeners/SendShipmentNotification2.php イベントを発火する welcomページ 呼び出し時にイベントを発火するように routes/web.php を修正します。 ブラウザで画面を表示してログを確認します。↓下のようにイベントは同期で呼び出されました。 イベントを非同に期対応させます .env ファイルを QUEUE_CONNECTION を sync から database に変更します。 キューテーブルを作成します。 app/Listeners/SendShipmentNotification2.php に「ShouldQueue」を implements で非同期対応します。 storage/logs/laravel.log を確認すると非同期にした SendShipmentNotification2.php が呼び出されません。 以下のコマンドを実行するとキューにたまったイベントが処理されます。

Laravel イベント非同期にチャレンジしてみる。 Read More »

Laravel にログイン機能を付けるには?

↓下のようなログイン画面を直ぐに用意することができます。 Laravel をインストールしてログイン機能を付ける手順。 プロジェクト名(login)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 laravel-breezeパッケージ を取得します。※sailコマンド でやるところがポイントですね。 laravel-breezeパッケージ をインストールします。 laravel-breezeのマイグレーションを実行します。 ブラウザで Laravel にアクセスします。 画面の右上に「Log in」「Register」のリンクが追加されています。 ユーザーの登録ができるようになりましたが、メール認証を行ってユーザーの登録をさせたいと思います。 メール認証でユーザー登録する メール認証を行うには、app/Models/User.phpファイル を2か所修正する必要があります。 メールを送信するので、設定ファイルを修正します。Gmail でメールを送るのは以下のように設定します。 日本語化のリソースを定義します。 ユーザー情報を入力すると、以下の画面になります。

Laravel にログイン機能を付けるには? Read More »

Oracle のデータベースサーバーで「-bash: cannot create temp file for here-document: No space left on device」のエラーが表示された

まずは、以下のコマンドで i-node の残りがあるか調べてみましょう。 現在、↓こんな状態でした。 ルート(/) の IFree が 0 なので i-node の残りが無くなったことが分かります。 Oracle の場合、i-node を使い果たすのは adump(監査ログ) の可能性が高いです。 adump を調べてみます。 ファイル数を確認します。 大量のファイルがあると、ls のソートに時間がかかるので、-Uオプション を付けて ls でソートを行わないようにします。 ↓こんな感じの audファイル があります。 audファイル を削除します。 少し ルート が空きました。 「orc1_ora_10*」のレベルでは、ファイルが多すぎて削除できませんでした。 rm で消すなら↓このレベルですね。 20回繰り返して、なんとか93%までもっていくことができました。

Oracle のデータベースサーバーで「-bash: cannot create temp file for here-document: No space left on device」のエラーが表示された Read More »

AmasonS3 にログファイルをコピーするには?

① AWSユーザー を作成する この章では、AWSユーザー を作成して、awscliコマンド を実行するための「アクセスキーID」と「シークレットアクセスキー」を取得します。 「ユーザー名」を入力、「アクセスキー・プログラムによるアクセス」にチェックを入れます。「次のステップ:アクセス権限」ボタンを押します。 「既存のポリシーを直接アタッチ」をクリックして「AmazonS3fullAccess」を選択します。「次のステップ:タグ」ボタンを押します。 「次のステップ:確認」ボタンを押します。 「ユーザーの作成」ボタンを押します。 「アクセスキーID」と「表示」リンクをクリックして「シークレットアクセスキー」を保管します。 ② S3 にログコピー先のバケットを作成する ③ Ubuntu に awsパッケージ をインストールする Ubuntuコンテナを起動します。 ※「ubuntu:20.04」のバージョン指定は、私のホストOSが古いため最新の Ubuntuコンテナ が使えなかったからです。皆様は最新のバージョンを使用してください。 apt-get update を実行します。 awscliパッケージ をインストールします。 設定を行います。 AWSユーザー を作成した時の「アクセスキーID」と「シークレットアクセスキー」を入力します。 .aws/credentials に設定ファイルができます。 Dockerfile にまとめました。これだけですね。 「DEBIAN_FRONTEND=noninteractive」で awscliパッケージ のインストール中の入力をスキップできます。 docker-compose.yml にまとめました。 ④ awsコマンド でファイルをコピーする。 lsコマンド を実行して、s3 のバケットを一覧表示します。 lsコマンド でバケットの中を一覧表示します。S3 のファイルを指定するには「s3://」を付けます。 ローカルにあるログファイルを S3 にコピーします。

AmasonS3 にログファイルをコピーするには? Read More »

SMTPプロトコルでメールを送信するには?

STMPプロトコル を使ってメールを送信する手順。 通常のメールサーバーは、ポート25も開いていませんし、ユーザーの認証も必要になりますので、この手順ではメールは送れません。 telnet でメールサーバーに接続します。 メールサーバーに挨拶します。送信元メールアドレスのドメイン名に合わせます。 送信元メールアドレスを入力します。 送信先メールアドレスを入力します。 メールを書きます。 メールヘッダーの From を入力します。 メールヘッダーの To を入力します。 メールヘッダーの 件名 を入力します。 メールヘッダーと本文の区切りのため、改行を1行入力します。 本文書いて、最後にドットだけの行を入力すると、メールが送信されます。 SMTPを終了します。

SMTPプロトコルでメールを送信するには? Read More »

Laravel 本番環境とテスト環境を切り替えるには?

本番環境にするには .env の APP_ENV を productionに変更する。 ステージング環境(本番と同じようなテスト環境)にするには .env の APP_ENV を staging に変更する。 開発環境にするには .env の APP_ENV を local に変更する。 BLADE側 での確認方法 本番環境で実行されているか確認する。 ステージング環境で実行されているか確認する。@stating ではありません。 本番環境または、ステージング環境のどちらかで実行されているか確認するには↓こちらです。 ローカル環境で実行されているか確認する。@local ではありません。 コントローラー側での確認方法 ステージング環境で実行されているか確認する。 ステージング環境で実行されているか確認する。 ローカル環境で実行されているか確認する。

Laravel 本番環境とテスト環境を切り替えるには? Read More »

Scroll to Top