たまに掃除は必要!熱暴走…

イメージ
 そんなに暑くないのに… 本日、午前中にオンラインで打合せをしていると、突然マシンがダウン。 一瞬、停電か?と思ったもののディスプレイの電源は入っている。 あれっ?と思い、すぐさまノートで打合せを継続。 その間に、再度マシンの電源を投入。 問題なく起動する。 でも、CPU温度がたまたま目に入り、95℃を超えて徐々に上昇していく。 105℃あたりで再度マシンダウン。 これは、熱暴走によるダウンの可能性が高い。 以前、CPUをRyzen7→9にした頃は、60℃〜70℃程度だった記憶がある。 本当はGW中にSSDの載せ替えを行う予定だったけれど、忙しくて先延ばしにしていた。 その時やっていれば、多分掃除もしただろうに…。 ということで、午後からマシンを解体し、掃除をすることに。 ケース本体のFANはホコリがかなり溜まっている。 GPUのFANは問題ない。 電源とCPU FANはひどい。 一旦、CPU FANを取り外し、きれいにする。ついでにCPUグリスも塗り直しセット。 動作確認すると、投入直後で40℃台。 そりゃ、熱暴走も起こすわけだ。 せっかくバラしたので、SSDの載せ替えを実施。 OSは500GBで、ユーザ領域(/home)は1TBを使用しているもののAIのmodelをいくつも落としていたり、DockerのImageが多種置いてあるため、結構容量を食っている。 今回、2TBのSSD( Hanye SSD ¥17,800- で入手済)を用意してあるので、 1TB→2TB, 500GB→1TBと玉突きで移動させることを計画していたので実施する。 本当は、ddコマンドで移すつもりだったのだけれど、3月にお客さんのところで使いそうだったので、 ORICOのクローン機能付SSDアダプタ を入手済。 裸族のSSD版ですね…。1万円程度の品です。 これに、新品のSSDとこれまでの1TBのSSDを差し込んでクローン開始。 そこそこ時間はかかるものの、放置でOK。 ただ、HanyeのSSDについているヒートシンクが引っかかるため、一旦取り外してクローン後取り付ける必要があった。 続いて、500GB→先程の1TBに書き込み。 ただ、1TB(samsungの980pro)が、先程のクローンでかなり熱くなっていたため、速度低下が激しい感じ。1TB→2TBよりも時間がかかった感じ。 ...

PHP でなぜかjsonエラー

外部サーバ上では動作

 サーバに設置されているコードをテストしていて、おかしなエラーが出ることに気づいた。

Message: Call to undefined function json_encode()


って、何で?って感じ…。


今回、新たに立てたVPSでは、Ubuntu20.04 + Apache2 + PHPで問題なく動作している。

その前のサーバも、同様な構成で動作している。


いつも使っているLocalマシン上で動作しない。



気持ち悪いし、テストできないので、原因追及をする。

このマシンだけは、2年前ほどに新規に調達したマシンで、当初よりUbuntu18.04で運用。

昨年20.04にdist upgradeしたマシン。

Cleanに入れてはいないので、その影響かも…。


phpinfo()を実行すると、jsonの項目がない。

そりゃ、動かないよね。


そこで、端末から念の為、入れてみる。

$ sudo apt install php7.4-json
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
php7.4-json はすでに最新バージョン (7.4.27-1+ubuntu20.04.1+deb.sury.org+1) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。


おや?入っているという。

$  sudo apt list | grep json
php-json-schema/focal,focal,now 5.2.9-1 all [インストール済み、自動]
php-json/focal,focal,now 2:8.0+91+ubuntu20.04.1+deb.sury.org+1 all [インストール済み]
php-services-json/focal,focal,now 1.0.3-1build1 all [インストール済み]
php5.6-json/focal 5.6.40-57+ubuntu20.04.1+deb.sury.org+1 amd64
php7.0-json/focal 7.0.33-57+ubuntu20.04.1+deb.sury.org+1 amd64
php7.1-json/focal 7.1.33-44+ubuntu20.04.1+deb.sury.org+1 amd64
php7.2-json/focal,now 7.2.34-28+ubuntu20.04.1+deb.sury.org+1 amd64 [インストール済み、自動]
php7.3-json/focal 7.3.33-1+ubuntu20.04.1+deb.sury.org+1 amd64
php7.4-json/focal,now 7.4.27-1+ubuntu20.04.1+deb.sury.org+1 amd64 [インストール済み]
php7.4-json/focal 7.4.26-1+ubuntu20.04.1+deb.sury.org+2 i386


確かにインストール済みだ…。

phpinfo()で設定ファイルの差分を確認すると、

この項目がローカルマシンにのみ存在しない。


むむむ。

ということで、自分で作成してやればOKのはず。
中身は、
$ cat 20-json.ini
; configuration for php json module
; priority=20
extension=json.so

これだけなので、エディタで書いても良い。
ただ、このディレクトリはすべてリンクで生成されているので、同じようにしておけば後々変な挙動を示さないはず。

$ ll
合計 12
drwxr-xr-x 2 root root 4096  1月  4 18:09 ./
drwxr-xr-x 3 root root 4096 10月 30 12:59 ../
lrwxrwxrwx 1 root root   39  7月 10  2020 10-mysqlnd.ini -> /etc/php/7.4/mods-available/mysqlnd.ini
lrwxrwxrwx 1 root root   35  7月 10  2020 10-pdo.ini -> /etc/php/7.4/mods-available/pdo.ini
lrwxrwxrwx 1 root root   35  7月 10  2020 15-xml.ini -> /etc/php/7.4/mods-available/xml.ini

すべて、mods-availableからのリンクになっているのを確認したので、同様にjson.iniを作成する。

$ sudo ln -s /etc/php/7.4/mods-available/json.ini 20-json.ini

これで完了。
中身も同一なのを確認する。

あとは、apacheを再起動して、動作確認すれば動くはず。

$ sudo service apache2 restrat


この後、ブラウザからテストしたいコードを開いてみると、正常に動作した。

しかし、なぜ、このファイルが無くなっていたのか…。
消えたファイルの情報は探せないので、まぁ仕方ない。

でも、動くようになってε-(´∀`*)ホッ



コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?