Ubuntu24.04のPHPを速くする(PHP-FPM)

Apache2+PHP(CGI)の話。

バーチャルホストで相乗りしてるWebサーバなので、PHPはCGIでsuexecして動かしているのだけど、WordPressベースのページは応答に500msかかったりして、あまり良くない感じ。そこでPHP-FPMの導入を検討することになった。

インストールは簡単でphp-fpmを入れたらよい。あとは要りそうなモジュールを有効にしておく。

sudo a2enmod actions fcgid alias proxy_fcgi

次に、プールの設定をする。ここではexample.comの設定をユーザexampleで実行しているものとする。

/etc/php/8.3/fpm/pool.dに、www.confというのがあるので、それをコピーしてexample.confというのを作り、以下のように修正する。

; pool name ('www' here)
[wwwexample]

(snip)

user=www-dataexample
group=www-dataexample

(snip)

listen = /run/php/php8.3-fpm.sockphp8.3-fpm-example.sock

これで修正終わり。php8.3-fpmを再起動する。

次に、Apache2のバーチャルホストの設定に以下を追加する。

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.3-fpm-example.sock|fcgi://localhost"
</FilesMatch>

これで修正終わり。apache2を再起動する。

うまくいけばこれだけでPHPはPHP-FPMを使うようになる。冒頭に500msかかっていたと書いたが、同じページがPHP-FPM有効だと60msとかで表示できるようになり、文字通り桁が違う。

Ubuntu24.04でSkinny.phpが警告を出すことへの対処

Ubuntu20.04(PHP 7.4.3)で動作してたSkinny.phpが、Ubuntu24.04(PHP 8.3.6)でワーニングを出すようになった。

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /../Skinny.php(1251) : eval()'d code on line 28

困りましたね。本来は非推奨なのを取り除くように修正するべきなんでしょうが、時間もないのでとりあえずこのメッセージを抑制してしまいます。1251行目をこんな感じにしちゃいます。

error_reporting(E_ALL & ~E_DEPRECATED);
eval( "?>" . $code );

ひどいなと思うけど仕方ない。今後は別のテンプレートエンジン使うしかないだろうな。

さくらのVPSが標準でIPv6がつながらなかった話

さくらのVPSでUbuntu24.04のサーバを借りて標準の状態でたてたら、IPv6経由でログインできなかった。

色々調べては試して時間を無駄にした。

結論を書くと、「/etc/netplan/01-netcfg.yaml」の中のIPv6の設定がコメントアウトされている。このコメントを外して再起動をすれば、IPv6での通信ができるようになった。

なんで標準でIPv6通信をしないようになってるんだろう。ポリシーがあるのかな。まあいいや、動けば。

TP-Link Deco BE65 Proを導入した

光回線が引き込んである1階と、PCがある2階の書斎の間は有線が引けないので、これまでWiFi6の無線LANルータでつないでました。最高で100Mbpsくらいしか速度が出ず、10Gbpsの回線を引いてるだけに、もったいないなと思ってました。

先日ついにTP-LinkのDeco BE65 Pro(リンク先はBE75)を2台購入して導入しました。1階と2階間のネックがずいぶん解消して、書斎のPCでもコンスタントに1Gbps-2Gbpsに迫る速度がでるようになりました。WiFi7すごい。

見た目はこんな感じでスッキリしています。

スピードを計測すると、こんな感じ。

Deco BE75なら10GbE対応で、アンテナも多いので速度がもう少し出そうですが、ペアで7万円オーバーはちょっと高い…のであきらめてBE65にしたという経緯があります。

ノートPCはWiFi6E対応なので、WiFi7のフルスピードではないですが、それでも1Gbpsくらい出るようになりました。これはずいぶん捗りそうな感じです。

いまのところ対外回線は10Gあっても使い切れてません。この感じだと2Gあれば十分なのではないかな。NUROでいいやという伏線かもしれません。

Deco BE65は専用アプリで悩むところもなく導入できて楽ちん、かと思いきや、いじってると設定を戻せなくなったり、色々バグっぽい感じがします。仕方なくハードウェアリセットボタンを押し、アプリは消して最初からやり直しました。2回目のセットアップでは標準状態からあまり変えないようにする感じに。そうすると快適に動いてます。

