
CentOS7でPHP8.2.35をコンパイルして使う
CentOS7環境でCVE-2026-109618、 CVE-2026-109619対応のPHPのバージョンをコンパイルして使えるようにする方法の備忘録です。(※ご利用は自己責任で、何かあっても責任は負いかねます。必ず仮想マシンなどで本番と同じ環境を作って試してから本番作業を行ってください。)

CentOS7環境でCVE-2026-109618、 CVE-2026-109619対応のPHPのバージョンをコンパイルして使えるようにする方法の備忘録です。(※ご利用は自己責任で、何かあっても責任は負いかねます。必ず仮想マシンなどで本番と同じ環境を作って試してから本番作業を行ってください。)
生成AIの登場で絵文字がふんだんにあしらわれた記事を見かけることが増えました。絵文字はスクリーンリーダーではどのように読み上げられ、どのようなアクセシビリティ対策が出来るのか、また推奨されているのか調査し、PHPを使ってaria-hiddenでマークアップする方法をまとめました。

PHPのcURL処理では、デフォルトではタイムアウトの設定が0(無制限)となっており、転送中はタイムアウトしません。実行したAPIの不具合やネットワークの不調等でプロセスが残り続けて思わぬ障害を発生させるため、タイムアウト設定とその確認方法の備忘録。

見た目は同じなのにDBやCtrl+Fでの文字列検索にヒットしない文字がある原因は「CJK部首補助」等の特殊な文字コードの混入かもしれません。PDFコピペ等で発生するこういったトラブルを、PHPでの自前マッピングで解決した備忘録です。
CSSのhover時にopacityを指定すると画面がチカチカ点滅する、「スタッキングコンテキスト(重ね合わせコンテキスト)」。要素が勝手に浮かび上がり無限ループに陥る原因と、具体的な対策の備忘録です。
アクセスする環境(PC)によってサイトのSSL対応状況が異なっている(ブラウザの鍵マークが赤くなるPCと赤くならないPCがある)トラブルの原因が「中間証明書の期限切れ」だった時の備忘録。opensslコマンドを使った調査方法をまとめました。
2026年現在、Nuxt 4(またはNuxt 3の最新環境)にCKEditor 5を公式ドキュメントの手順通りに導入しようとすると、インラインエディタなどの特定の構成で「CKEditorError: editor-create-attachto-ignored」というエラーが発生し、正常に動作しない問題があります。 これは、公式のVueコンポーネント側のライフサイクルと、最新のCKEditor 5側のマウント処理のタイミングに起因するバグです。日本語の情報が極めて少ないため、導入につまずくエンジニアも少なくありません。 この記事では、Nuxt 4環境におけるCKEditor 5の基本的なインストール手順をはじめ、onMountedフックを利用してインスタンスを直接生成し、上記のエラーを確実に回避する具体的な実装コードを解説します。あわせて、業務でのカスタマイズに必須となる主要なプロパティ(Props)やコンポーネントイベントの挙動についても網羅してまとめています。
Windows+Apache環境で、Chromeブラウザで警告が出ない「独自SSL証明書(オレオレ証明書)」を作成・導入する手順を解説します。Service Workerやクリップボードへのコピーなど、HTTPSが必須となるローカル開発環境の構築に役立つ備忘録です。
サイトにアクセスしたユーザーに、アプリインストール等をさせずにネイティブアプリのようなプッシュ通知をするために、javascriptでサービスワーカーを登録し、PHPからWebプッシュAPIを使用する方法の備忘録です。
Postfixが起動していない際に出る「unable to look up public/pickup」エラーの対処法を解説。起動直後の大量誤送信を防ぐため、postqueueやpostsuperコマンドを使ったメールキューの確認・削除・バックアップの手順を詳しく紹介します。
脆弱性診断でICMPタイプ13(タイムスタンプ要求)が通ってしまう脆弱性があることを指摘された時の、firewalldでのブロック設定と、Pythonスクリプトを使って、設定が反映されているか確認する方法をまとめました。
cssでレイアウト用のHTMLタグのネストをさせずに、linear-gradientを使ってシンプルな方眼紙(マス目)レイアウトを作成する方法の解説をしています。ネストしたdivタグなどを使って作成する方法もありますが、今回紹介している内容はネストが不要なので、既存のHPでタグ構成を中々修正出来ない状態でマス目レイアウトを作りたい時に役に立ちます。

C#でNICが複数ある環境からWake-on-LANを送る際、目標のPCが起動しないことがある場合の解決策の備忘録です。UdpClientのコンストラクタで送信元IPを明示的に指定する必要がありました。
<meta charset="任意の文字コード">タグはHTMLファイルの最初の1024バイト以内に記述しないと、文字化けして表示されるケースがあったり、NuChecker等のエラーチェックツールでエラーになるため、その原因と対策の備忘録です。
CKEditor5でinsertContent等の関数を使用すると、selection位置が初期値からはズレるため、複雑な要素の追加をする際には都度「editor.model.document.selection」からの取り直しが必要になる備忘録です。
一つのサーバーで複数のドメインのサイトを管理している場合に、全てのサイトで「index.html」へのアクセスを「index.html」が無いURLにリダイレクトさせたい時、一サイトずつ設定すると手間と維持のコストがかかります。そこで、Apacheの「HTTP_HOST」変数を使ってまとめてリダイレクトする方法の解説をしています。

