lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

VSCode + Docker + XdebugでPHPのデバッグ環境を構築

概要

前回、Docker(nginx + PHP-FPM)を使ってPHPの実行環境を構築しました。
基本構文を覚えたばかりなのでコード毎に動作を追いたいと思った次第です。

Docker(nginx + PHP-FPM + Xdebug)+ VisualStudio Codeでデバッグが行える環境を構築します。

前回作成したDocker(nginx + PHP-FPM)のPHP実行環境にXdebugを追加する形で構築します。

前回の環境構築記事は以下です。

kitigai.hatenablog.com

目次

  • 概要
  • 目次
  • 参考サイト様
  • 環境
  • デバッグ環境の構築
  • トラブルシュート:Cannot load Xdebug - it was already loadedが発生する。
  • 雑感

参考サイト様

続きを読む

.gitignore_globalの作成(.gitignoreのテンプレートサイト紹介)

概要

Git管理の必要ないファイルやディレクトリが、作成される場合があります。
Macであれば.DS_Storeであったり、WindowsであればThumbs.db等です。

また、VSCodeを使っていると.vscodeなどのディレクトリもGitで管理する必要がないため除外したい。

VisualStudio使いなのでプロジェクトを作成する際に自動で作成される.gitignoreをいつも使っていたんですが、
C#以外にも手を出した始めたので都度作成するのが面倒だなと思っていました。

ごろごろしながらネットサーフィンしていると.gitignore_globalなるものを見つけたのでメモしておきます。
都度作成する必要があることには変わりないけど最低限のものは最初から除外されるので少しは手間が減るのかなと思った次第です。

また、ブックマークに埋もれている.gitignoreのテンプレートサイトも同時に紹介しておきます。

目次

  • 概要
  • 目次
  • 参考サイト様
  • .gitignoreテンプレートサイトの紹介
    • キーワードで適切な.gitignoreを作成するgitignore.io
    • GitHubの.gitignoreテンプレートリポジトリ
  • .gitignore_globalって何?
  • .gitignore_globalの作成と適用
    • .gitignore_globalの作成
    • .gitignore_globalの適用
  • 雑感

参考サイト様

続きを読む

Docker Composeを使ってnginxとPHP-FPMでPHPの実行環境を構築する

概要

PHPを触るにあたりローカルでPHPを使って開発できる環境が欲しかったのでDocker Composeを使ってnginx + PHP-FPMで実行環境を構築しました。
PHPPHP-FPM、Dockerの知識不足で構築に結構時間がかかってしまったので忘れないよう記事にします。

PHPのローカル開発環境としてMAMPやXAMPPなどがありますがワンクリックインストールで終わってしまっては面白くないのでDocker Composeを使用しました。
Macのストレージを汚したくないと言う思惑もありました。

PHPに関してはズブの素人でProgateのPHPの学習コース1を先日、2時間ほどかけて基本構文を覚えたばかりです。

目次

  • 概要
  • 目次
  • 参考サイト様
  • 環境
  • 成果物
  • PHP動作環境のお勉強
  • Docker ComposeでPHP実行環境の構築
    • 構築環境の構成
    • ディレクトリ構成
    • docker-compose.ymlの作成
      • docker-compose.ymlの記述バージョン
      • servicesセクション
        • imageセクション
        • portsセクション
        • volumesセクション
    • nginxのconfigファイル作成
    • index.phpの作成
    • PHP実行環境の起動
      • docker-composeコマンドについて(補足)
  • 雑感

参考サイト様

続きを読む

【実験】C# HttpClientのソケット大量消費の回避

概要

ちょっとしたものを作っている過程でHttpClientを使用した場合のソケット数について気になることがあったので
netstatコマンドで計測しながら下記の2パターン実験しました。
公式ドキュメントに記載のあるSocketExceptionエラーを回避する方法ですが自分で確かめたかった次第です。

  • HttpClientusingで囲んで使用するパターン(Badパターン)
  • HttpClientを静的メンバとして宣言しインスタンス使い回すパターン(Goodパターン)

正味、コード的には公式ドキュメントのまんまですがnetstatでの計測結果付きです。

HttpClientFactoryについては触れないのであしからず。

あと検証環境はMacOSです。WindowsMacOSで中でラップしてるクラスが違うっぽいので動作の違いに注意してください。

目次

  • 概要
  • 目次
  • 参考サイト様
  • 環境
  • 成果物
  • HttpClientを使用したソケット消費数の計測
    • HttpClientをusingで囲むパターン(Bad)
      • 結果
    • HttpClientを静的メンバとして使い回すパターン(Good)
      • 結果
    • 結果比較
  • 雑感

参考サイト様

続きを読む

AWS CodeBuildのビルド結果をLambdaを使ってLINEへ通知する

概要

タイトルの通りAWS CodeBuildのビルドステータスをCloudWatchと使って監視し
イベントを検知したらLambdaを起動し自身のLINEへビルド結果を通知します。
トークに返信して自動で再ビルド実行とかは組み込んでません。純粋にビルド結果の通知です。

世間じゃSlackに通知とかなんでしょうがこちとらぼっちの個人開発なんでSlackなんぞ使ってません。
LINEに通知が来てくれたほうが気付きやすいんです。

こんな感じになります。

f:id:HM_Atlas:20190414162326p:plain

目次

  • 概要
  • 目次
  • 参考サイト様
  • 成果物
  • 環境構成
  • 作業手順と注意事項
  • LINE Developersに登録&チャネル作成
    • アクセストークン(ロングターム)の発行
  • AWS Lambda関数の作成
    • ローカルでLambda関数を作成
      • LambdaでLINE BOTHello World
      • Lambda関数を結果通知用に編集
        • ①クライアント作成
        • ②通知用のメッセージ作成
        • トーク送信APIを実行
    • AWSコンソールからLambdaで関数の作成&アップロード
      • Lambda関数の作成
      • ローカルで作成した関数のアップロード
      • 環境変数の設定
      • Lambda関数のDesignerによるトリガーの追加について
  • AWS CloudWatchのイベント設定
  • Lambda関数のテスト
  • 雑感

参考サイト様

続きを読む