今のところ完成した製品という状態ではなく、ベータテスト中なのでは、という印象を持ちました。FWやアプリのアップには期待しましょう。

そういうわけで、あまり設定を変えていないのですが、「IoTネットワーク」という機能を有効にしてみました。2.4GHz帯に追加のSSIDを設定できるというやつです。これを今までのルーターと同じSSIDにしておけば、エアコンや冷蔵庫等の設定変更が面倒なものについて、一斉に移行できると考えたからです。もくろみ通り、これはうまくいき、それら機械の設定しなおしは発生せずに移行できました。

安いSDカードリーダーのベンチマーク

安いSDカードリーダーが3つあったので、それぞれベンチマークをとってみることにしました。ベンチマークは僕のデスクトップPCで、すべて同じSDカードを刺して実施しました。

1. バッファロー BSCR27U3BK

バッファロー BSCR27U3BK

数年前に購入後、今もよく使っているリーダー。デスクトップPCだとType-Aなのが使いやすい。

2. バッファロー BSCR125U3CBK

バッファロー BSCR125U3CBK

最近買ったバッファローのType-C用リーダー。Type-C専用だけど、サイズは小さくなる。今買うならこれでいいかも。

3. Anker USB-C 2-in-1 カードリーダー

Anker USB-C 2-in-1 カードリーダー

ともかく小さいリーダー。フィールドレコーダーのケースに入れる用に購入。レコーダーとPCを持っていきつつ、リーダーがなくて困ったことがあったので、それの予防用。

サイズの比較

3つのリーダーを並べると、Type-Aのリーダーの大きさや、ANKERの小さいリーダーの小ささが引き立ちます。

まとめ

SDカードリーダーを使ってやることと言えば、動画、録音や写真の取り込みなので、やはりシーケンシャルリードが速い方が快適なはず。そういう目で見ると、バッファローの2つのリーダーがAnkerよりもちょっと速そうです。

バッファローのType-Cのリーダーは、ランダムリードとライトが少し遅いかもしれません。USBメモリ的に使うのでなければ、あまり気にする必要もないと思います。

トランセンドのSSDがファームウェアの更新で早くなった

一年ほど前に買って愛用しているトランセンドのSSDスティックESD310(Transcend TS1TESD310C)なのですが、大量のファイルを書き込むと、途中までは爆速なのに急に遅くなる、という現象が起こっておりました。

これは熱対策とかでわざとやってるのだろうと思っていましたが、やはり遅いとイライラするのでファームウェアの更新ができないかどうか探ってみました。

まず、公式に「SSD Scope」というツールがあり、SSDの各種情報を見ることができます。画面はこんな感じです。

ここにファームウェアのバージョンが表示されています。「W0807BMO」というバージョンになっていますが、これが遅いファームウェアでした。このバージョンの人は、ぜひファームウェアを更新したらよいです。超快適になりますよ。

更新するのは簡単で、「ESD Firmware Update Tool」というのをインストールして実行するだけ。画面からファームウェアの更新ができます。さくっとできたので画面イメージを取り損ねました。たぶん英語で警告が出たと思いますが、ファイルが全部消えることにご注意してください。更新後、前述のSSD Scopeでファームウェアのバージョンを確認すると「X0402BM0」となっています。

このバージョンに変えてから、最初に書いたようなスピードの低下は全然起こらなくなりました。とても快適になるので、この現象が起こっている方はぜひお試しください。

NASのディスクを倍増させた

NASのディスク(8TB)があと1割ほどしか空いてないので、いろいろ整理してたりしてたけど、だるいので16TBへの換装をすることに決めた。選んだディスクは東芝のMN08ACA16Tというやつ。いま16TBのHDDは2本で9万円しないくらい。TBあたりの単価だと、そう割高ではない気もする。

SynologyのNAS箱(DS223j)で標準の冗長化をしてる(RAID1相当)ので、ディスクを1本新しいのにしてリビルドを走らせる。リビルドの所要時間は12時間ほど。2本とも新しいディスクをのせた2回目のリビルド時に、領域を拡張するか聞いてきた。気が利いてるねえ、ぜひ頼むわ。