PostgreSQLのバージョンを17から18にアップグレードした際に、チェックサム設定でエラーが出て上手くアップグレードできなかった時の対応と、pgroongaを入れているとチェックサム設定が上手くいかなかったのでその対応の備忘録です。
ApacheをAlmaLinux9に手動インストールしたところ、certbotで証明書を更新しようとすると「NoInstallationError」エラーが出ていたため、「httpdのパスを通す」「設定ファイルの場所を明示するもしくはシンボリックリンクを貼る」という対処方法をまとめた備忘録です。
お名前.comを利用していると毎月無料(2026年2月7日補足:無料ではなくなりました。)でセキュリティ診断を行って、どこを修正すべきか教えてくれるので、項目ごとに、バージョンアップや設定変更などの必要な対応をまとめました。
CKEditor5では、viewとmodelの変換の際に独自のattributeを設定することでHTMLタグにclassやtitle属性を付与することが可能です。(例えばimgタグにtitle属性を追加する場合、htmlImgAttributes > attributes > title を設定する必要があります。)公式の検証機能(inspector.js)を使用することで簡単に属性名を調べて追加することが可能です。

javascriptでキーボード入力時にどのキーを押下したか判定できる、KeyboardEvent.keyCodeがいつのまにか非推奨になっていたので、非推奨になった理由と、今後推奨のcodeまたはkeyでどのキーを押下したかを判定する方法をまとめた備忘録です。
Nuxt4とd3.jsで国土地理院のデータをもとにインタラクティブな日本地図を描画して、各都道府県のsvg画像を取得できるツールを作成した際の実装の解説です。国土地理院のデータをmapshaperで軽量化することで、Webページの表示を軽くするなどの工夫についても解説。実際に作ったツールを利用することも可能です。(※国土地理院のデータは利用時に出典を明記する必要があるのでご注意ください。)
WYSIWYGエディタを提供するCKEditor5というライブラリで、insertImageコマンドを使って画像タグ(img)を本文に追加する時に、imgタグにclassを付与する方法が意外と難しかったので、追加する方法と、何故ややこしい設定が必要なのか解説しています。

バックアップはサーバー上に保管していると、サーバー自体に問題が起きた際に復旧が難しくなります。そこで、zipコマンドでバックアップを取得し、個人ブログでもお金をかけずに、GAS(Google App Script)を使ってバックアップを外部(Google Drive)に配置する方法を解説しています。

DBバックアップはサーバー内部に保存していると、サーバー自体に問題があった場合にバックアップが取得できず復旧が難しくなります。DBバックアップをpg_dumpコマンドを使ってシェルスクリプトで日次・月次に取得し、GAS(Google App Script)で作ったAPI経由で外部(Google Drive)に自動同期・保存することで個人サイトでもお金をかけずにバックアップを退避できる方法を解説しています。

FireFoxブラウザでは、「display:none」が設定されている等、非表示状態のiframe内ではgetSelection関数が使用できません。その状態でCKEditor5を初期化するとエラーが発生するため、ビルトイン関数を上書きする、iframeをそもそも使わない、getSelection関数の後にnullチェックを入れる等の対策を4つ解説しています。
サイト内に検索機能を追加するために、Googleのプログラム可能検索エンジンを使用しました。Googleのプログラム可能検索エンジンの設定画面側で何を設定するのかと、Nuxtでサイト内に検索枠と検索結果を表示する方法を実際のコード付きで解説しています。外部の検索ツールを使用することによる、実装コストが低い等のメリットや、記事を登録して即時に反映はされないといったデメリットもあわせて記載しています。

Golangでサイトマップを使って追加・削除したページを取得し、IndexNowという検索エンジンにページを追加・更新・削除したことを知らせるAPIを実行するスクリプトを作成する方法の技術記事です。IndexNowはMicrosoft Bing等の検索エンジンにページを素早くインデックスしてもらうために有効なだけでなく、Googleのように定期的な巡回をしてもらわずとも更新情報を通知できるためサーバーの負荷を抑えられるため積極的に利用していきたい技術です。

SEO対策の一環としてBing Webmaster Toolsを使用してみました。「このURLのmetaタグのdescriptionの文章を150文字以上にした方が良い。」など、GoogleのSearchConsoleより具体的にページの問題点や改善方法を教えてくれて使いやすかったのでご紹介。
Nuxt3のプロジェクトをNuxt4にアップグレードした際に自分が詰まった「npmのバージョンが古くてエラー」「Piniaのエラー」に対する解決策をまとめました。アップグレード前にパッケージ管理コマンド(npm, yarnなど)を最新にする、古いnode_moduleを削除しておく等。

