投稿

2月, 2026の投稿を表示しています

WP-CLIのwp core updateがobject-cache.phpを置くと出来なくなる

WordPressのWP-CLIを使ってwp core updateをしても更新しなくなったので調査したときの覚書。 Gemini 3.1 Pro Previewと対話。 環境: FreeBSD 14.3-RELEASE-p8, php 8.3.29 wp-cliのバージョン確認。 # wp cli version WP-CLI 2.12.0 1. object-cache.phpがあると失敗する理由 WP-CLI環境ではAPCuキャッシュが使えないため、せっかく取得した最新のアップデート情報がなってしまう。 wp core updateしたときの挙動 WP-CLIが起動すると、object-cache.php が存在するため、WordPressは「アップデート情報をデータベースではなく、APCu(APC User Cache)に保存するモード」に切り替わる。 WP-CLIが WordPress.org のAPIに問い合わせて「新バージョンがある」という情報を取得。 取得した情報をAPCuに保存しようとするが、CLI環境のAPCuは無効化されているため、コマンド終了と同時にメモリごと消滅。 結果として、「新バージョンがある」という情報がDBにも保存されず、メモリ上からも消え去るため、何度 wp core update を実行しても「アップデート情報がない=すでに最新版である」と誤認し続けてしまう。 2.開発環境ではCLI環境でもAPCuは有効化 object-cache.phpが存在すれば、WordPressはAPCuモードになるため、設定で対応する。 iniファイル確認。 # php --ini Configuration File (php.ini) Path: /usr/local/etc Loaded Configuration File:         /usr/local/etc/php.ini Scan for additional .ini files in: /usr/local/etc/php Additional .ini files parsed:      /usr/local/etc/php/ext-10-opcache...

プログラミング言語Rustとは?

PythonやPhpよりRustでバッチ処理を作った方が圧倒的に早いので、ちゃんと学ぼうとしているときの覚書。 Gemini 3 Pro Previewと対話。 1. プログラミング言語Rustとは? 一言で言えば、 C/C++と同等のパフォーマンス を持ちながら、コンパイル時に メモリ安全性を保証 するシステムプログラミング言語。 「最も愛されるプログラミング言語」で長年1位を獲得し続けている。 参考:  Rust (プログラミング言語) - Wikipedia 2006年:Mozillaで開発がスタート。 2015年:安定版となるRust 1.0がリリース。 2022年:Linux Kernel 6.1 にて、C言語に次ぐ「第2の公式言語」としてRustがマージ。 2025年:Microsoftは2030年までに自社の主要コードベースからCおよびC++を全面的に排除し、Rustへ移行する長期方針。 2. Rustの技術的特徴 ① 所有権システム(Ownership & Borrowing) ルール : 値には必ず「所有者(変数)」が1つだけ存在する。 所有者がスコープを抜けると値は破棄(ドロップ)される。 借用(Borrowing) : 参照渡しのような機能。 「不変の参照は複数作れる」が、「可変の参照は同時に1つしか作れない」というルール(RWLockのような概念)をコンパイル時に強制する。 効果 : これにより、GCなしでのメモリ解放を実現し、さらにデータ競合(Data Race)をコンパイルエラーとして検出する。 例えると、メモリ上のデータは「1冊の貴重な本」。 プログラミング言語の世界(C++やJavaなど)では、この本をコピーしたり、みんなで同時に書き込んだりできるが、Rustの世界は物理法則に忠実。 所有権(Ownership)と ムーブ(Move) : 本を持てるのは、常に世界でたった一人だけ。 最後に本を持っていた人が責任を持って捨てる(メモリを解放)。 借用(Borrowing) : 見るだけなら、何人でも同時に貸していい。 貸している間、所有者も本を捨てたり書き換えたりできない(読んでいる人が困るから)。 可変の借用(Mutable Borrowing) : 書き込みたいなら、貸せるのは「たった一人」だけ。...

FreeBSD14でRustのビルド環境を整える

Rustのビルド環境を構築しているときの覚書。 Gemini 3 Pro Previewと対話。 環境: FreeBSD 14.3-RELEASE-p8 arm64 1. Rustをインストール ARM64の環境ではrustupは提供されていない。 pkg経由で検索。 # pkg search rust Rust開発支援ツール rust-analyzer: Rust言語用の「言語サーバー(LSP)」。 rust-mode: テキストエディタ Emacs 用のプラグイン。 rust-script: Rustのコードを、PythonやShellスクリプトのように「コンパイル手順なしで」実行できるようにするツール。 C言語連携ツール(高度な開発用) rust-bindgen-cli: C言語(および一部C++)のヘッダーファイル(.h)を読み込み、Rustから呼び出せるようにするためのバインディングコード(ラッパー)を自動生成するツール rust-cbindgen: 上記とは逆で、RustのコードからC言語用のヘッダーファイル(.h)を生成するツール ユーティリティ(Rust製コマンド) rust-coreutils: GNU coreutils(ls, cp, mv, cat など)をRust言語で書き直すプロジェクト(uutils)の成果物。通常はインストール不要。 rust-findutils: GNU findutils(find, xargs, locate)をRust言語で書き直したもの。通常はインストール不要。 ビルドするだけなので、rustだけインストール。 # pkg install rust 確認。 # rustc --version rustc 1.92.0 (ded5c06cf 2025-12-08) (built from a source tarball) # cargo --version cargo 1.92.0 (344c4567c 2025-10-21) (built from a source tarball) 2.Rustツールの解説 コンパイラ・基本ツール rustc: Rustコンパイラ本体。 通常は cargo build や c...

またSpamhausのCSSブロックリストに登録された(IPv6)

またSpamhausのCSSブロックリストに登録されてサーバーからメール送信できなくなったので調査したときの覚書。 Gemini 3 Pro Previewと対話。 環境: FreeBSD 14.3-RELEASE-p7 amd64, Postfix 3.10.6 Postfixのバージョン確認。 # postconf mail_version 1. 送信メールがブロックされた理由 maillogを確認。 # less /var/log/maillog jp.mail.protection.outlook.com[2a01:...::] said: 550 5.7.1 Service unavailable, Client host [2400:...:135] blocked using Spamhaus. To request removal from this list see https://www.spamhaus.org/query/ip/2400:...:135 AS(1440) [OS3PEPF0000003E.JPNP286.PROD.OUTLOOK.COM 2026-01-31T20:00:10.242Z 08DE60A93EBF9B50] (in reply to RCPT TO command)) maillogのURLにアクセスすると下記メッセージ。 CSS Blocklist - Why is this IP address listed? Your IP address is either exhibiting suspect behavior, is misconfigured, or has a poor sending reputation. As a result, this IP is listed in the CSS Blocklist (CSS) Click on More Info to see if you can request a delisting from this blocklist. This will also display any further information we have relating to this listing. Less Info Why is 2400:...