みたいな感じで、NASを長期に止めることもなく、データをいったん外に移したりする必要もなく、きれいに移行できました。これで容量の問題で悩むことは当面なくなりそう。

FiiO K7/foobar2000でDSDネイティブ再生の設定をする

自分向けメモなので雑ですよ。

前提としてFiiO K7を使うものとする。

まずASIOの設定から。ASIO Outputモジュールを入れる。これは公式から入れるので簡単。

次に、以下をダウンロードする。

  • foo_input_sacd-1.5.11.zip
  • foo_out_asio+dsd-0.3.8.zip

zipを展開して出てくる3つのモジュールをインストールする。

  • foo_input_sacd
  • foo_dsd_processor
  • foo_out_asio+dsd

設定をする。Playback→OutputでDeviceの中にASIO+DSDが出てくるので、妥当なデバイスを指すようにしておく。

この状態で、とりあえずFLACの再生はASIO経由になるはず。K7の場合は色や現在のサンプルレートから判断できる。DSDはPCMに変換されて再生される状態。

続いて設定をする。Tools→SACDでOutputのTypeを「PCM」から「DSD」にする。

これで終わりのはず。FiiOのドライバは、現在のサンプルレートを表示する。DSD再生中は2.8MHzとかになっていれば良い。中途半端に大きめの数字になってるときは、DoPしてるかもしれない。

日本通信の190PadSIM(ソフトバンク)をPC(Windows11)で使う→3G停波に伴なって使えないことに…

僕のノートPCはLTEに対応しており、SIMがさせます。

いまどき、WiFiがない環境なんてあまりないし、いざとなればテザリングできるのは承知してるんですが、テザリングはやや面倒なのと、バッテリー消費がそれなりなので、停電時とかの非常用にPCにSIMをさしっぱなすのはアリだと思っています。

そうすると、あまり使わない月をいかに安くするかが大事になってきます。日本通信の190PadSIMだと、全く使わない月は190円で回線を維持できます。そのくらいの金額なら払ってもいいかな。

回線はdocomoかソフトバンクか選べます。大した理由なくソフトバンクにしました。

初期費用は、公式サイトからの申し込みだと3300円かかりますが、Amazonで売っている申込パッケージを買えば、3000円で済みます(執筆時の価格)。

APNの設定方法などは公式にガイドがありますが、当たり前ながらiPhoneとAndroidを想定したもの。Windows11でも、同じように設定すればつながりました。

ここからが後日談。

ある時期までは普通に使えてたんですが、ソフトバンクが3Gを停波して以降、使えるエリアが極端に狭くなりました。使ってる端末のせい(5G非対応)かもしれませんが、どうやら5G圏内では電波を拾えない様子。駅ではだめでも、郊外だと使えたり…みたいな。公式のサポートに聞いてみましたけど、そういうサービスなんだそうで…

というわけで、5G対応でない場合、新規に190Pad SIMをソフトバンク回線で契約するのは、あまりおススメできないかもしれません。ドコモならまだ3G止めてないので、ドコモ回線にした方がいいように思います。未確認だけど→確認のために契約してしまいました。ドコモならいける感じです。

GBE2.5-PCIEでPCが起動しなかった件

玄人志向の2.5GのLANカード、GBE2.5-PCIEを買いました。このカードはRealtekのRTL8125BGというチップを積んでいて、ヒートシンクもありません。発熱の少なそうな感じにひかれて購入しました。

ところが、家のLenovoのデスクトップPC(ThinkCentre Neo 50s Gen 3)に増設すると、電源を入れても起動しません。正確には「Lenovo」という画面まで出るものの、そこから先に進まない症状。USB経由のキーボードの操作も利きません。

PCIeまわりの設定を色々変えてみるも、どうも具合は変わらず。

知己に相談すると「オンボードのLANがあるなら、止めてみては」と言われました。これが大当たり。

具体的にはBIOSの画面(って言って大丈夫かな)から、Devices → Network Setup に進んで、Onboard Ethernet Controllerの設定を「Enabled」から「Disabled」に変更します。F10を押し保存したら、無事に起動するようになりました。

同じ症状でお困りの方おられましたら、と思い公開する次第です。