Nuxt4, GolangでQRコードを作成するオンラインツールを作った際の実装方法の解説と、オンラインツール紹介記事です。golang側ではファイルアップロード処理のセキュリティ対策の解説、Nuxt4側では画面実装の際に詰まった点として、「ユーザーの操作に応じて入力欄を増やす方法」の解説とコード例のリンクをしています。

Golangで、yeqown/go-qrcodeというライブラリを使ってQRコードを作成する方法と、各種オプションを使用して何が出来るかを調査しました。このライブラリはQRコードの中心に画像を配置したり、画像をドット(ハーフトーン)で配置することが可能なので、お店に置くQRコード等を装飾して作成する際などに需要がありそうです。
Flutter Flameを使って、Googleが公開しているチュートリアルゲームを作成した際に分かりにくかった部分をコメントで解説しています。最後に応用として、実際のブロック崩しのようにパワーアップアイテムを落下させる方法も解説しています。
業務でたまに使うBasic認証ですが、毎回htaccessの構文も、htpasswdのコマンドも忘れるのでまとめて作成出来るオンラインツール(htpasswdに関してはサーバーへの通信無しで実行可能)を作ってみました。ツールを作る際に使った技術(javascriptでのハッシュ化処理を使っているためクライアント上のみで実行可能)、ハマったことや学びの備忘録です。
Nuxtで、サーバーとの通信無で(javascriptオンリーで)使えるオンラインのパスワード作成ツールを作成した時の備忘録です。誰かに見られても問題ないけど別に多数と共有したい訳ではないファイルの共有時などにサクッと使える程度のセキュリティレベルを目指して作成しています。
node.js向けのライブラリを非node環境で利用したい時に、webpackを使ってバンドルして一つのjsファイルを出力し、それをscriptタグで読み込んで使用することが出来たのでその方法の備忘録です。
ホームページのコンテンツのリンク切れは早期に対応しないと、コンテンツのクオリティの低下や、詐欺サイトへの誘導等に悪用される可能性があります。リンク切れを防ぐために、Golangでgoqueryライブラリを使って、サイト中のコンテンツのaタグの中のURLのリンク切れをチェックし、通知するスクリプトを作成したので、その処理の紹介と解説記事です。
svg画像をCSSのfillやstrokeを使って色付けしようとする場合、HTMLに直接svgの埋め込みが必要です。(imgタグのsrc読み込みでは色付け出来ない。)mask-imageというCSSプロパティを使えばimgタグで埋め込んでいても、色も付けられることが分かったのでその方法と、それを使って簡単にsvgアイコンの色を反転させてインタラクティブなボタンを作れる方法を解説しています。
サーバーからメールを送信する際に、迷惑メールボックスに入れられないようにするために、メールの送信元が本物であるかを確認してもらうために必要なSPF、DKIM、DMARCの設定をAlmaLinux9環境、postfixで行い、Gmailにメールを送信して検証結果を確認する方法の技術記事です。

ページの表示速度が遅ければ遅いほど、ユーザーの離脱率が上がると言われています。ユーザーの離脱率を下げるべく、LighthouseのPerformance(ページ表示速度)スコアを上げるために行ったNuxt4で設定やTailwind cssの導入、Apacheの設定などの対策と、その解説をしています。
Golangのgoqueryというライブラリを使用して、imgタグのaltタグの設定をしているかチェックしてエラー表示し、設定している場合は空文字なら警告だけをするアクセシビリティチェックAPIを作成したので、その際の備忘録です。
Nuxt4でlayoutsでCanonical(カノニカル) URLを設定する処理をシンプルなuseHead関数で行うと、最初に開いたページのURLを維持してしまいます。(ページ遷移で切り替わらない。)useHeadの引数を関数にすることでページ移動でCanonical URLが適切に切り替わるようにする方法と何故切り替わらないかの原因を解説しています。
Nuxtではsortable.jsのような、画面の要素の並べ替えを処理する場合、便利なライブラリが多く存在しています。(vuedraggableなど)ただし、多くのライブラリはオーバースペック気味なので、小規模開発用にライブラリを使わずに並べ替え機能を実装する方法を解説しています。

PostgreSQLで、シーケンス値の重複エラーが出た際の原因の一つを調査した備忘録です。頻繁に実行される処理でトランザクションを張ってsetvalを実行していたために不整合が生じたというレアケースですが、シーケンス値の重複の調査は大変なので誰かの調査のヒントになれば。
フロントとバックエンドで言語を分けてサービスを動かしたいケースがあります。このブログもフロント側をNuxt、バックエンド側をGolangで動かしているため、それぞれポートを分けてサービスを起動し、Apacheのポートフォワーディングを使って転送して同一ドメインで動かす方法を解説。